[coverage] On coverage+hwasan build, disable hwasan global instrumentation
Bug: http://b/248022906 Bug: http://b/247941801 HWAsan global instrumentation on __llvm_profile_filename causes duplicate symbol errors when linked together with libraries where hwasan is disabled. Disable hwasan global instrumentation since those type of errors are rare. In the future, we may fix this in llvm to skip hwasan global instrumentation on symbols added for coverage. Test: m CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS=* \ SANITIZE_TARGET=hwaddress Test: Add `hwaddress: true` to libc_defaults; m CLANG_COVERAGE=true Change-Id: I8506cfd567d212262a2a54b9881a8f64cdbf7a76
This commit is contained in:
@@ -108,6 +108,12 @@ func (cov *coverage) flags(ctx ModuleContext, flags Flags, deps PathDeps) (Flags
|
||||
if EnableContinuousCoverage(ctx) {
|
||||
flags.Local.CommonFlags = append(flags.Local.CommonFlags, "-mllvm", "-runtime-counter-relocation")
|
||||
}
|
||||
|
||||
// http://b/248022906, http://b/247941801 enabling coverage and hwasan-globals
|
||||
// instrumentation together causes duplicate-symbol errors for __llvm_profile_filename.
|
||||
if c, ok := ctx.Module().(*Module); ok && c.sanitize.isSanitizerEnabled(Hwasan) {
|
||||
flags.Local.CommonFlags = append(flags.Local.CommonFlags, "-mllvm", "-hwasan-globals=0")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user