Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6703fe6 authored by Ivan Lozano's avatar Ivan Lozano Committed by Gerrit Code Review
Browse files

Merge "Disable AArch64 XOM when not using lld."

parents c027b309 bd721269
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@ type ModuleContextIntf interface {
	baseModuleName() string
	getVndkExtendsModuleName() string
	isPgoCompile() bool
	useClangLld(actx ModuleContext) bool
}

type ModuleContext interface {
@@ -287,6 +288,7 @@ type linker interface {
	linkerDeps(ctx DepsContext, deps Deps) Deps
	linkerFlags(ctx ModuleContext, flags Flags) Flags
	linkerProps() []interface{}
	useClangLld(actx ModuleContext) bool

	link(ctx ModuleContext, flags Flags, deps PathDeps, objs Objects) android.Path
	appendLdflags([]string)
@@ -635,6 +637,10 @@ func (ctx *moduleContextImpl) selectedStl() string {
	return ""
}

func (ctx *moduleContextImpl) useClangLld(actx ModuleContext) bool {
	return ctx.mod.linker.useClangLld(actx)
}

func (ctx *moduleContextImpl) baseModuleName() string {
	return ctx.mod.ModuleBase.BaseModuleName()
}
+2 −1
Original line number Diff line number Diff line
@@ -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")
		}
	}