Let header-abi-linker filter llndk, apex, and systemapi symbols

This commit adds --include-symbol-tag and --symbol-tag-policy to
header-abi-linker commands. The arguments make header-abi-linker load
the symbols tagged with llndk/apex/systemapi from the version script.
It filters the function declarations by the symbols. The output dumps
will not contain unfinalized ABI.

Test: make findlsdumps
Bug: 333532038
Change-Id: I28234a3749f389b8a5a09ac84341b1fcd1ee88a6
This commit is contained in:
Hsin-Yi Chen
2024-04-15 15:43:21 +08:00
parent 473b3557f1
commit f6fc525a1a
2 changed files with 18 additions and 10 deletions

View File

@@ -855,8 +855,8 @@ func transformObjToDynamicBinary(ctx android.ModuleContext,
// into a single .ldump sAbi dump file
func transformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Paths, soFile android.Path,
baseName string, exportedIncludeDirs []string, symbolFile android.OptionalPath,
excludedSymbolVersions, excludedSymbolTags []string,
api string) android.Path {
excludedSymbolVersions, excludedSymbolTags, includedSymbolTags []string,
api string, isLlndk bool) android.Path {
outputFile := android.PathForModuleOut(ctx, baseName+".lsdump")
@@ -874,6 +874,12 @@ func transformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Path
for _, tag := range excludedSymbolTags {
symbolFilterStr += " --exclude-symbol-tag " + tag
}
for _, tag := range includedSymbolTags {
symbolFilterStr += " --include-symbol-tag " + tag
}
if isLlndk {
symbolFilterStr += " --symbol-tag-policy MatchTagOnly"
}
apiLevelsJson := android.GetApiLevelsJson(ctx)
implicits = append(implicits, apiLevelsJson)
symbolFilterStr += " --api-map " + apiLevelsJson.String()