Merge "Add header-abi-linker dependency on so file."

This commit is contained in:
Treehugger Robot
2017-06-30 17:38:53 +00:00
committed by Gerrit Code Review
2 changed files with 14 additions and 11 deletions

View File

@@ -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,

View File

@@ -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)