Stop tracking the ABI of "current".

Bug: None
Test: deleted "current" ABI dumps, ran updater, they didn't come back
Change-Id: I50463c3016864fccc7713c141e6465c8ed0d7184
This commit is contained in:
Dan Albert
2024-09-18 19:34:32 +00:00
parent a191ef3c54
commit 2d0dce1fad
2 changed files with 13 additions and 5 deletions

View File

@@ -46,7 +46,7 @@ func (n *ndkAbiDumpSingleton) GenerateBuildActions(ctx android.SingletonContext)
if m, ok := module.(*Module); ok { if m, ok := module.(*Module); ok {
if installer, ok := m.installer.(*stubDecorator); ok { if installer, ok := m.installer.(*stubDecorator); ok {
if canDumpAbi(ctx.Config(), ctx.ModuleDir(module)) { if installer.hasAbiDump {
depPaths = append(depPaths, installer.abiDumpPath) depPaths = append(depPaths, installer.abiDumpPath)
} }
} }

View File

@@ -125,6 +125,7 @@ type stubDecorator struct {
parsedCoverageXmlPath android.ModuleOutPath parsedCoverageXmlPath android.ModuleOutPath
installPath android.Path installPath android.Path
abiDumpPath android.OutputPath abiDumpPath android.OutputPath
hasAbiDump bool
abiDiffPaths android.Paths abiDiffPaths android.Paths
apiLevel android.ApiLevel apiLevel android.ApiLevel
@@ -330,11 +331,11 @@ func (this *stubDecorator) findPrebuiltAbiDump(ctx ModuleContext,
} }
// Feature flag. // Feature flag.
func canDumpAbi(config android.Config, moduleDir string) bool { func (this *stubDecorator) canDumpAbi(ctx ModuleContext) bool {
if runtime.GOOS == "darwin" { if runtime.GOOS == "darwin" {
return false return false
} }
if strings.HasPrefix(moduleDir, "bionic/") { if strings.HasPrefix(ctx.ModuleDir(), "bionic/") {
// Bionic has enough uncommon implementation details like ifuncs and asm // Bionic has enough uncommon implementation details like ifuncs and asm
// code that the ABI tracking here has a ton of false positives. That's // code that the ABI tracking here has a ton of false positives. That's
// causing pretty extreme friction for development there, so disabling // causing pretty extreme friction for development there, so disabling
@@ -343,8 +344,14 @@ func canDumpAbi(config android.Config, moduleDir string) bool {
// http://b/358653811 // http://b/358653811
return false return false
} }
if this.apiLevel.IsCurrent() {
// "current" (AKA 10000) is not tracked.
return false
}
// http://b/156513478 // http://b/156513478
return config.ReleaseNdkAbiMonitored() return ctx.Config().ReleaseNdkAbiMonitored()
} }
// Feature flag to disable diffing against prebuilts. // Feature flag to disable diffing against prebuilts.
@@ -357,6 +364,7 @@ func (this *stubDecorator) dumpAbi(ctx ModuleContext, symbolList android.Path) {
this.abiDumpPath = getNdkAbiDumpInstallBase(ctx).Join(ctx, this.abiDumpPath = getNdkAbiDumpInstallBase(ctx).Join(ctx,
this.apiLevel.String(), ctx.Arch().ArchType.String(), this.apiLevel.String(), ctx.Arch().ArchType.String(),
this.libraryName(ctx), "abi.stg") this.libraryName(ctx), "abi.stg")
this.hasAbiDump = true
headersList := getNdkABIHeadersFile(ctx) headersList := getNdkABIHeadersFile(ctx)
ctx.Build(pctx, android.BuildParams{ ctx.Build(pctx, android.BuildParams{
Rule: stg, Rule: stg,
@@ -478,7 +486,7 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) O
nativeAbiResult := parseNativeAbiDefinition(ctx, symbolFile, c.apiLevel, "") nativeAbiResult := parseNativeAbiDefinition(ctx, symbolFile, c.apiLevel, "")
objs := compileStubLibrary(ctx, flags, nativeAbiResult.stubSrc) objs := compileStubLibrary(ctx, flags, nativeAbiResult.stubSrc)
c.versionScriptPath = nativeAbiResult.versionScript c.versionScriptPath = nativeAbiResult.versionScript
if canDumpAbi(ctx.Config(), ctx.ModuleDir()) { if c.canDumpAbi(ctx) {
c.dumpAbi(ctx, nativeAbiResult.symbolList) c.dumpAbi(ctx, nativeAbiResult.symbolList)
if canDiffAbi(ctx.Config()) { if canDiffAbi(ctx.Config()) {
c.diffAbi(ctx) c.diffAbi(ctx)