Merge "Enable HWASan for multiple modules in one place(Soong)"

This commit is contained in:
Treehugger Robot
2023-04-29 00:10:16 +00:00
committed by Gerrit Code Review
3 changed files with 15 additions and 0 deletions

View File

@@ -1571,6 +1571,13 @@ func (c *config) MemtagHeapSyncEnabledForPath(path string) bool {
return HasAnyPrefix(path, c.productVariables.MemtagHeapSyncIncludePaths) && !c.MemtagHeapDisabledForPath(path) return HasAnyPrefix(path, c.productVariables.MemtagHeapSyncIncludePaths) && !c.MemtagHeapDisabledForPath(path)
} }
func (c *config) HWASanEnabledForPath(path string) bool {
if len(c.productVariables.HWASanIncludePaths) == 0 {
return false
}
return HasAnyPrefix(path, c.productVariables.HWASanIncludePaths)
}
func (c *config) VendorConfig(name string) VendorConfig { func (c *config) VendorConfig(name string) VendorConfig {
return soongconfig.Config(c.productVariables.VendorVars[name]) return soongconfig.Config(c.productVariables.VendorVars[name])
} }

View File

@@ -307,6 +307,8 @@ type productVariables struct {
MemtagHeapAsyncIncludePaths []string `json:",omitempty"` MemtagHeapAsyncIncludePaths []string `json:",omitempty"`
MemtagHeapSyncIncludePaths []string `json:",omitempty"` MemtagHeapSyncIncludePaths []string `json:",omitempty"`
HWASanIncludePaths []string `json:",omitempty"`
VendorPath *string `json:",omitempty"` VendorPath *string `json:",omitempty"`
OdmPath *string `json:",omitempty"` OdmPath *string `json:",omitempty"`
ProductPath *string `json:",omitempty"` ProductPath *string `json:",omitempty"`

View File

@@ -593,6 +593,12 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
} }
} }
// Enable HWASan for all components in the include paths (for Aarch64 only)
if s.Hwaddress == nil && ctx.Config().HWASanEnabledForPath(ctx.ModuleDir()) &&
ctx.Arch().ArchType == android.Arm64 && ctx.toolchain().Bionic() {
s.Hwaddress = proptools.BoolPtr(true)
}
// Enable CFI for non-host components in the include paths // Enable CFI for non-host components in the include paths
if s.Cfi == nil && ctx.Config().CFIEnabledForPath(ctx.ModuleDir()) && !ctx.Host() { if s.Cfi == nil && ctx.Config().CFIEnabledForPath(ctx.ModuleDir()) && !ctx.Host() {
s.Cfi = proptools.BoolPtr(true) s.Cfi = proptools.BoolPtr(true)