Re: [PATCH 7/7] Kbuild: lto: pass -m32/-m64 to to LDFINAL

Nicolas Pitre
2018-02-02T18:41:49Z

On Fri, 2 Feb 2018, Arnd Bergmann wrote:

> Building randconfig kernels with a biarch compiler fails with LTO
> when the final link uses a different target architecture compared
> to the earlier compilation stages.
>
> Setting -m32 or -m64 in ${LDFINAL} solves this problem, though my
> feeling is that there is a better way to do this. There might also
> be other from KBUILD_CFLAGS that we may need in LDFINAL.

On ARM I had the same problem as it requires explicit arch flags. I
therefore used this patch:

----- >8
Subject: [PATCH] LTO: scripts/gcc-ld: LTO on ARM needs arch specific gcc flags

Otherwise the final link where code generation happens produces code
for the wrong ISA when the default CPU configured into gcc is not the
one we need.

Also display the actual command when invoked with "make V=1".

Signed-off-by: Nicolas Pitre <nico@linaro.org>

diff --git a/scripts/gcc-ld b/scripts/gcc-ld
index d95dd0be38..fa53be2a34 100755
--- a/scripts/gcc-ld
+++ b/scripts/gcc-ld
@@ -27,4 +27,10 @@ while [ "$1" != "" ] ; do
shift
done

-exec $CC $ARGS
+case "${KBUILD_VERBOSE}" in
+*1*)
+ set -x
+ ;;
+esac
+
+exec $CC $KBUILD_CFLAGS $ARGS