Loading cc/builder.go +17 −16 Original line number Diff line number Diff line Loading @@ -37,13 +37,6 @@ const ( staticLibraryExtension = ".a" ) var ( abiCheckAllowFlags = []string{ "-allow-unreferenced-changes", "-allow-unreferenced-elf-symbol-changes", } ) var ( pctx = android.NewPackageContext("android/soong/cc") Loading Loading @@ -221,8 +214,7 @@ var ( sAbiDiff = pctx.RuleFunc("sAbiDiff", func(ctx android.PackageRuleContext) blueprint.RuleParams { // TODO(b/78139997): Add -check-all-apis back commandStr := "($sAbiDiffer ${allowFlags} -lib ${libName} -arch ${arch} -o ${out} -new ${in} -old ${referenceDump})" commandStr := "($sAbiDiffer ${extraFlags} -lib ${libName} -arch ${arch} -o ${out} -new ${in} -old ${referenceDump})" commandStr += "|| (echo 'error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py ${createReferenceDumpFlags} -l ${libName}'" commandStr += " && (mkdir -p $$DIST_DIR/abidiffs && cp ${out} $$DIST_DIR/abidiffs/)" commandStr += " && exit 1)" Loading @@ -231,7 +223,7 @@ var ( CommandDeps: []string{"$sAbiDiffer"}, } }, "allowFlags", "referenceDump", "libName", "arch", "createReferenceDumpFlags") "extraFlags", "referenceDump", "libName", "arch", "createReferenceDumpFlags") unzipRefSAbiDump = pctx.AndroidStaticRule("unzipRefSAbiDump", blueprint.RuleParams{ Loading Loading @@ -742,27 +734,36 @@ func UnzipRefDump(ctx android.ModuleContext, zippedRefDump android.Path, baseNam } func SourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceDump android.Path, baseName, exportedHeaderFlags string, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { baseName, exportedHeaderFlags string, checkAllApis, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { outputFile := android.PathForModuleOut(ctx, baseName+".abidiff") libName := strings.TrimSuffix(baseName, filepath.Ext(baseName)) createReferenceDumpFlags := "" localAbiCheckAllowFlags := append([]string(nil), abiCheckAllowFlags...) var extraFlags []string if checkAllApis { extraFlags = append(extraFlags, "-check-all-apis") } else { extraFlags = append(extraFlags, "-allow-unreferenced-changes", "-allow-unreferenced-elf-symbol-changes") } if exportedHeaderFlags == "" { localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-advice-only") extraFlags = append(extraFlags, "-advice-only") } if isLlndk || isNdk { createReferenceDumpFlags = "--llndk" if isLlndk { // TODO(b/130324828): "-consider-opaque-types-different" should apply to // both LLNDK and NDK shared libs. However, a known issue in header-abi-diff // breaks libaaudio. Remove the if-guard after the issue is fixed. localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-consider-opaque-types-different") extraFlags = append(extraFlags, "-consider-opaque-types-different") } } if isVndkExt { localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-allow-extensions") extraFlags = append(extraFlags, "-allow-extensions") } ctx.Build(pctx, android.BuildParams{ Loading @@ -775,7 +776,7 @@ func SourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceD "referenceDump": referenceDump.String(), "libName": libName, "arch": ctx.Arch().ArchType.Name, "allowFlags": strings.Join(localAbiCheckAllowFlags, " "), "extraFlags": strings.Join(extraFlags, " "), "createReferenceDumpFlags": createReferenceDumpFlags, }, }) Loading cc/library.go +7 −1 Original line number Diff line number Diff line Loading @@ -102,6 +102,10 @@ type LibraryProperties struct { // Symbol tags that should be ignored from the symbol file Exclude_symbol_tags []string // Run checks on all APIs (in addition to the ones referred by // one of exported ELF symbols.) Check_all_apis *bool } // Order symbols in .bss section by their sizes. Only useful for shared libraries. Loading Loading @@ -1072,7 +1076,9 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec refAbiDumpFile := getRefAbiDumpFile(ctx, vndkVersion, fileName) if refAbiDumpFile != nil { library.sAbiDiff = SourceAbiDiff(ctx, library.sAbiOutputFile.Path(), refAbiDumpFile, fileName, exportedHeaderFlags, ctx.isLlndk(ctx.Config()), ctx.isNdk(), ctx.isVndkExt()) refAbiDumpFile, fileName, exportedHeaderFlags, Bool(library.Properties.Header_abi_checker.Check_all_apis), ctx.isLlndk(ctx.Config()), ctx.isNdk(), ctx.isVndkExt()) } } } Loading Loading
cc/builder.go +17 −16 Original line number Diff line number Diff line Loading @@ -37,13 +37,6 @@ const ( staticLibraryExtension = ".a" ) var ( abiCheckAllowFlags = []string{ "-allow-unreferenced-changes", "-allow-unreferenced-elf-symbol-changes", } ) var ( pctx = android.NewPackageContext("android/soong/cc") Loading Loading @@ -221,8 +214,7 @@ var ( sAbiDiff = pctx.RuleFunc("sAbiDiff", func(ctx android.PackageRuleContext) blueprint.RuleParams { // TODO(b/78139997): Add -check-all-apis back commandStr := "($sAbiDiffer ${allowFlags} -lib ${libName} -arch ${arch} -o ${out} -new ${in} -old ${referenceDump})" commandStr := "($sAbiDiffer ${extraFlags} -lib ${libName} -arch ${arch} -o ${out} -new ${in} -old ${referenceDump})" commandStr += "|| (echo 'error: Please update ABI references with: $$ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py ${createReferenceDumpFlags} -l ${libName}'" commandStr += " && (mkdir -p $$DIST_DIR/abidiffs && cp ${out} $$DIST_DIR/abidiffs/)" commandStr += " && exit 1)" Loading @@ -231,7 +223,7 @@ var ( CommandDeps: []string{"$sAbiDiffer"}, } }, "allowFlags", "referenceDump", "libName", "arch", "createReferenceDumpFlags") "extraFlags", "referenceDump", "libName", "arch", "createReferenceDumpFlags") unzipRefSAbiDump = pctx.AndroidStaticRule("unzipRefSAbiDump", blueprint.RuleParams{ Loading Loading @@ -742,27 +734,36 @@ func UnzipRefDump(ctx android.ModuleContext, zippedRefDump android.Path, baseNam } func SourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceDump android.Path, baseName, exportedHeaderFlags string, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { baseName, exportedHeaderFlags string, checkAllApis, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { outputFile := android.PathForModuleOut(ctx, baseName+".abidiff") libName := strings.TrimSuffix(baseName, filepath.Ext(baseName)) createReferenceDumpFlags := "" localAbiCheckAllowFlags := append([]string(nil), abiCheckAllowFlags...) var extraFlags []string if checkAllApis { extraFlags = append(extraFlags, "-check-all-apis") } else { extraFlags = append(extraFlags, "-allow-unreferenced-changes", "-allow-unreferenced-elf-symbol-changes") } if exportedHeaderFlags == "" { localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-advice-only") extraFlags = append(extraFlags, "-advice-only") } if isLlndk || isNdk { createReferenceDumpFlags = "--llndk" if isLlndk { // TODO(b/130324828): "-consider-opaque-types-different" should apply to // both LLNDK and NDK shared libs. However, a known issue in header-abi-diff // breaks libaaudio. Remove the if-guard after the issue is fixed. localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-consider-opaque-types-different") extraFlags = append(extraFlags, "-consider-opaque-types-different") } } if isVndkExt { localAbiCheckAllowFlags = append(localAbiCheckAllowFlags, "-allow-extensions") extraFlags = append(extraFlags, "-allow-extensions") } ctx.Build(pctx, android.BuildParams{ Loading @@ -775,7 +776,7 @@ func SourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceD "referenceDump": referenceDump.String(), "libName": libName, "arch": ctx.Arch().ArchType.Name, "allowFlags": strings.Join(localAbiCheckAllowFlags, " "), "extraFlags": strings.Join(extraFlags, " "), "createReferenceDumpFlags": createReferenceDumpFlags, }, }) Loading
cc/library.go +7 −1 Original line number Diff line number Diff line Loading @@ -102,6 +102,10 @@ type LibraryProperties struct { // Symbol tags that should be ignored from the symbol file Exclude_symbol_tags []string // Run checks on all APIs (in addition to the ones referred by // one of exported ELF symbols.) Check_all_apis *bool } // Order symbols in .bss section by their sizes. Only useful for shared libraries. Loading Loading @@ -1072,7 +1076,9 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec refAbiDumpFile := getRefAbiDumpFile(ctx, vndkVersion, fileName) if refAbiDumpFile != nil { library.sAbiDiff = SourceAbiDiff(ctx, library.sAbiOutputFile.Path(), refAbiDumpFile, fileName, exportedHeaderFlags, ctx.isLlndk(ctx.Config()), ctx.isNdk(), ctx.isVndkExt()) refAbiDumpFile, fileName, exportedHeaderFlags, Bool(library.Properties.Header_abi_checker.Check_all_apis), ctx.isLlndk(ctx.Config()), ctx.isNdk(), ctx.isVndkExt()) } } } Loading