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