Do not enable AFDO for coverage builds

This works around an incompatibility between coverage and the
-fdebug-info-for-profiling flag.

also moved -fdebug-info-for-profiling flag so that it is only applied to
the libraries that enabled AFDO.

Test: gzip -cd out/verbose.log.gz | grep debug-info-for-profiling
Bug: 345593672
Change-Id: I68493511da1e61091209d0ed1b2c86c7ba0e21f4
This commit is contained in:
Yi Kong
2024-08-05 15:12:57 +09:00
parent 0ca0dd8e1c
commit 3d9bed9204
2 changed files with 6 additions and 3 deletions

View File

@@ -47,6 +47,10 @@ func (afdo *afdo) begin(ctx BaseModuleContext) {
if ctx.Config().Eng() {
afdo.Properties.Afdo = false
}
// Disable for native coverage builds.
if ctx.DeviceConfig().NativeCoverageEnabled() {
afdo.Properties.Afdo = false
}
}
// afdoEnabled returns true for binaries and shared libraries
@@ -76,6 +80,8 @@ func (afdo *afdo) flags(ctx ModuleContext, flags Flags) Flags {
}
if afdo.Properties.Afdo || afdo.Properties.AfdoDep {
// Emit additional debug info for AutoFDO
flags.Local.CFlags = append([]string{"-fdebug-info-for-profiling"}, flags.Local.CFlags...)
// We use `-funique-internal-linkage-names` to associate profiles to the right internal
// functions. This option should be used before generating a profile. Because a profile
// generated for a binary without unique names doesn't work well building a binary with

View File

@@ -176,9 +176,6 @@ var (
"-Werror=sequence-point",
"-Werror=format-security",
"-nostdlibinc",
// Emit additional debug info for AutoFDO
"-fdebug-info-for-profiling",
}
commonGlobalLldflags = []string{