Re: [PATCH] arm64: Enforce endianness build flags for LD and AS

From: Doug Anderson
Date: Tue Oct 03 2017 - 17:04:15 EST


On Tue, Oct 3, 2017 at 1:58 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> 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@xxxxxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> ---
> arch/arm64/Makefile | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)

This seems right to me. My understanding of the way things work is
that if you want a different linker or assembler you pass it on the
command line. That means you need "override" like this if you want to
append to it.

As a self-proclaimed non-expert on the kernel build system I'm not
sure it's worth much, but in any case:

Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>