CFI include/exclude path support (Soong)
This CL adds the ability to centrally enable or disable CFI for
components using either an environment or product config
variable. This is a better, nore manageable option that enabling CFI
across each component individually.
Bug: 67507323
Test: CFI_INCLUDE_PATHS= system/nfc m -j40
Test: CFI_EXCLUDE_PATHS = frameworks/av m -j40
Change-Id: I38b77946759121aec99ab25f31aaee2e5d993f73
diff --git a/android/config.go b/android/config.go
index e9a8d42..b73680e 100644
--- a/android/config.go
+++ b/android/config.go
@@ -656,3 +656,17 @@
}
return prefixInList(path, *c.ProductVariables.IntegerOverflowExcludePaths)
}
+
+func (c *config) CFIDisabledForPath(path string) bool {
+ if c.ProductVariables.CFIExcludePaths == nil {
+ return false
+ }
+ return prefixInList(path, *c.ProductVariables.CFIExcludePaths)
+}
+
+func (c *config) CFIEnabledForPath(path string) bool {
+ if c.ProductVariables.CFIIncludePaths == nil {
+ return false
+ }
+ return prefixInList(path, *c.ProductVariables.CFIIncludePaths)
+}