Add tags to the list of lsdump paths

This commit adds tags, such as NDK, VNDK-core, and PLATFORM, to
LSDUMP_PATHS. The script updating the reference ABI dumps uses the tags
to determine the directories where the dumps should be created.

Test: make findlsdumps
Bug: 133176785
Change-Id: I8540286238cf0ec55c65e1c4f60cb9c12e5e57a1
This commit is contained in:
Hsin-Yi Chen 2019-07-31 17:10:45 +08:00
parent fb4ecc42ce
commit 5348964723
4 changed files with 51 additions and 24 deletions

View File

@ -984,7 +984,7 @@ func pathForModule(ctx ModuleContext) OutputPath {
// PathForVndkRefAbiDump returns an OptionalPath representing the path of the
// reference abi dump for the given module. This is not guaranteed to be valid.
func PathForVndkRefAbiDump(ctx ModuleContext, version, fileName string,
isLlndkOrNdk, isVndk, isGzip bool) OptionalPath {
isNdk, isLlndkOrVndk, isGzip bool) OptionalPath {
arches := ctx.DeviceConfig().Arches()
if len(arches) == 0 {
@ -997,9 +997,9 @@ func PathForVndkRefAbiDump(ctx ModuleContext, version, fileName string,
}
var dirName string
if isLlndkOrNdk {
if isNdk {
dirName = "ndk"
} else if isVndk {
} else if isLlndkOrVndk {
dirName = "vndk"
} else {
dirName = "platform" // opt-in libs

View File

@ -639,9 +639,6 @@ func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Path
excludedSymbolVersions, excludedSymbolTags []string) android.OptionalPath {
outputFile := android.PathForModuleOut(ctx, baseName+".lsdump")
sabiLock.Lock()
lsdumpPaths = append(lsdumpPaths, outputFile.String())
sabiLock.Unlock()
implicits := android.Paths{soFile}
symbolFilterStr := "-so " + soFile.String()

View File

@ -432,25 +432,46 @@ func (library *libraryDecorator) compilerFlags(ctx ModuleContext, flags Flags, d
return flags
}
// Returns a string that represents the class of the ABI dump.
// Returns an empty string if ABI check is disabled for this library.
func (library *libraryDecorator) classifySourceAbiDump(ctx ModuleContext) string {
enabled := library.Properties.Header_abi_checker.Enabled
if enabled != nil && !Bool(enabled) {
return ""
}
// Return NDK if the library is both NDK and LLNDK.
if ctx.isNdk() {
return "NDK"
}
if ctx.isLlndkPublic(ctx.Config()) {
return "LLNDK"
}
if ctx.useVndk() && ctx.isVndk() && !ctx.isVndkPrivate(ctx.Config()) {
if ctx.isVndkSp() {
if ctx.isVndkExt() {
return "VNDK-SP-ext"
} else {
return "VNDK-SP"
}
} else {
if ctx.isVndkExt() {
return "VNDK-ext"
} else {
return "VNDK-core"
}
}
}
if enabled != nil && Bool(enabled) {
return "PLATFORM"
}
return ""
}
func (library *libraryDecorator) shouldCreateSourceAbiDump(ctx ModuleContext) bool {
if !ctx.shouldCreateSourceAbiDump() {
return false
}
if library.Properties.Header_abi_checker.Enabled != nil {
return Bool(library.Properties.Header_abi_checker.Enabled)
}
if ctx.isNdk() {
return true
}
if ctx.isLlndkPublic(ctx.Config()) {
return true
}
if ctx.useVndk() && ctx.isVndk() && !ctx.isVndkPrivate(ctx.Config()) {
// Return true if this is VNDK-core, VNDK-SP, or VNDK-Ext, and not
// VNDK-private.
return true
}
return false
return library.classifySourceAbiDump(ctx) != ""
}
func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
@ -815,10 +836,11 @@ func (library *libraryDecorator) nativeCoverage() bool {
}
func getRefAbiDumpFile(ctx ModuleContext, vndkVersion, fileName string) android.Path {
isLlndkOrNdk := inList(ctx.baseModuleName(), *llndkLibraries(ctx.Config())) || inList(ctx.baseModuleName(), ndkMigratedLibs)
isNdk := ctx.isNdk()
isLlndkOrVndk := ctx.isLlndkPublic(ctx.Config()) || ctx.isVndk()
refAbiDumpTextFile := android.PathForVndkRefAbiDump(ctx, vndkVersion, fileName, isLlndkOrNdk, ctx.isVndk(), false)
refAbiDumpGzipFile := android.PathForVndkRefAbiDump(ctx, vndkVersion, fileName, isLlndkOrNdk, ctx.isVndk(), true)
refAbiDumpTextFile := android.PathForVndkRefAbiDump(ctx, vndkVersion, fileName, isNdk, isLlndkOrVndk, false)
refAbiDumpGzipFile := android.PathForVndkRefAbiDump(ctx, vndkVersion, fileName, isNdk, isLlndkOrVndk, true)
if refAbiDumpTextFile.Valid() {
if refAbiDumpGzipFile.Valid() {
@ -856,6 +878,8 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec
library.Properties.Header_abi_checker.Exclude_symbol_versions,
library.Properties.Header_abi_checker.Exclude_symbol_tags)
addLsdumpPath(library.classifySourceAbiDump(ctx) + ":" + library.sAbiOutputFile.String())
refAbiDumpFile := getRefAbiDumpFile(ctx, vndkVersion, fileName)
if refAbiDumpFile != nil {
library.sAbiDiff = SourceAbiDiff(ctx, library.sAbiOutputFile.Path(),

View File

@ -94,3 +94,9 @@ func sabiDepsMutator(mctx android.TopDownMutatorContext) {
})
}
}
func addLsdumpPath(lsdumpPath string) {
sabiLock.Lock()
lsdumpPaths = append(lsdumpPaths, lsdumpPath)
sabiLock.Unlock()
}