Support mixed ASAN and non-ASAN host builds

Host builds may build binaries that must have ASAN disabled.  Convert
host ASAN to use variants.  Since there is only one install location for
shared libraries, don't install the non-ASAN variant at all for now.

Test: mmma -j art SANITIZE_HOST=address
Change-Id: Iacefecac93df44823316624b4c540c24f643fb80
This commit is contained in:
Colin Cross
2016-09-19 16:46:53 -07:00
parent f09c8437f9
commit b0f28957ae
2 changed files with 13 additions and 14 deletions

View File

@@ -120,6 +120,7 @@ type BaseProperties struct {
AndroidMkSharedLibs []string `blueprint:"mutated"`
HideFromMake bool `blueprint:"mutated"`
PreventInstall bool `blueprint:"mutated"`
}
type UnusedProperties struct {
@@ -423,7 +424,7 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
}
c.outputFile = android.OptionalPathForPath(outputFile)
if c.installer != nil {
if c.installer != nil && !c.Properties.PreventInstall {
c.installer.install(ctx, outputFile)
if ctx.Failed() {
return

View File

@@ -354,22 +354,20 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
modules := mctx.CreateVariations(t.String())
modules[0].(*Module).sanitize.SetSanitizer(t, true)
} else if c.sanitize.Properties.SanitizeDep {
if c.Host() {
modules := mctx.CreateVariations(t.String())
modules[0].(*Module).sanitize.SetSanitizer(t, true)
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
} else {
modules := mctx.CreateVariations("", t.String())
modules[0].(*Module).sanitize.SetSanitizer(t, false)
modules[1].(*Module).sanitize.SetSanitizer(t, true)
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
modules[1].(*Module).sanitize.Properties.SanitizeDep = false
if mctx.Device() {
modules[1].(*Module).sanitize.Properties.InData = true
} else {
modules[0].(*Module).Properties.PreventInstall = true
}
if mctx.AConfig().EmbeddedInMake() {
modules[0].(*Module).Properties.HideFromMake = true
}
}
}
c.sanitize.Properties.SanitizeDep = false
}
}