Messages in this thread Patch in this message | | | From | Guenter Roeck <> | Subject | [PATCH] arm64: Enforce endianness build flags for LD and AS | Date | Tue, 3 Oct 2017 13:58:22 -0700 |
| |
If LD or AS is specified on the command line using "make LD=<my-ld>", the endianness flag will not be added. Depending on the toolchain used, this can result in endianness mismatch errors, such as
aarch64-cros-linux-gnu/binutils-bin/2.27.0/ld.bfd.real: arch/arm64/crypto/.tmp_aes-ce-cipher.o: compiled for a big endian system and target is little endian
The problem was observed when using the Chrome OS build system (which sets LD on the command line) for an arm64:allmodconfig build.
Use the override flag for both LD and AS to ensure that the endianness flag is always set.
Cc: Douglas Anderson <dianders@chromium.org> Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- arch/arm64/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 939b310913cf..d780d00bea9c 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -56,15 +56,15 @@ KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) KBUILD_CPPFLAGS += -mbig-endian CHECKFLAGS += -D__AARCH64EB__ -AS += -EB -LD += -EB +override AS += -EB +override LD += -EB LDFLAGS += -maarch64linuxb UTS_MACHINE := aarch64_be else KBUILD_CPPFLAGS += -mlittle-endian CHECKFLAGS += -D__AARCH64EL__ -AS += -EL -LD += -EL +override AS += -EL +override LD += -EL LDFLAGS += -maarch64linux UTS_MACHINE := aarch64 endif -- 2.7.4
| |