diff --git a/cc/makevars.go b/cc/makevars.go index 9d29affcd..cd1396521 100644 --- a/cc/makevars.go +++ b/cc/makevars.go @@ -138,7 +138,6 @@ func makeVarsProvider(ctx android.MakeVarsContext) { ctx.Strict("CLANG_COVERAGE_HWASAN_FLAGS", strings.Join(clangCoverageHWASanFlags, " ")) ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", strings.Join(asanCflags, " ")) - ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS", strings.Join(asanLdflags, " ")) ctx.Strict("HWADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", strings.Join(hwasanCflags, " ")) ctx.Strict("HWADDRESS_SANITIZER_GLOBAL_OPTIONS", strings.Join(hwasanGlobalOptions, ",")) diff --git a/cc/sanitize.go b/cc/sanitize.go index d72d7d36f..a885d27b3 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -36,7 +36,6 @@ var ( asanCflags = []string{ "-fno-omit-frame-pointer", } - asanLdflags = []string{"-Wl,-u,__asan_preinit"} // DO NOT ADD MLLVM FLAGS HERE! ADD THEM BELOW TO hwasanCommonFlags. hwasanCflags = []string{ @@ -777,16 +776,17 @@ func (s *sanitize) flags(ctx ModuleContext, flags Flags) Flags { flags.RequiredInstructionSet = "arm" } flags.Local.CFlags = append(flags.Local.CFlags, asanCflags...) - flags.Local.LdFlags = append(flags.Local.LdFlags, asanLdflags...) if Bool(sanProps.Writeonly) { flags.Local.CFlags = append(flags.Local.CFlags, "-mllvm", "-asan-instrument-reads=0") } if ctx.Host() { - // -nodefaultlibs (provided with libc++) prevents the driver from linking - // libraries needed with -fsanitize=address. http://b/18650275 (WAI) - flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,--no-as-needed") + if !ctx.Darwin() { // ld64.lld doesn't know about '--no-as-needed' + // -nodefaultlibs (provided with libc++) prevents the driver from linking + // libraries needed with -fsanitize=address. http://b/18650275 (WAI) + flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,--no-as-needed") + } } else { flags.Local.CFlags = append(flags.Local.CFlags, "-mllvm", "-asan-globals=0") if ctx.bootstrap() {