From b0f28957aec5e661796a43bab7d7b6d732833654 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 19 Sep 2016 16:46:53 -0700 Subject: [PATCH] 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 --- cc/cc.go | 3 ++- cc/sanitize.go | 24 +++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/cc/cc.go b/cc/cc.go index 0e34c2fd9..5b4dfc6e1 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -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 diff --git a/cc/sanitize.go b/cc/sanitize.go index de19b827b..bb1a2ad62 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -354,20 +354,18 @@ 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 + 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 - if mctx.AConfig().EmbeddedInMake() { - modules[0].(*Module).Properties.HideFromMake = true - } + } else { + modules[0].(*Module).Properties.PreventInstall = true + } + if mctx.AConfig().EmbeddedInMake() { + modules[0].(*Module).Properties.HideFromMake = true } } c.sanitize.Properties.SanitizeDep = false