Merge "Disable CFI only on incompatible variants."
This commit is contained in:
@@ -1000,11 +1000,6 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
|
|||||||
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
modules[0].(*Module).sanitize.SetSanitizer(t, true)
|
||||||
} else if c.sanitize.isSanitizerEnabled(t) || c.sanitize.Properties.SanitizeDep {
|
} else if c.sanitize.isSanitizerEnabled(t) || c.sanitize.Properties.SanitizeDep {
|
||||||
isSanitizerEnabled := c.sanitize.isSanitizerEnabled(t)
|
isSanitizerEnabled := c.sanitize.isSanitizerEnabled(t)
|
||||||
if mctx.Device() && t.incompatibleWithCfi() {
|
|
||||||
// TODO: Make sure that cfi mutator runs "after" any of the sanitizers that
|
|
||||||
// are incompatible with cfi
|
|
||||||
c.sanitize.SetSanitizer(cfi, false)
|
|
||||||
}
|
|
||||||
if c.static() || c.header() || t == asan || t == fuzzer {
|
if c.static() || c.header() || t == asan || t == fuzzer {
|
||||||
// Static and header libs are split into non-sanitized and sanitized variants.
|
// Static and header libs are split into non-sanitized and sanitized variants.
|
||||||
// Shared libs are not split. However, for asan and fuzzer, we split even for shared
|
// Shared libs are not split. However, for asan and fuzzer, we split even for shared
|
||||||
@@ -1026,6 +1021,12 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
|
|||||||
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
|
modules[0].(*Module).sanitize.Properties.SanitizeDep = false
|
||||||
modules[1].(*Module).sanitize.Properties.SanitizeDep = false
|
modules[1].(*Module).sanitize.Properties.SanitizeDep = false
|
||||||
|
|
||||||
|
if mctx.Device() && t.incompatibleWithCfi() {
|
||||||
|
// TODO: Make sure that cfi mutator runs "after" any of the sanitizers that
|
||||||
|
// are incompatible with cfi
|
||||||
|
modules[1].(*Module).sanitize.SetSanitizer(cfi, false)
|
||||||
|
}
|
||||||
|
|
||||||
// For cfi/scs/hwasan, we can export both sanitized and un-sanitized variants
|
// For cfi/scs/hwasan, we can export both sanitized and un-sanitized variants
|
||||||
// to Make, because the sanitized version has a different suffix in name.
|
// to Make, because the sanitized version has a different suffix in name.
|
||||||
// For other types of sanitizers, suppress the variation that is disabled.
|
// For other types of sanitizers, suppress the variation that is disabled.
|
||||||
@@ -1063,6 +1064,12 @@ func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
|
|||||||
if mctx.Device() && t == asan && isSanitizerEnabled {
|
if mctx.Device() && t == asan && isSanitizerEnabled {
|
||||||
modules[0].(*Module).sanitize.Properties.InSanitizerDir = true
|
modules[0].(*Module).sanitize.Properties.InSanitizerDir = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if mctx.Device() && t.incompatibleWithCfi() {
|
||||||
|
// TODO: Make sure that cfi mutator runs "after" any of the sanitizers that
|
||||||
|
// are incompatible with cfi
|
||||||
|
modules[0].(*Module).sanitize.SetSanitizer(cfi, false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.sanitize.Properties.SanitizeDep = false
|
c.sanitize.Properties.SanitizeDep = false
|
||||||
|
Reference in New Issue
Block a user