xen: arm: drop LDFLAGS_DIRECT emulation specification.
authorIan Campbell <ian.campbell@citrix.com>
Fri, 26 Apr 2013 10:58:47 +0000 (11:58 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Fri, 19 Jul 2013 13:56:42 +0000 (14:56 +0100)
The current -maarch64elf fails when cross-building arm64 on Ubuntu Raring due
to a missing file "ldscripts/aarch64elf.xr". This is undoubtedly an Ubuntu gcc
bug, hwever when investigating I found that this option was not necessary at
all since we provide an explicit linker script when linking the hypervisor
(AFAICT all -m<foo> does is override the default linker script).

LDFLAGS_DIRECT is also used when linking the intermediate built-in.o files but
-m<emulatin> is not needed for this since it isn't linking the final image and
we are calling the linker with the correct, cross if necessary, name.

However it does appear to be potentially useful to supply -EL in both cases to
ensure that we get little endian images. (I just happened to spot that Linux
does this, for both arm and arm64, although I expect we are unlikely to trip
over such toolchains these days).

Tested with cross-builds of arm32 and arm64 as well as a native arm32 build.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
config/arm32.mk
config/arm64.mk

index 3bc642df2afcfa8deb989742a5869b0bb95cd28d..8e21158e18dff3b7735b1bfdf3672c8b4eae7707 100644 (file)
@@ -13,9 +13,6 @@ HAS_PL011 := y
 HAS_EXYNOS4210 := y
 
 # Use only if calling $(LD) directly.
-#LDFLAGS_DIRECT_OpenBSD = _obsd
-#LDFLAGS_DIRECT_FreeBSD = _fbsd
-LDFLAGS_DIRECT_Linux = _linux
-LDFLAGS_DIRECT += -marmelf$(LDFLAGS_DIRECT_$(XEN_OS))_eabi
+LDFLAGS_DIRECT += -EL
 
 CONFIG_LOAD_ADDRESS ?= 0x80000000
index 1130630256f0567d90dd8f97c9f67ac8ca41e288..49055fa3dba5d0f0044c3121ab48e14b3f639e58 100644 (file)
@@ -9,6 +9,6 @@ CFLAGS += #-marm -march= -mcpu= etc
 HAS_PL011 := y
 
 # Use only if calling $(LD) directly.
-LDFLAGS_DIRECT += -maarch64elf
+LDFLAGS_DIRECT += -EL
 
 CONFIG_LOAD_ADDRESS ?= 0x80000000