Support sanitizer variants inside make builds
am: bc6fb16b26
* commit 'bc6fb16b26dedee0e9f10239cb9a6c8a3e647b04':
Support sanitizer variants inside make builds
Change-Id: I5c75ac2dcc8a11eba3155e0d1d382edb176e8de7
This commit is contained in:
commit
991008ce19
|
@ -24,6 +24,11 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
|
func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
|
||||||
|
if c.Properties.HideFromMake {
|
||||||
|
ret.Disabled = true
|
||||||
|
return ret, nil
|
||||||
|
}
|
||||||
|
|
||||||
ret.OutputFile = c.outputFile
|
ret.OutputFile = c.outputFile
|
||||||
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) (err error) {
|
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) (err error) {
|
||||||
fmt.Fprintln(w, "LOCAL_SANITIZE := never")
|
fmt.Fprintln(w, "LOCAL_SANITIZE := never")
|
||||||
|
|
20
cc/cc.go
20
cc/cc.go
|
@ -427,6 +427,7 @@ type BaseProperties struct {
|
||||||
No_default_compiler_flags *bool
|
No_default_compiler_flags *bool
|
||||||
|
|
||||||
AndroidMkSharedLibs []string `blueprint:"mutated"`
|
AndroidMkSharedLibs []string `blueprint:"mutated"`
|
||||||
|
HideFromMake bool `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type InstallerProperties struct {
|
type InstallerProperties struct {
|
||||||
|
@ -992,20 +993,6 @@ func (c *Module) InstallInData() bool {
|
||||||
return c.installer.inData()
|
return c.installer.inData()
|
||||||
}
|
}
|
||||||
|
|
||||||
type appendVariantName interface {
|
|
||||||
appendVariantName(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Module) appendVariantName(name string) {
|
|
||||||
if c.linker == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if l, ok := c.linker.(appendVariantName); ok {
|
|
||||||
l.appendVariantName(name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compiler
|
// Compiler
|
||||||
|
|
||||||
type baseCompiler struct {
|
type baseCompiler struct {
|
||||||
|
@ -1476,7 +1463,6 @@ type libraryLinker struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ linker = (*libraryLinker)(nil)
|
var _ linker = (*libraryLinker)(nil)
|
||||||
var _ appendVariantName = (*libraryLinker)(nil)
|
|
||||||
|
|
||||||
func (library *libraryLinker) props() []interface{} {
|
func (library *libraryLinker) props() []interface{} {
|
||||||
props := library.baseLinker.props()
|
props := library.baseLinker.props()
|
||||||
|
@ -1667,10 +1653,6 @@ func (library *libraryLinker) installable() bool {
|
||||||
return !library.static()
|
return !library.static()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (library *libraryLinker) appendVariantName(variant string) {
|
|
||||||
library.Properties.VariantName += variant
|
|
||||||
}
|
|
||||||
|
|
||||||
type libraryInstaller struct {
|
type libraryInstaller struct {
|
||||||
baseInstaller
|
baseInstaller
|
||||||
|
|
||||||
|
|
|
@ -335,17 +335,14 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
|
||||||
modules[0].(*Module).sanitize.Properties.InData = true
|
modules[0].(*Module).sanitize.Properties.InData = true
|
||||||
}
|
}
|
||||||
} else if c.sanitize.Properties.SanitizeDep {
|
} else if c.sanitize.Properties.SanitizeDep {
|
||||||
|
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[1].(*Module).sanitize.Properties.InData = true
|
||||||
if mctx.AConfig().EmbeddedInMake() {
|
if mctx.AConfig().EmbeddedInMake() {
|
||||||
modules := mctx.CreateVariations(t.String())
|
modules[0].(*Module).Properties.HideFromMake = true
|
||||||
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
|
||||||
modules[0].(*Module).sanitize.Properties.InData = true
|
|
||||||
} else {
|
|
||||||
modules := mctx.CreateVariations("", t.String())
|
|
||||||
modules[0].(*Module).sanitize.SetSanitizer(t, false)
|
|
||||||
modules[1].(*Module).sanitize.SetSanitizer(t, true)
|
|
||||||
modules[1].(*Module).appendVariantName("_" + t.String())
|
|
||||||
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
|
|
||||||
modules[1].(*Module).sanitize.Properties.SanitizeDep = false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.sanitize.Properties.SanitizeDep = false
|
c.sanitize.Properties.SanitizeDep = false
|
||||||
|
|
Loading…
Reference in New Issue