Ensure opt-in platform ABI dumps are configured with ref_dump_dirs

Test: make
Bug: 323447559
Change-Id: I8eaa38970c81c71b7473bdb9e77dfe9b49a93c92
This commit is contained in:
Hsin-Yi Chen 2024-04-22 11:47:57 +08:00
parent 0d4a9ca792
commit 3d5c6791bc
2 changed files with 7 additions and 4 deletions

View file

@ -1490,6 +1490,11 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
fileName, nameExt, isLlndk)
}
}
// Ensure that a module tagged with only platformLsdumpTag has ref_dump_dirs.
// Android.bp in vendor projects should be cleaned up before this is enforced for vendorLsdumpTag and productLsdumpTag.
if len(headerAbiChecker.Ref_dump_dirs) == 0 && len(tags) == 1 && tags[0] == platformLsdumpTag {
ctx.ModuleErrorf("header_abi_checker is explicitly enabled, but no ref_dump_dirs are specified.")
}
// Check against the opt-in reference dumps.
for i, optInDumpDir := range headerAbiChecker.Ref_dump_dirs {
optInDumpDirPath := android.PathForModuleSrc(ctx, optInDumpDir)

View file

@ -43,8 +43,6 @@ func (tag *lsdumpTag) dirName() string {
return "platform"
case llndkLsdumpTag:
return "vndk"
case platformLsdumpTag:
return "platform"
default:
return ""
}
@ -134,10 +132,10 @@ func classifySourceAbiDump(ctx android.BaseModuleContext) []lsdumpTag {
if m.isImplementationForLLNDKPublic() {
result = append(result, llndkLsdumpTag)
}
// APEX and opt-in platform dumps are placed in the same directory.
if m.library.hasStubsVariants() {
result = append(result, apexLsdumpTag)
} else if headerAbiChecker.enabled() {
}
if headerAbiChecker.enabled() {
result = append(result, platformLsdumpTag)
}
} else if headerAbiChecker.enabled() {