Merge "build: Link the unwinder dynamically into platform and vendor binaries."
am: d2f8df4b3e
Change-Id: Ie995fc49afb3d708285c2f8c91d18668b279e420
This commit is contained in:
commit
d248db0569
6 changed files with 15 additions and 7 deletions
|
@ -596,6 +596,7 @@ toolchain_library {
|
|||
vendor_available: true,
|
||||
recovery_available: true,
|
||||
native_bridge_supported: true,
|
||||
sdk_version: "current",
|
||||
|
||||
arch: {
|
||||
arm: {
|
||||
|
|
|
@ -2303,13 +2303,13 @@ func TestStaticLibDepExport(t *testing.T) {
|
|||
// Check the shared version of lib2.
|
||||
variant := "android_arm64_armv8-a_shared"
|
||||
module := ctx.ModuleForTests("lib2", variant).Module().(*Module)
|
||||
checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
|
||||
checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic"}, module)
|
||||
|
||||
// Check the static version of lib2.
|
||||
variant = "android_arm64_armv8-a_static"
|
||||
module = ctx.ModuleForTests("lib2", variant).Module().(*Module)
|
||||
// libc++_static is linked additionally.
|
||||
checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic", "libgcc_stripped"}, module)
|
||||
checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic"}, module)
|
||||
}
|
||||
|
||||
var compilerFlagsTestCases = []struct {
|
||||
|
|
|
@ -88,6 +88,7 @@ var (
|
|||
"-Wl,--no-undefined-version",
|
||||
"-Wl,--exclude-libs,libgcc.a",
|
||||
"-Wl,--exclude-libs,libgcc_stripped.a",
|
||||
"-Wl,--exclude-libs,libunwind_llvm.a",
|
||||
}
|
||||
|
||||
deviceGlobalLldflags = append(ClangFilterUnknownLldflags(deviceGlobalLdflags),
|
||||
|
|
|
@ -224,11 +224,10 @@ func (linker *baseLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
|||
}
|
||||
|
||||
if ctx.toolchain().Bionic() {
|
||||
// libclang_rt.builtins, libgcc and libatomic have to be last on the command line
|
||||
// libclang_rt.builtins and libatomic have to be last on the command line
|
||||
if !Bool(linker.Properties.No_libcrt) {
|
||||
deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain()))
|
||||
deps.LateStaticLibs = append(deps.LateStaticLibs, "libatomic")
|
||||
deps.LateStaticLibs = append(deps.LateStaticLibs, "libgcc_stripped")
|
||||
}
|
||||
|
||||
systemSharedLibs := linker.Properties.System_shared_libs
|
||||
|
|
10
cc/stl.go
10
cc/stl.go
|
@ -171,11 +171,13 @@ func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
|
|||
deps.StaticLibs = append(deps.StaticLibs, "libc++demangle")
|
||||
}
|
||||
if ctx.toolchain().Bionic() {
|
||||
if ctx.Arch().ArchType == android.Arm {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "libunwind_llvm")
|
||||
}
|
||||
if ctx.staticBinary() {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "libm", "libc")
|
||||
if ctx.Arch().ArchType == android.Arm {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "libunwind_llvm")
|
||||
} else {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "libgcc_stripped")
|
||||
}
|
||||
}
|
||||
}
|
||||
case "":
|
||||
|
@ -196,6 +198,8 @@ func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
|
|||
}
|
||||
if ctx.Arch().ArchType == android.Arm {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "ndk_libunwind")
|
||||
} else {
|
||||
deps.StaticLibs = append(deps.StaticLibs, "libgcc_stripped")
|
||||
}
|
||||
default:
|
||||
panic(fmt.Errorf("Unknown stl: %q", stl.Properties.SelectedStl))
|
||||
|
|
|
@ -136,6 +136,7 @@ func GatherRequiredDepsForTest(os android.OsType) string {
|
|||
name: "libc",
|
||||
no_libcrt: true,
|
||||
nocrt: true,
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
recovery_available: true,
|
||||
}
|
||||
|
@ -147,6 +148,7 @@ func GatherRequiredDepsForTest(os android.OsType) string {
|
|||
name: "libm",
|
||||
no_libcrt: true,
|
||||
nocrt: true,
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
recovery_available: true,
|
||||
}
|
||||
|
@ -158,6 +160,7 @@ func GatherRequiredDepsForTest(os android.OsType) string {
|
|||
name: "libdl",
|
||||
no_libcrt: true,
|
||||
nocrt: true,
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
recovery_available: true,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue