Merge "Add --release and --lib-variant to the instructions to update ABI dumps" into main
This commit is contained in:
@@ -1362,20 +1362,25 @@ func (library *libraryDecorator) sourceAbiDiff(ctx android.ModuleContext,
|
|||||||
|
|
||||||
func (library *libraryDecorator) crossVersionAbiDiff(ctx android.ModuleContext,
|
func (library *libraryDecorator) crossVersionAbiDiff(ctx android.ModuleContext,
|
||||||
sourceDump, referenceDump android.Path,
|
sourceDump, referenceDump android.Path,
|
||||||
baseName string, isLlndk bool, sourceVersion, prevVersion string) {
|
baseName, nameExt string, isLlndk bool, sourceVersion, prevDumpDir string) {
|
||||||
|
|
||||||
errorMessage := "error: Please follow https://android.googlesource.com/platform/development/+/main/vndk/tools/header-checker/README.md#configure-cross_version-abi-check to resolve the ABI difference between your source code and version " + prevVersion + "."
|
errorMessage := "error: Please follow https://android.googlesource.com/platform/development/+/main/vndk/tools/header-checker/README.md#configure-cross_version-abi-check to resolve the difference between your source code and the ABI dumps in " + prevDumpDir
|
||||||
|
|
||||||
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, prevVersion,
|
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, nameExt,
|
||||||
isLlndk, true /* allowExtensions */, sourceVersion, errorMessage)
|
isLlndk, true /* allowExtensions */, sourceVersion, errorMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (library *libraryDecorator) sameVersionAbiDiff(ctx android.ModuleContext,
|
func (library *libraryDecorator) sameVersionAbiDiff(ctx android.ModuleContext,
|
||||||
sourceDump, referenceDump android.Path,
|
sourceDump, referenceDump android.Path,
|
||||||
baseName, nameExt string, isLlndk bool) {
|
baseName, nameExt string, isLlndk bool, lsdumpTagName string) {
|
||||||
|
|
||||||
libName := strings.TrimSuffix(baseName, filepath.Ext(baseName))
|
libName := strings.TrimSuffix(baseName, filepath.Ext(baseName))
|
||||||
errorMessage := "error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py -l " + libName
|
errorMessage := "error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py --lib " + libName + " --lib-variant " + lsdumpTagName
|
||||||
|
|
||||||
|
targetRelease := ctx.Config().Getenv("TARGET_RELEASE")
|
||||||
|
if targetRelease != "" {
|
||||||
|
errorMessage += " --release " + targetRelease
|
||||||
|
}
|
||||||
|
|
||||||
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, nameExt,
|
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, nameExt,
|
||||||
isLlndk, false /* allowExtensions */, "current", errorMessage)
|
isLlndk, false /* allowExtensions */, "current", errorMessage)
|
||||||
@@ -1383,13 +1388,19 @@ func (library *libraryDecorator) sameVersionAbiDiff(ctx android.ModuleContext,
|
|||||||
|
|
||||||
func (library *libraryDecorator) optInAbiDiff(ctx android.ModuleContext,
|
func (library *libraryDecorator) optInAbiDiff(ctx android.ModuleContext,
|
||||||
sourceDump, referenceDump android.Path,
|
sourceDump, referenceDump android.Path,
|
||||||
baseName, nameExt string, refDumpDir string) {
|
baseName, nameExt string, refDumpDir string, lsdumpTagName string) {
|
||||||
|
|
||||||
libName := strings.TrimSuffix(baseName, filepath.Ext(baseName))
|
libName := strings.TrimSuffix(baseName, filepath.Ext(baseName))
|
||||||
errorMessage := "error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py -l " + libName + " -ref-dump-dir $$ANDROID_BUILD_TOP/" + refDumpDir
|
errorMessage := "error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py --lib " + libName + " --lib-variant " + lsdumpTagName + " --ref-dump-dir $$ANDROID_BUILD_TOP/" + refDumpDir
|
||||||
|
|
||||||
|
targetRelease := ctx.Config().Getenv("TARGET_RELEASE")
|
||||||
|
if targetRelease != "" {
|
||||||
|
errorMessage += " --release " + targetRelease
|
||||||
|
}
|
||||||
|
|
||||||
// Most opt-in libraries do not have dumps for all default architectures.
|
// Most opt-in libraries do not have dumps for all default architectures.
|
||||||
if ctx.Config().HasDeviceProduct() {
|
if ctx.Config().HasDeviceProduct() {
|
||||||
errorMessage += " -products " + ctx.Config().DeviceProduct()
|
errorMessage += " --product " + ctx.Config().DeviceProduct()
|
||||||
}
|
}
|
||||||
|
|
||||||
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, nameExt,
|
library.sourceAbiDiff(ctx, sourceDump, referenceDump, baseName, nameExt,
|
||||||
@@ -1414,6 +1425,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
|
|||||||
|
|
||||||
var llndkDump, apexVariantDump android.Path
|
var llndkDump, apexVariantDump android.Path
|
||||||
tags := classifySourceAbiDump(ctx)
|
tags := classifySourceAbiDump(ctx)
|
||||||
|
optInTags := []lsdumpTag{}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if tag == llndkLsdumpTag && currVendorVersion != "" {
|
if tag == llndkLsdumpTag && currVendorVersion != "" {
|
||||||
if llndkDump == nil {
|
if llndkDump == nil {
|
||||||
@@ -1435,6 +1447,9 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
|
|||||||
}
|
}
|
||||||
addLsdumpPath(string(tag) + ":" + apexVariantDump.String())
|
addLsdumpPath(string(tag) + ":" + apexVariantDump.String())
|
||||||
} else {
|
} else {
|
||||||
|
if tag.dirName() == "" {
|
||||||
|
optInTags = append(optInTags, tag)
|
||||||
|
}
|
||||||
addLsdumpPath(string(tag) + ":" + implDump.String())
|
addLsdumpPath(string(tag) + ":" + implDump.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1479,7 +1494,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
|
|||||||
prevDumpFile := getRefAbiDumpFile(ctx, prevDumpDir, fileName)
|
prevDumpFile := getRefAbiDumpFile(ctx, prevDumpDir, fileName)
|
||||||
if prevDumpFile.Valid() {
|
if prevDumpFile.Valid() {
|
||||||
library.crossVersionAbiDiff(ctx, sourceDump, prevDumpFile.Path(),
|
library.crossVersionAbiDiff(ctx, sourceDump, prevDumpFile.Path(),
|
||||||
fileName, isLlndk, currVersion, nameExt+prevVersion)
|
fileName, nameExt+prevVersion, isLlndk, currVersion, prevDumpDir)
|
||||||
}
|
}
|
||||||
// Check against the current version.
|
// Check against the current version.
|
||||||
sourceDump = implDump
|
sourceDump = implDump
|
||||||
@@ -1499,9 +1514,15 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
|
|||||||
currDumpFile := getRefAbiDumpFile(ctx, currDumpDir, fileName)
|
currDumpFile := getRefAbiDumpFile(ctx, currDumpDir, fileName)
|
||||||
if currDumpFile.Valid() {
|
if currDumpFile.Valid() {
|
||||||
library.sameVersionAbiDiff(ctx, sourceDump, currDumpFile.Path(),
|
library.sameVersionAbiDiff(ctx, sourceDump, currDumpFile.Path(),
|
||||||
fileName, nameExt, isLlndk)
|
fileName, nameExt, isLlndk, string(tag))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Assert that a module is tagged with at most one of platformLsdumpTag, productLsdumpTag, or vendorLsdumpTag.
|
||||||
|
if len(headerAbiChecker.Ref_dump_dirs) > 0 && len(optInTags) != 1 {
|
||||||
|
ctx.ModuleErrorf("Expect exactly one opt-in lsdump tag when ref_dump_dirs are specified: %s", optInTags)
|
||||||
|
return
|
||||||
|
}
|
||||||
// Ensure that a module tagged with only platformLsdumpTag has ref_dump_dirs.
|
// 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.
|
// 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 {
|
if len(headerAbiChecker.Ref_dump_dirs) == 0 && len(tags) == 1 && tags[0] == platformLsdumpTag {
|
||||||
@@ -1518,7 +1539,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, deps PathD
|
|||||||
}
|
}
|
||||||
library.optInAbiDiff(ctx,
|
library.optInAbiDiff(ctx,
|
||||||
implDump, optInDumpFile.Path(),
|
implDump, optInDumpFile.Path(),
|
||||||
fileName, "opt"+strconv.Itoa(i), optInDumpDirPath.String())
|
fileName, "opt"+strconv.Itoa(i), optInDumpDirPath.String(), string(optInTags[0]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user