From 4f992b663fdb0f422a772ba2df9ef8ca9b6a7d6e Mon Sep 17 00:00:00 2001 From: Hsin-Yi Chen Date: Thu, 19 May 2022 15:17:54 +0800 Subject: [PATCH] Add diff_flags as a header_abi_checker property The property allows developers to add extra flags to header-abi-diff for specific libraries. Bug: 232891473 Test: m libbinder.vendor Change-Id: I203af73c784dfc7738bb64f57b224c08d5c595ce --- cc/builder.go | 7 +++++-- cc/library.go | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cc/builder.go b/cc/builder.go index ff4e9b447..ea06839a9 100644 --- a/cc/builder.go +++ b/cc/builder.go @@ -942,9 +942,10 @@ func unzipRefDump(ctx android.ModuleContext, zippedRefDump android.Path, baseNam return outputFile } -// sourceAbiDiff registers a build statement to compare linked sAbi dump files (.ldump). +// sourceAbiDiff registers a build statement to compare linked sAbi dump files (.lsdump). func sourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceDump android.Path, - baseName, exportedHeaderFlags string, checkAllApis, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { + baseName, exportedHeaderFlags string, diffFlags []string, + checkAllApis, isLlndk, isNdk, isVndkExt bool) android.OptionalPath { outputFile := android.PathForModuleOut(ctx, baseName+".abidiff") libName := strings.TrimSuffix(baseName, filepath.Ext(baseName)) @@ -975,6 +976,8 @@ func sourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceD if isVndkExt { extraFlags = append(extraFlags, "-allow-extensions") } + // TODO(b/232891473): Simplify the above logic with diffFlags. + extraFlags = append(extraFlags, diffFlags...) ctx.Build(pctx, android.BuildParams{ Rule: sAbiDiff, diff --git a/cc/library.go b/cc/library.go index 0abcb6f39..b1c18f4d0 100644 --- a/cc/library.go +++ b/cc/library.go @@ -110,6 +110,9 @@ type LibraryProperties struct { // Run checks on all APIs (in addition to the ones referred by // one of exported ELF symbols.) Check_all_apis *bool + + // Extra flags passed to header-abi-diff + Diff_flags []string } // Inject boringssl hash into the shared library. This is only intended for use by external/boringssl. @@ -1638,6 +1641,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec if refAbiDumpFile != nil { library.sAbiDiff = sourceAbiDiff(ctx, library.sAbiOutputFile.Path(), refAbiDumpFile, fileName, exportedHeaderFlags, + library.Properties.Header_abi_checker.Diff_flags, Bool(library.Properties.Header_abi_checker.Check_all_apis), ctx.IsLlndk(), ctx.isNdk(ctx.Config()), ctx.IsVndkExt()) }