diff options
author | Ivan Lozano <ivanlozano@google.com> | 2018-11-27 14:33:03 -0800 |
---|---|---|
committer | Ivan Lozano <ivanlozano@google.com> | 2018-11-28 09:17:26 -0800 |
commit | bd721269d39788acb0e528a9568fb0c0a5151c7d (patch) | |
tree | 1409a45207689411f5dfb4ce8a5a2870062afc84 /cc/xom.go | |
parent | 328b077e20483ec5eeb59c540c2d58d8c9a4c46e (diff) | |
download | build_soong-bd721269d39788acb0e528a9568fb0c0a5151c7d.tar.gz build_soong-bd721269d39788acb0e528a9568fb0c0a5151c7d.tar.bz2 build_soong-bd721269d39788acb0e528a9568fb0c0a5151c7d.zip |
Disable AArch64 XOM when not using lld.
AArch64 execute-only memory is only supported when using lld as the
linker. There's still a few modules which don't use lld, so in those
cases we need to disable this option.
Bug: 77958880
Test: Module with use_clang_lld false builds without XOM
Test: Module without use_clang_lld defined builds with XOM
Change-Id: I4ab961c4d7342c54c6b40b9facfe18a45ed883bd
Diffstat (limited to 'cc/xom.go')
-rw-r--r-- | cc/xom.go | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -66,7 +66,8 @@ func (xom *xom) flags(ctx ModuleContext, flags Flags) Flags { // 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) { - if ctx.Arch().ArchType == android.Arm64 { + // XOM is only supported on AArch64 when using lld. + if ctx.Arch().ArchType == android.Arm64 && ctx.useClangLld(ctx) { flags.LdFlags = append(flags.LdFlags, "-Wl,-execute-only") } } |