diff --git a/android/config.go b/android/config.go index 74cb56e88..3d494af9f 100644 --- a/android/config.go +++ b/android/config.go @@ -357,17 +357,15 @@ func (c *config) SkipDeviceInstall() bool { } func (c *config) SanitizeHost() []string { - if c.ProductVariables.SanitizeHost == nil { - return nil - } - return append([]string(nil), *c.ProductVariables.SanitizeHost...) + return append([]string(nil), c.ProductVariables.SanitizeHost...) } func (c *config) SanitizeDevice() []string { - if c.ProductVariables.SanitizeDevice == nil { - return nil - } - return append([]string(nil), *c.ProductVariables.SanitizeDevice...) + return append([]string(nil), c.ProductVariables.SanitizeDevice...) +} + +func (c *config) SanitizeDeviceArch() []string { + return append([]string(nil), c.ProductVariables.SanitizeDeviceArch...) } func (c *config) Android64() bool { diff --git a/android/variable.go b/android/variable.go index 4aff26e31..5544c120f 100644 --- a/android/variable.go +++ b/android/variable.go @@ -118,8 +118,9 @@ type productVariables struct { DevicePrefer32BitExecutables *bool `json:",omitempty"` HostPrefer32BitExecutables *bool `json:",omitempty"` - SanitizeHost *[]string `json:",omitempty"` - SanitizeDevice *[]string `json:",omitempty"` + SanitizeHost []string `json:",omitempty"` + SanitizeDevice []string `json:",omitempty"` + SanitizeDeviceArch []string `json:",omitempty"` } func boolPtr(v bool) *bool { diff --git a/cc/sanitize.go b/cc/sanitize.go index 8d162e770..447c5b42c 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -119,7 +119,10 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) { if ctx.Host() { globalSanitizers = ctx.AConfig().SanitizeHost() } else { - globalSanitizers = ctx.AConfig().SanitizeDevice() + arches := ctx.AConfig().SanitizeDeviceArch() + if len(arches) == 0 || inList(ctx.Arch().ArchType.Name, arches) { + globalSanitizers = ctx.AConfig().SanitizeDevice() + } } }