]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Conditionalise use of -mabi=lp64 for ARM64 builds
authorMichael Brown <mcb30@ipxe.org>
Fri, 28 Jul 2017 11:47:06 +0000 (12:47 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 28 Jul 2017 11:49:40 +0000 (12:49 +0100)
The -mabi option was added in GCC 4.9.  Test for the existence of this
option to allow for building with earlier versions of GCC.

Reported-by: Benjamin S. Allen <bsallen@alcf.anl.gov>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/arm64/Makefile

index d121871f76d97485e6c2b3aca452ee6024cf58c0..9b9dd5ec8254fd9b719a0f7e4ba22abb8c6e08e1 100644 (file)
@@ -4,10 +4,21 @@ SRCDIRS               += arch/arm64/core
 
 # ARM64-specific flags
 #
-CFLAGS         += -mabi=lp64 -mlittle-endian -mcmodel=small
+CFLAGS         += -mlittle-endian -mcmodel=small
 CFLAGS         += -fomit-frame-pointer
 ASFLAGS                += -mabi=lp64 -EL
 
+# We want to specify the LP64 model.  There is an explicit -mabi=lp64
+# on GCC 4.9 and later, and no guarantee as to which is the default
+# model.  In earlier versions of GCC, there is no -mabi option and the
+# default appears to be LP64 anyway.
+#
+ifeq ($(CCTYPE),gcc)
+LP64_TEST = $(CC) -mabi=lp64 -x c -c /dev/null -o /dev/null >/dev/null 2>&1
+LP64_FLAGS := $(shell $(LP64_TEST) && $(ECHO) '-mabi=lp64')
+WORKAROUND_CFLAGS += $(LP64_FLAGS)
+endif
+
 # EFI requires -fshort-wchar, and nothing else currently uses wchar_t
 #
 CFLAGS         += -fshort-wchar