diff --git a/cc/sanitize.go b/cc/sanitize.go index 172aae748..08ffff422 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -141,9 +141,10 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) { ctx.ModuleErrorf("unknown global sanitizer option %s", globalSanitizers[0]) } } - if Bool(s.All_undefined) || Bool(s.Undefined) || Bool(s.Address) || - Bool(s.Thread) || Bool(s.Coverage) || Bool(s.Safestack) { - sanitize.Properties.SanitizerEnabled = true + + if ctx.staticBinary() { + s.Address = nil + s.Thread = nil } if Bool(s.All_undefined) { @@ -157,6 +158,11 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) { // TODO(ccross): error for compile_multilib = "32"? } + if Bool(s.All_undefined) || Bool(s.Undefined) || Bool(s.Address) || + Bool(s.Thread) || Bool(s.Coverage) || Bool(s.Safestack) { + sanitize.Properties.SanitizerEnabled = true + } + if Bool(s.Coverage) { if !Bool(s.Address) { ctx.ModuleErrorf(`Use of "coverage" also requires "address"`)