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

Commit 0f2a718c authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge changes from topic "musl_clang_runtimes"

* changes:
  Enable sanitizers for musl
  Switch to libunwind to remove dependency on libgcc for musl
parents 0cfe1f43 ed12a04a
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -65,7 +65,6 @@ var (

	linuxMuslLdflags = []string{
		"-nostdlib",
		"-lgcc", "-lgcc_eh",
		"--sysroot /dev/null",
	}

+13 −7
Original line number Diff line number Diff line
@@ -480,8 +480,8 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
		s.Diag.Cfi = nil
	}

	// Disable sanitizers that depend on the UBSan runtime for windows/darwin/musl builds.
	if !ctx.Os().Linux() || ctx.Os() == android.LinuxMusl {
	// Disable sanitizers that depend on the UBSan runtime for windows/darwin builds.
	if !ctx.Os().Linux() {
		s.Cfi = nil
		s.Diag.Cfi = nil
		s.Misc_undefined = nil
@@ -490,6 +490,12 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
		s.Integer_overflow = nil
	}

	// Disable CFI for musl
	if ctx.toolchain().Musl() {
		s.Cfi = nil
		s.Diag.Cfi = nil
	}

	// Also disable CFI for VNDK variants of components
	if ctx.isVndk() && ctx.useVndk() {
		if ctx.static() {
@@ -702,10 +708,10 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
		flags.Local.AsFlags = append(flags.Local.AsFlags, sanitizeArg)
		flags.Local.LdFlags = append(flags.Local.LdFlags, sanitizeArg)

		if ctx.toolchain().Bionic() {
			// Bionic sanitizer runtimes have already been added as dependencies so that
			// the right variant of the runtime will be used (with the "-android"
			// suffix), so don't let clang the runtime library.
		if ctx.toolchain().Bionic() || ctx.toolchain().Musl() {
			// Bionic and musl sanitizer runtimes have already been added as dependencies so that
			// the right variant of the runtime will be used (with the "-android" or "-musl"
			// suffixes), so don't let clang the runtime library.
			flags.Local.LdFlags = append(flags.Local.LdFlags, "-fno-sanitize-link-runtime")
		} else {
			// Host sanitizers only link symbols in the final executable, so
@@ -1217,7 +1223,7 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
			addStaticDeps(config.BuiltinsRuntimeLibrary(toolchain))
		}

		if runtimeLibrary != "" && (toolchain.Bionic() || c.sanitize.Properties.UbsanRuntimeDep) {
		if runtimeLibrary != "" && (toolchain.Bionic() || toolchain.Musl() || c.sanitize.Properties.UbsanRuntimeDep) {
			// UBSan is supported on non-bionic linux host builds as well

			// Adding dependency to the runtime library. We are using *FarVariation*
+0 −2
Original line number Diff line number Diff line
@@ -42,8 +42,6 @@ var (
		"-nodefaultlibs",
		"-nostdlib",
		"-Wl,--no-dynamic-linker",
		// for unwind
		"-lgcc", "-lgcc_eh",
	}
	linuxX86Rustflags   = []string{}
	linuxX86Linkflags   = []string{}