Add header-abi-linker dependency on so file.
Whenever a symbol file is not available, header-abi-linker can look at
the symbols with STV_DEFAULT or STV_PROTECTED visibility for further abi
filtering.
Bug: 62463617
Bug: 62307940
Test: make -j64
Change-Id: I5dc618be104a49d47375d37cf78c4490b1529987
diff --git a/cc/builder.go b/cc/builder.go
index 61c0572..873b117 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -170,12 +170,12 @@
sAbiLink = pctx.AndroidStaticRule("sAbiLink",
blueprint.RuleParams{
- Command: "$sAbiLinker -o ${out} $symbolFile -arch $arch -api $api $exportedHeaderFlags @${out}.rsp ",
+ Command: "$sAbiLinker -o ${out} $symbolFilter -arch $arch -api $api $exportedHeaderFlags @${out}.rsp ",
CommandDeps: []string{"$sAbiLinker"},
Rspfile: "${out}.rsp",
RspfileContent: "${in}",
},
- "symbolFile", "arch", "api", "exportedHeaderFlags")
+ "symbolFilter", "arch", "api", "exportedHeaderFlags")
_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")
@@ -634,14 +634,17 @@
// Generate a rule to combine .dump sAbi dump files from multiple source files
// into a single .ldump sAbi dump file
-func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Paths,
+func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Paths, soFile android.Path,
symbolFile android.OptionalPath, apiLevel, baseName, exportedHeaderFlags string) android.OptionalPath {
outputFile := android.PathForModuleOut(ctx, baseName+".lsdump")
- var symbolFileStr string
+ var symbolFilterStr string
var linkedDumpDep android.Path
if symbolFile.Valid() {
- symbolFileStr = "-v " + symbolFile.Path().String()
+ symbolFilterStr = "-v " + symbolFile.Path().String()
linkedDumpDep = symbolFile.Path()
+ } else {
+ linkedDumpDep = soFile
+ symbolFilterStr = "-so " + soFile.String()
}
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: sAbiLink,
@@ -650,9 +653,9 @@
Inputs: sAbiDumps,
Implicit: linkedDumpDep,
Args: map[string]string{
- "symbolFile": symbolFileStr,
- "arch": ctx.Arch().ArchType.Name,
- "api": apiLevel,
+ "symbolFilter": symbolFilterStr,
+ "arch": ctx.Arch().ArchType.Name,
+ "api": apiLevel,
"exportedHeaderFlags": exportedHeaderFlags,
},
})