Loading cc/lto.go +6 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ func (lto *lto) useClangLld(ctx BaseModuleContext) bool { } func (lto *lto) flags(ctx BaseModuleContext, flags Flags) Flags { // TODO(b/131771163): Disable LTO when using explicit fuzzing configurations. // LTO breaks fuzzer builds. if inList("-fsanitize=fuzzer-no-link", flags.Local.CFlags) { return flags } if lto.LTO(ctx) { var ltoCFlag string var ltoLdFlag string Loading cc/sanitize.go +12 −0 Original line number Diff line number Diff line Loading @@ -541,6 +541,12 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) { s.Address = nil s.Thread = nil } // TODO(b/131771163): CFI transiently depends on LTO, and thus Fuzzer is // mutually incompatible. if Bool(s.Fuzzer) { s.Cfi = nil } } func toDisableImplicitIntegerChange(flags []string) bool { Loading Loading @@ -635,6 +641,12 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags { if Bool(sanitize.Properties.Sanitize.Fuzzer) { flags.Local.CFlags = append(flags.Local.CFlags, "-fsanitize=fuzzer-no-link") // TODO(b/131771163): LTO and Fuzzer support is mutually incompatible. _, flags.Local.LdFlags = removeFromList("-flto", flags.Local.LdFlags) _, flags.Local.CFlags = removeFromList("-flto", flags.Local.CFlags) flags.Local.LdFlags = append(flags.Local.LdFlags, "-fno-lto") flags.Local.CFlags = append(flags.Local.CFlags, "-fno-lto") // TODO(b/142430592): Upstream linker scripts for sanitizer runtime libraries // discard the sancov_lowest_stack symbol, because it's emulated TLS (and thus // doesn't match the linker script due to the "__emutls_v." prefix). Loading Loading
cc/lto.go +6 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ func (lto *lto) useClangLld(ctx BaseModuleContext) bool { } func (lto *lto) flags(ctx BaseModuleContext, flags Flags) Flags { // TODO(b/131771163): Disable LTO when using explicit fuzzing configurations. // LTO breaks fuzzer builds. if inList("-fsanitize=fuzzer-no-link", flags.Local.CFlags) { return flags } if lto.LTO(ctx) { var ltoCFlag string var ltoLdFlag string Loading
cc/sanitize.go +12 −0 Original line number Diff line number Diff line Loading @@ -541,6 +541,12 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) { s.Address = nil s.Thread = nil } // TODO(b/131771163): CFI transiently depends on LTO, and thus Fuzzer is // mutually incompatible. if Bool(s.Fuzzer) { s.Cfi = nil } } func toDisableImplicitIntegerChange(flags []string) bool { Loading Loading @@ -635,6 +641,12 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags { if Bool(sanitize.Properties.Sanitize.Fuzzer) { flags.Local.CFlags = append(flags.Local.CFlags, "-fsanitize=fuzzer-no-link") // TODO(b/131771163): LTO and Fuzzer support is mutually incompatible. _, flags.Local.LdFlags = removeFromList("-flto", flags.Local.LdFlags) _, flags.Local.CFlags = removeFromList("-flto", flags.Local.CFlags) flags.Local.LdFlags = append(flags.Local.LdFlags, "-fno-lto") flags.Local.CFlags = append(flags.Local.CFlags, "-fno-lto") // TODO(b/142430592): Upstream linker scripts for sanitizer runtime libraries // discard the sancov_lowest_stack symbol, because it's emulated TLS (and thus // doesn't match the linker script due to the "__emutls_v." prefix). Loading