Merge changes from topic "abigail-werror"
* changes: Disable ABI dumping for hwasan builds. Abort on abitidy errors.
This commit is contained in:
@@ -46,7 +46,7 @@ func (n *ndkAbiDumpSingleton) GenerateBuildActions(ctx android.SingletonContext)
|
|||||||
|
|
||||||
if m, ok := module.(*Module); ok {
|
if m, ok := module.(*Module); ok {
|
||||||
if installer, ok := m.installer.(*stubDecorator); ok {
|
if installer, ok := m.installer.(*stubDecorator); ok {
|
||||||
if canDumpAbi() {
|
if canDumpAbi(ctx.Config()) {
|
||||||
depPaths = append(depPaths, installer.abiDumpPath)
|
depPaths = append(depPaths, installer.abiDumpPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -53,9 +53,9 @@ var (
|
|||||||
|
|
||||||
abitidy = pctx.AndroidStaticRule("abitidy",
|
abitidy = pctx.AndroidStaticRule("abitidy",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Command: "$abitidy --all -i $in -o $out",
|
Command: "$abitidy --all $flags -i $in -o $out",
|
||||||
CommandDeps: []string{"$abitidy"},
|
CommandDeps: []string{"$abitidy"},
|
||||||
})
|
}, "flags")
|
||||||
|
|
||||||
abidiff = pctx.AndroidStaticRule("abidiff",
|
abidiff = pctx.AndroidStaticRule("abidiff",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
@@ -104,6 +104,12 @@ type libraryProperties struct {
|
|||||||
// used. This is only needed to work around platform bugs like
|
// used. This is only needed to work around platform bugs like
|
||||||
// https://github.com/android-ndk/ndk/issues/265.
|
// https://github.com/android-ndk/ndk/issues/265.
|
||||||
Unversioned_until *string
|
Unversioned_until *string
|
||||||
|
|
||||||
|
// If true, does not emit errors when APIs lacking type information are
|
||||||
|
// found. This is false by default and should not be enabled outside bionic,
|
||||||
|
// where it is enabled pending a fix for http://b/190554910 (no debug info
|
||||||
|
// for asm implemented symbols).
|
||||||
|
Allow_untyped_symbols *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type stubDecorator struct {
|
type stubDecorator struct {
|
||||||
@@ -315,8 +321,18 @@ func (this *stubDecorator) findPrebuiltAbiDump(ctx ModuleContext,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Feature flag.
|
// Feature flag.
|
||||||
func canDumpAbi() bool {
|
func canDumpAbi(config android.Config) bool {
|
||||||
return runtime.GOOS != "darwin"
|
if runtime.GOOS == "darwin" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// abidw doesn't currently handle top-byte-ignore correctly. Disable ABI
|
||||||
|
// dumping for those configs while we wait for a fix. We'll still have ABI
|
||||||
|
// checking coverage from non-hwasan builds.
|
||||||
|
// http://b/190554910
|
||||||
|
if android.InList("hwaddress", config.SanitizeDevice()) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Feature flag to disable diffing against prebuilts.
|
// Feature flag to disable diffing against prebuilts.
|
||||||
@@ -339,14 +355,22 @@ func (this *stubDecorator) dumpAbi(ctx ModuleContext, symbolList android.Path) {
|
|||||||
"symbolList": symbolList.String(),
|
"symbolList": symbolList.String(),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
this.abiDumpPath = getNdkAbiDumpInstallBase(ctx).Join(ctx,
|
this.abiDumpPath = getNdkAbiDumpInstallBase(ctx).Join(ctx,
|
||||||
this.apiLevel.String(), ctx.Arch().ArchType.String(),
|
this.apiLevel.String(), ctx.Arch().ArchType.String(),
|
||||||
this.libraryName(ctx), "abi.xml")
|
this.libraryName(ctx), "abi.xml")
|
||||||
|
untypedFlag := "--abort-on-untyped-symbols"
|
||||||
|
if proptools.BoolDefault(this.properties.Allow_untyped_symbols, false) {
|
||||||
|
untypedFlag = ""
|
||||||
|
}
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Build(pctx, android.BuildParams{
|
||||||
Rule: abitidy,
|
Rule: abitidy,
|
||||||
Description: fmt.Sprintf("abitidy %s", implementationLibrary),
|
Description: fmt.Sprintf("abitidy %s", implementationLibrary),
|
||||||
Input: abiRawPath,
|
Input: abiRawPath,
|
||||||
Output: this.abiDumpPath,
|
Output: this.abiDumpPath,
|
||||||
|
Args: map[string]string{
|
||||||
|
"flags": untypedFlag,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +468,7 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) O
|
|||||||
nativeAbiResult := parseNativeAbiDefinition(ctx, symbolFile, c.apiLevel, "")
|
nativeAbiResult := parseNativeAbiDefinition(ctx, symbolFile, c.apiLevel, "")
|
||||||
objs := compileStubLibrary(ctx, flags, nativeAbiResult.stubSrc)
|
objs := compileStubLibrary(ctx, flags, nativeAbiResult.stubSrc)
|
||||||
c.versionScriptPath = nativeAbiResult.versionScript
|
c.versionScriptPath = nativeAbiResult.versionScript
|
||||||
if canDumpAbi() {
|
if canDumpAbi(ctx.Config()) {
|
||||||
c.dumpAbi(ctx, nativeAbiResult.symbolList)
|
c.dumpAbi(ctx, nativeAbiResult.symbolList)
|
||||||
if canDiffAbi() {
|
if canDiffAbi() {
|
||||||
c.diffAbi(ctx)
|
c.diffAbi(ctx)
|
||||||
|
Reference in New Issue
Block a user