Merge "Add header-abi-linker dependency on so file."
This commit is contained in:
@@ -170,12 +170,12 @@ var (
|
|||||||
|
|
||||||
sAbiLink = pctx.AndroidStaticRule("sAbiLink",
|
sAbiLink = pctx.AndroidStaticRule("sAbiLink",
|
||||||
blueprint.RuleParams{
|
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"},
|
CommandDeps: []string{"$sAbiLinker"},
|
||||||
Rspfile: "${out}.rsp",
|
Rspfile: "${out}.rsp",
|
||||||
RspfileContent: "${in}",
|
RspfileContent: "${in}",
|
||||||
},
|
},
|
||||||
"symbolFile", "arch", "api", "exportedHeaderFlags")
|
"symbolFilter", "arch", "api", "exportedHeaderFlags")
|
||||||
|
|
||||||
_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")
|
_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")
|
||||||
|
|
||||||
@@ -634,14 +634,17 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
|
|||||||
|
|
||||||
// Generate a rule to combine .dump sAbi dump files from multiple source files
|
// Generate a rule to combine .dump sAbi dump files from multiple source files
|
||||||
// into a single .ldump sAbi dump file
|
// 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 {
|
symbolFile android.OptionalPath, apiLevel, baseName, exportedHeaderFlags string) android.OptionalPath {
|
||||||
outputFile := android.PathForModuleOut(ctx, baseName+".lsdump")
|
outputFile := android.PathForModuleOut(ctx, baseName+".lsdump")
|
||||||
var symbolFileStr string
|
var symbolFilterStr string
|
||||||
var linkedDumpDep android.Path
|
var linkedDumpDep android.Path
|
||||||
if symbolFile.Valid() {
|
if symbolFile.Valid() {
|
||||||
symbolFileStr = "-v " + symbolFile.Path().String()
|
symbolFilterStr = "-v " + symbolFile.Path().String()
|
||||||
linkedDumpDep = symbolFile.Path()
|
linkedDumpDep = symbolFile.Path()
|
||||||
|
} else {
|
||||||
|
linkedDumpDep = soFile
|
||||||
|
symbolFilterStr = "-so " + soFile.String()
|
||||||
}
|
}
|
||||||
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
Rule: sAbiLink,
|
Rule: sAbiLink,
|
||||||
@@ -650,7 +653,7 @@ func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Path
|
|||||||
Inputs: sAbiDumps,
|
Inputs: sAbiDumps,
|
||||||
Implicit: linkedDumpDep,
|
Implicit: linkedDumpDep,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"symbolFile": symbolFileStr,
|
"symbolFilter": symbolFilterStr,
|
||||||
"arch": ctx.Arch().ArchType.Name,
|
"arch": ctx.Arch().ArchType.Name,
|
||||||
"api": apiLevel,
|
"api": apiLevel,
|
||||||
"exportedHeaderFlags": exportedHeaderFlags,
|
"exportedHeaderFlags": exportedHeaderFlags,
|
||||||
|
@@ -589,12 +589,12 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
|
|||||||
objs.sAbiDumpFiles = append(objs.sAbiDumpFiles, deps.WholeStaticLibObjs.sAbiDumpFiles...)
|
objs.sAbiDumpFiles = append(objs.sAbiDumpFiles, deps.WholeStaticLibObjs.sAbiDumpFiles...)
|
||||||
|
|
||||||
library.coverageOutputFile = TransformCoverageFilesToLib(ctx, objs, builderFlags, library.getLibName(ctx))
|
library.coverageOutputFile = TransformCoverageFilesToLib(ctx, objs, builderFlags, library.getLibName(ctx))
|
||||||
library.linkSAbiDumpFiles(ctx, objs, fileName)
|
library.linkSAbiDumpFiles(ctx, objs, fileName, ret)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objects, fileName string) {
|
func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objects, fileName string, soFile android.Path) {
|
||||||
//Also take into account object re-use.
|
//Also take into account object re-use.
|
||||||
if len(objs.sAbiDumpFiles) > 0 && ctx.createVndkSourceAbiDump() && !ctx.Vendor() {
|
if len(objs.sAbiDumpFiles) > 0 && ctx.createVndkSourceAbiDump() && !ctx.Vendor() {
|
||||||
refSourceDumpFile := android.PathForVndkRefAbiDump(ctx, "current", fileName, vndkVsNdk(ctx), true)
|
refSourceDumpFile := android.PathForVndkRefAbiDump(ctx, "current", fileName, vndkVsNdk(ctx), true)
|
||||||
@@ -612,7 +612,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec
|
|||||||
SourceAbiFlags = append(SourceAbiFlags, reexportedInclude)
|
SourceAbiFlags = append(SourceAbiFlags, reexportedInclude)
|
||||||
}
|
}
|
||||||
exportedHeaderFlags := strings.Join(SourceAbiFlags, " ")
|
exportedHeaderFlags := strings.Join(SourceAbiFlags, " ")
|
||||||
library.sAbiOutputFile = TransformDumpToLinkedDump(ctx, objs.sAbiDumpFiles, symbolFile, "current", fileName, exportedHeaderFlags)
|
library.sAbiOutputFile = TransformDumpToLinkedDump(ctx, objs.sAbiDumpFiles, soFile, symbolFile, "current", fileName, exportedHeaderFlags)
|
||||||
if refSourceDumpFile.Valid() {
|
if refSourceDumpFile.Valid() {
|
||||||
unzippedRefDump := UnzipRefDump(ctx, refSourceDumpFile.Path(), fileName)
|
unzippedRefDump := UnzipRefDump(ctx, refSourceDumpFile.Path(), fileName)
|
||||||
library.sAbiDiff = SourceAbiDiff(ctx, library.sAbiOutputFile.Path(), unzippedRefDump, fileName)
|
library.sAbiDiff = SourceAbiDiff(ctx, library.sAbiOutputFile.Path(), unzippedRefDump, fileName)
|
||||||
|
Reference in New Issue
Block a user