aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2017-09-18 06:20:20 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2017-09-18 06:20:20 -0400
commit3d6a7b99e3fa29b92d6288487e057e0a596bd2b0 (patch)
tree954a9bf1e95bac58a2b2145589d79f509474181d
parentc73cc120a33e12e4e254b4b42bc613204ccb923b (diff)
arm64: ensure the kernel is compiled for LP64
The kernel needs to be compiled as a LP64 binary for ARM64, even when using a compiler that defaults to code-generation for the ILP32 ABI. Consequently, we need to explicitly pass '-mabi=lp64' (supported on gcc-4.9 and newer). Signed-off-by: Andrew Pinski <Andrew.Pinski@caviumnetworks.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com> Signed-off-by: Yury Norov <ynorov@caviumnetworks.com> Reviewed-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-rw-r--r--arch/arm64/Makefile5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 9b41f1e3b1a0..939b310913cf 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -50,17 +50,22 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
50KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) 50KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads)
51KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) 51KBUILD_AFLAGS += $(lseinstr) $(brokengasinst)
52 52
53KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
54KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
55
53ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) 56ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
54KBUILD_CPPFLAGS += -mbig-endian 57KBUILD_CPPFLAGS += -mbig-endian
55CHECKFLAGS += -D__AARCH64EB__ 58CHECKFLAGS += -D__AARCH64EB__
56AS += -EB 59AS += -EB
57LD += -EB 60LD += -EB
61LDFLAGS += -maarch64linuxb
58UTS_MACHINE := aarch64_be 62UTS_MACHINE := aarch64_be
59else 63else
60KBUILD_CPPFLAGS += -mlittle-endian 64KBUILD_CPPFLAGS += -mlittle-endian
61CHECKFLAGS += -D__AARCH64EL__ 65CHECKFLAGS += -D__AARCH64EL__
62AS += -EL 66AS += -EL
63LD += -EL 67LD += -EL
68LDFLAGS += -maarch64linux
64UTS_MACHINE := aarch64 69UTS_MACHINE := aarch64
65endif 70endif
66 71