Merge "Link libc++demangle with libc++ for the device." am: 6f65a20103 am: d0f9222559 am: e76715a1fa am: 15da1fe48a

am: dd45ceaaf8

Change-Id: I2bb20699bb89fa63a9dec056a1aebbdefd461a31
This commit is contained in:
Dan Albert 2019-08-21 18:40:52 -07:00 committed by android-build-merger
commit 22bf105b01
3 changed files with 21 additions and 2 deletions

View File

@ -1941,13 +1941,13 @@ func TestStaticLibDepExport(t *testing.T) {
// Check the shared version of lib2.
variant := "android_arm64_armv8-a_core_shared"
module := ctx.ModuleForTests("lib2", variant).Module().(*Module)
checkStaticLibs(t, []string{"lib1", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
// Check the static version of lib2.
variant = "android_arm64_armv8-a_core_static"
module = ctx.ModuleForTests("lib2", variant).Module().(*Module)
// libc++_static is linked additionally.
checkStaticLibs(t, []string{"lib1", "libc++_static", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
}
var compilerFlagsTestCases = []struct {

View File

@ -161,6 +161,15 @@ func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
} else {
deps.StaticLibs = append(deps.StaticLibs, stl.Properties.SelectedStl)
}
if ctx.Device() && !ctx.useSdk() {
// __cxa_demangle is not a part of libc++.so on the device since
// it's large and most processes don't need it. Statically link
// libc++demangle into every process so that users still have it if
// needed, but the linker won't include this unless it is actually
// called.
// http://b/138245375
deps.StaticLibs = append(deps.StaticLibs, "libc++demangle")
}
if ctx.toolchain().Bionic() {
if ctx.Arch().ArchType == android.Arm {
deps.StaticLibs = append(deps.StaticLibs, "libunwind_llvm")

View File

@ -166,6 +166,16 @@ func GatherRequiredDepsForTest(os android.OsType) string {
support_system_process: true,
},
}
cc_library {
name: "libc++demangle",
no_libcrt: true,
nocrt: true,
system_shared_libs: [],
stl: "none",
host_supported: false,
vendor_available: true,
recovery_available: true,
}
cc_library {
name: "libunwind_llvm",
no_libcrt: true,