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:
3
cc/cc.go
3
cc/cc.go
@@ -120,6 +120,7 @@ type BaseProperties struct {
|
|||||||
|
|
||||||
AndroidMkSharedLibs []string `blueprint:"mutated"`
|
AndroidMkSharedLibs []string `blueprint:"mutated"`
|
||||||
HideFromMake bool `blueprint:"mutated"`
|
HideFromMake bool `blueprint:"mutated"`
|
||||||
|
PreventInstall bool `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UnusedProperties struct {
|
type UnusedProperties struct {
|
||||||
@@ -423,7 +424,7 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
|
|||||||
}
|
}
|
||||||
c.outputFile = android.OptionalPathForPath(outputFile)
|
c.outputFile = android.OptionalPathForPath(outputFile)
|
||||||
|
|
||||||
if c.installer != nil {
|
if c.installer != nil && !c.Properties.PreventInstall {
|
||||||
c.installer.install(ctx, outputFile)
|
c.installer.install(ctx, outputFile)
|
||||||
if ctx.Failed() {
|
if ctx.Failed() {
|
||||||
return
|
return
|
||||||
|
@@ -354,20 +354,18 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
|
|||||||
modules := mctx.CreateVariations(t.String())
|
modules := mctx.CreateVariations(t.String())
|
||||||
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
||||||
} else if c.sanitize.Properties.SanitizeDep {
|
} else if c.sanitize.Properties.SanitizeDep {
|
||||||
if c.Host() {
|
modules := mctx.CreateVariations("", t.String())
|
||||||
modules := mctx.CreateVariations(t.String())
|
modules[0].(*Module).sanitize.SetSanitizer(t, false)
|
||||||
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
modules[1].(*Module).sanitize.SetSanitizer(t, true)
|
||||||
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
|
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
|
||||||
} else {
|
modules[1].(*Module).sanitize.Properties.SanitizeDep = false
|
||||||
modules := mctx.CreateVariations("", t.String())
|
if mctx.Device() {
|
||||||
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[1].(*Module).sanitize.Properties.InData = true
|
modules[1].(*Module).sanitize.Properties.InData = true
|
||||||
if mctx.AConfig().EmbeddedInMake() {
|
} else {
|
||||||
modules[0].(*Module).Properties.HideFromMake = true
|
modules[0].(*Module).Properties.PreventInstall = true
|
||||||
}
|
}
|
||||||
|
if mctx.AConfig().EmbeddedInMake() {
|
||||||
|
modules[0].(*Module).Properties.HideFromMake = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.sanitize.Properties.SanitizeDep = false
|
c.sanitize.Properties.SanitizeDep = false
|
||||||
|
Reference in New Issue
Block a user