diff options
author | Andrew Pinski <apinski@cavium.com> | 2017-09-18 06:20:20 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2017-09-18 06:20:20 -0400 |
commit | 3d6a7b99e3fa29b92d6288487e057e0a596bd2b0 (patch) | |
tree | 954a9bf1e95bac58a2b2145589d79f509474181d | |
parent | c73cc120a33e12e4e254b4b42bc613204ccb923b (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/Makefile | 5 |
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 | |||
50 | KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) | 50 | KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) |
51 | KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) | 51 | KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) |
52 | 52 | ||
53 | KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) | ||
54 | KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) | ||
55 | |||
53 | ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) | 56 | ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) |
54 | KBUILD_CPPFLAGS += -mbig-endian | 57 | KBUILD_CPPFLAGS += -mbig-endian |
55 | CHECKFLAGS += -D__AARCH64EB__ | 58 | CHECKFLAGS += -D__AARCH64EB__ |
56 | AS += -EB | 59 | AS += -EB |
57 | LD += -EB | 60 | LD += -EB |
61 | LDFLAGS += -maarch64linuxb | ||
58 | UTS_MACHINE := aarch64_be | 62 | UTS_MACHINE := aarch64_be |
59 | else | 63 | else |
60 | KBUILD_CPPFLAGS += -mlittle-endian | 64 | KBUILD_CPPFLAGS += -mlittle-endian |
61 | CHECKFLAGS += -D__AARCH64EL__ | 65 | CHECKFLAGS += -D__AARCH64EL__ |
62 | AS += -EL | 66 | AS += -EL |
63 | LD += -EL | 67 | LD += -EL |
68 | LDFLAGS += -maarch64linux | ||
64 | UTS_MACHINE := aarch64 | 69 | UTS_MACHINE := aarch64 |
65 | endif | 70 | endif |
66 | 71 | ||