Remove prefer_sanitize.* properties am: f97782b18c

am: 548f147804

Change-Id: I6c20dec3b8e96dcda3817f7f8c0a87f663f0d878
This commit is contained in:
Jiyong Park 2019-02-13 21:48:18 -08:00 committed by android-build-merger
commit 92b89d9114
2 changed files with 19 additions and 34 deletions

View file

@ -257,18 +257,8 @@ type apexBundleProperties struct {
Multilib apexMultilibProperties
Prefer_sanitize struct {
// Prefer native libraries with asan if available
Address *bool
// Prefer native libraries with hwasan if available
Hwaddress *bool
// Prefer native libraries with tsan if available
Thread *bool
// Prefer native libraries with integer_overflow if available
Integer_overflow *bool
// Prefer native libraries with cfi if available
Cfi *bool
}
// List of sanitizer names that this APEX is enabled for
SanitizerNames []string `blueprint:"mutated"`
}
type apexTargetBundleProperties struct {
@ -551,29 +541,15 @@ func (a *apexBundle) getImageVariation(config android.DeviceConfig) string {
}
}
func (a *apexBundle) EnableSanitizer(sanitizerName string) {
if !android.InList(sanitizerName, a.properties.SanitizerNames) {
a.properties.SanitizerNames = append(a.properties.SanitizerNames, sanitizerName)
}
}
func (a *apexBundle) IsSanitizerEnabled(ctx android.BaseModuleContext, sanitizerName string) bool {
// If this APEX is configured to prefer a sanitizer, use it
switch sanitizerName {
case "asan":
if proptools.Bool(a.properties.Prefer_sanitize.Address) {
return true
}
case "hwasan":
if proptools.Bool(a.properties.Prefer_sanitize.Hwaddress) {
return true
}
case "tsan":
if proptools.Bool(a.properties.Prefer_sanitize.Thread) {
return true
}
case "cfi":
if proptools.Bool(a.properties.Prefer_sanitize.Cfi) {
return true
}
case "integer_overflow":
if proptools.Bool(a.properties.Prefer_sanitize.Integer_overflow) {
return true
}
if android.InList(sanitizerName, a.properties.SanitizerNames) {
return true
}
// Then follow the global setting

View file

@ -666,6 +666,14 @@ func sanitizerDepsMutator(t sanitizerType) func(android.TopDownMutatorContext) {
}
return true
})
} else if sanitizeable, ok := mctx.Module().(Sanitizeable); ok {
// If an APEX module includes a lib which is enabled for a sanitizer T, then
// the APEX module is also enabled for the same sanitizer type.
mctx.VisitDirectDeps(func(child android.Module) {
if c, ok := child.(*Module); ok && c.sanitize.isSanitizerEnabled(t) {
sanitizeable.EnableSanitizer(t.name())
}
})
}
}
}
@ -848,6 +856,7 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
type Sanitizeable interface {
android.Module
IsSanitizerEnabled(ctx android.BaseModuleContext, sanitizerName string) bool
EnableSanitizer(sanitizerName string)
}
// Create sanitized variants for modules that need them