[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAQkL+8sFPiVsxaVF9ffyWFeezTzWFQCnJKTP1Y6-C0N8Q@mail.gmail.com>
Date: Thu, 19 Jul 2018 08:08:53 +0900
From: Masahiro Yamada <yamada.masahiro@...ionext.com>
To: Olof Johansson <olof@...om.net>
Cc: Will Deacon <will.deacon@....com>,
Catalin Marinas <catalin.marinas@....com>,
Michal Marek <michal.lkml@...kovi.net>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Paul Kocialkowski <contact@...lk.fr>
Subject: Re: [PATCH] arm64: build with baremetal linker target instead of
Linux when available
2018-07-14 0:30 GMT+09:00 Olof Johansson <olof@...om.net>:
> Not all toolchains have the baremetal elf targets, RedHat/Fedora ones
> in particular. So, probe for whether it's available and use the previous
> (linux) targets if it isn't.
>
> Reported-by: Laura Abbott <labbott@...hat.com>
> Cc: Paul Kocialkowski <contact@...lk.fr>
> Signed-off-by: Olof Johansson <olof@...om.net>
> ---
> arch/arm64/Makefile | 9 +++++----
> scripts/Kbuild.include | 4 ++--
> 2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
> index e7101b19d590..efe61a2e4b5e 100644
> --- a/arch/arm64/Makefile
> +++ b/arch/arm64/Makefile
> @@ -60,15 +60,16 @@ ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
> KBUILD_CPPFLAGS += -mbig-endian
> CHECKFLAGS += -D__AARCH64EB__
> AS += -EB
> -# We must use the linux target here, since distributions don't tend to package
> -# the ELF linker scripts with binutils, and this results in a build failure.
> -LDFLAGS += -EB -maarch64linuxb
> +# Prefer the baremetal ELF build target, but not all toolchains include
> +# it so fall back to the standard linux version if needed.
> +LDFLAGS += -EB $(call ld-option, -maarch64elfb, -maarch64linuxb)
> UTS_MACHINE := aarch64_be
> else
> KBUILD_CPPFLAGS += -mlittle-endian
> CHECKFLAGS += -D__AARCH64EL__
> AS += -EL
> -LDFLAGS += -EL -maarch64linux # See comment above
> +# Same as above, prefer ELF but fall back to linux target if needed.
> +LDFLAGS += -EL $(call ld-option, -maarch64elf, -maarch64linux)
> UTS_MACHINE := aarch64
> endif
>
> diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
> index c8156d61678c..1e13f502b42f 100644
> --- a/scripts/Kbuild.include
> +++ b/scripts/Kbuild.include
> @@ -163,8 +163,8 @@ cc-ldoption = $(call try-run,\
> $(CC) $(1) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
>
> # ld-option
> -# Usage: LDFLAGS += $(call ld-option, -X)
> -ld-option = $(call try-run, $(LD) $(LDFLAGS) $(1) -v,$(1),$(2))
> +# Usage: LDFLAGS += $(call ld-option, -X, -Y)
> +ld-option = $(call try-run, $(LD) $(LDFLAGS) $(1) -v,$(1),$(2),$(3))
>
> # ar-option
> # Usage: KBUILD_ARFLAGS := $(call ar-option,D)
I guess this patch will go through the arm64 tree.
I am fine with the change of scripts/Kbuild.include
Acked-by: Masahiro Yamada <yamada.masahiro@...ionext.com>
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists