Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2f8df4b authored by Peter Collingbourne's avatar Peter Collingbourne Committed by Gerrit Code Review
Browse files

Merge "build: Link the unwinder dynamically into platform and vendor binaries."

parents f3cae775 e5ba2864
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -596,6 +596,7 @@ toolchain_library {
    vendor_available: true,
    recovery_available: true,
    native_bridge_supported: true,
    sdk_version: "current",

    arch: {
        arm: {
+2 −2
Original line number Diff line number Diff line
@@ -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 {
+1 −0
Original line number Diff line number Diff line
@@ -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),
+1 −2
Original line number Diff line number Diff line
@@ -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
+7 −3
Original line number Diff line number Diff line
@@ -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.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")
				}
			if ctx.staticBinary() {
				deps.StaticLibs = append(deps.StaticLibs, "libm", "libc")
			}
		}
	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))
Loading