Merge "Remove execute-only support."
diff --git a/Android.bp b/Android.bp
index cb2f773..f425c3f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -195,7 +195,6 @@
"cc/vendor_snapshot.go",
"cc/vndk.go",
"cc/vndk_prebuilt.go",
- "cc/xom.go",
"cc/cflag_artifacts.go",
"cc/cmakelists.go",
diff --git a/android/config.go b/android/config.go
index 3c979f2..9cf9662 100644
--- a/android/config.go
+++ b/android/config.go
@@ -790,14 +790,6 @@
return Bool(c.productVariables.DisableScudo)
}
-func (c *config) EnableXOM() bool {
- if c.productVariables.EnableXOM == nil {
- return true
- } else {
- return Bool(c.productVariables.EnableXOM)
- }
-}
-
func (c *config) Android64() bool {
for _, t := range c.Targets[Android] {
if t.Arch.ArchType.Multilib == "lib64" {
@@ -1153,13 +1145,6 @@
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 soongconfig.Config(c.productVariables.VendorVars[name])
}
diff --git a/android/variable.go b/android/variable.go
index e4a3fa3..9cbe624 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -241,9 +241,6 @@
DisableScudo *bool `json:",omitempty"`
- EnableXOM *bool `json:",omitempty"`
- XOMExcludePaths []string `json:",omitempty"`
-
Experimental_mte *bool `json:",omitempty"`
VendorPath *string `json:",omitempty"`
diff --git a/cc/cc.go b/cc/cc.go
index e55c576..b70e55c 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -450,7 +450,6 @@
vndkdep *vndkdep
lto *lto
pgo *pgo
- xom *xom
outputFile android.OptionalPath
@@ -734,9 +733,6 @@
if c.pgo != nil {
c.AddProperties(c.pgo.props()...)
}
- if c.xom != nil {
- c.AddProperties(c.xom.props()...)
- }
for _, feature := range c.features {
c.AddProperties(feature.props()...)
}
@@ -1206,7 +1202,6 @@
module.vndkdep = &vndkdep{}
module.lto = <o{}
module.pgo = &pgo{}
- module.xom = &xom{}
return module
}
@@ -1401,9 +1396,6 @@
if c.pgo != nil {
flags = c.pgo.flags(ctx, flags)
}
- if c.xom != nil {
- flags = c.xom.flags(ctx, flags)
- }
for _, feature := range c.features {
flags = feature.flags(ctx, flags)
}
@@ -2683,7 +2675,6 @@
&VndkProperties{},
<OProperties{},
&PgoProperties{},
- &XomProperties{},
&android.ProtoProperties{},
)
diff --git a/cc/xom.go b/cc/xom.go
deleted file mode 100644
index ce817aa..0000000
--- a/cc/xom.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2018 Google Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package cc
-
-import (
- "android/soong/android"
-)
-
-type XomProperties struct {
- Xom *bool
-}
-
-type xom struct {
- Properties XomProperties
-}
-
-func (xom *xom) props() []interface{} {
- return []interface{}{&xom.Properties}
-}
-
-func (xom *xom) begin(ctx BaseModuleContext) {}
-
-func (xom *xom) deps(ctx BaseModuleContext, deps Deps) Deps {
- return deps
-}
-
-func (xom *xom) flags(ctx ModuleContext, flags Flags) Flags {
- disableXom := false
-
- if !ctx.Config().EnableXOM() || ctx.Config().XOMDisabledForPath(ctx.ModuleDir()) {
- disableXom = true
- }
-
- if xom.Properties.Xom != nil && !*xom.Properties.Xom {
- return flags
- }
-
- // If any static dependencies have XOM disabled, we should disable XOM in this module,
- // the assumption being if it's been explicitly disabled then there's probably incompatible
- // code in the library which may get pulled in.
- if !disableXom {
- ctx.VisitDirectDeps(func(m android.Module) {
- cc, ok := m.(*Module)
- if !ok || cc.xom == nil || !cc.static() {
- return
- }
- if cc.xom.Properties.Xom != nil && !*cc.xom.Properties.Xom {
- disableXom = true
- return
- }
- })
- }
-
- // Enable execute-only if none of the dependencies disable it,
- // also if it's explicitly set true (allows overriding dependencies disabling it).
- if !disableXom || (xom.Properties.Xom != nil && *xom.Properties.Xom) {
- // XOM is only supported on AArch64 when using lld.
- if ctx.Arch().ArchType == android.Arm64 && ctx.useClangLld(ctx) {
- flags.Local.LdFlags = append(flags.Local.LdFlags,
- "-Wl,--execute-only",
- "-Wl,-z,separate-code",
- )
- }
- }
-
- return flags
-}