Add support for AArch64 XOM binaries.
Adds build system support for generating AArch64 binaries with
execute-only memory layouts via a new xom module property. Also adds
support for an ENABLE_XOM build flag for global builds.
Bug: 77958880
Test: make -j ENABLE_XOM=true
Change-Id: Ia2ea981498dd12941aaf5ca807648ae37527e3ee
diff --git a/android/config.go b/android/config.go
index 50c1413..0171cc0 100644
--- a/android/config.go
+++ b/android/config.go
@@ -626,6 +626,14 @@
}
}
+func (c *config) EnableXOM() bool {
+ if c.productVariables.EnableXOM == nil {
+ return false
+ } else {
+ return Bool(c.productVariables.EnableXOM)
+ }
+}
+
func (c *config) Android64() bool {
for _, t := range c.Targets[Android] {
if t.Arch.ArchType.Multilib == "lib64" {
@@ -863,6 +871,13 @@
return PrefixInList(path, *c.productVariables.CFIIncludePaths)
}
+func (c *config) XOMDisabledForPath(path string) bool {
+ if c.productVariables.XOMExcludePaths == nil {
+ return false
+ }
+ return PrefixInList(path, *c.productVariables.XOMExcludePaths)
+}
+
func (c *config) VendorConfig(name string) VendorConfig {
return vendorConfig(c.productVariables.VendorVars[name])
}