Keep HOSTCFLAG and HOSTLDFLAGS consistent when Making Linux Kernel
PATCH 1/1 Keep HOSTCFLAG and HOSTLDFLAGS consistent when Making Linux Kernel
From: "Jianming.qiao" <[email protected]>
A build error is spotted when adding -m32 in Linux kernel Makefile for
both host compiler flag and Host linker flag for compiling linux kernel in 64bit Host. When building with buildroot, an error shows the host linker can't link the .o file generated by host compiler because -m32 host Linker flag doesn't append to the host linker, thereby trying to link 32 bit object files in 64bit mode(without adding -m32 in host linker flag).
Therefore,both host compiler flag and host linker flag should both appear in the LINUX_MAKE_FLAGS.
--- linux/linux.mk | 1 + 1 file changed, 1 insertion(+)
linux/linux.mk +1 -0
@@ -97,6 +97,7 @@ endif LINUX_MAKE_FLAGS = \ HOSTCC="$(HOSTCC)" \ HOSTCFLAGS="$(HOSTCFLAGS)" \ + HOSTLDFLAGS="$(HOST_LDFLAGS)" \ ARCH=$(KERNEL_ARCH) \ INSTALL_MOD_PATH=$(TARGET_DIR) \ CROSS_COMPILE="$(TARGET_CROSS)" \
Signature · 1 line
1.9.1
PATCH 1/1 Keep HOSTCFLAG and HOSTLDFLAGS consistent when Making Linux Kernel
Hello,
Quoted 4 lines · Jianming.qiao
From: "Jianming.qiao" <[email protected]>
A build error is spotted when adding -m32 in Linux kernel
Makefilefor both host compiler flag and Host linker flag for compiling linux kernel in 64bit Host.
Where are you adding this -m32 option ?
Quoted 3 lines
When building with buildroot, an error shows the host linker can't link the .o file generated by host compiler because -m32 host Linker flag doesn't append to the host linker, thereby trying to link 32 bit object files in 64bit mode(without adding -m32 in host linker flag).
Could you give more details on how to reproduce the issue you're seeing ?
Quoted 12 lines
Therefore,both host compiler flag and host linker flag should both appear in the
LINUX_MAKE_FLAGS.Signed-off-by Jianming.qiao <[email protected]>--- linux/linux.mk | 1 + 1 file changed, 1 insertion(+)linux/linux.mk +0
-0
linux/linux.mk endif · line 99
Quoted 3 lines
linux/linux.mk +0
-0@@ -97,6 +97,7 @@ endif LINUX_MAKE_FLAGS = \ HOSTCC="$(HOSTCC)" \ HOSTCFLAGS="$(HOSTCFLAGS)" \
Unrelated to your patch, but this $(HOSTCFLAGS) thing is messy. We actually have:
- HOSTCFLAGS, defined in the main Makefile to the value of $(CFLAGS_FOR_BUILD), which is empty. HOSTCFLAGS is then exported. It was done this way a long time ago in commit c0d7d4e0355b49b489d7235e945481cf5d32087f (from 2007) for kconfig. I'm not sure we still need this.
- HOST_CFLAGS, defined in package/Makefile.in, which actually contains some useful flags. It is most likely the one we should pass as HOSTCFLAGS in LINUX_MAKE_FLAGS.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/1 Keep HOSTCFLAG and HOSTLDFLAGS consistent when Making Linux Kernel
Quoted 9 lines · Thomas Petazzoni
Unrelated to your patch, but this $(HOSTCFLAGS) thing is messy. We actually have:
- HOSTCFLAGS, defined in the main
Makefileto the value of $(CFLAGS_FOR_BUILD), which is empty. HOSTCFLAGS is then exported. It was done this way a long time ago in commitc0d7d4e0355b49b489d7235e945481cf5d32087f(from 2007) for kconfig. I'm not sure we still need this.
Quoted 3 lines
-
HOST_CFLAGS, defined in package/Makefile.in, which actually contains some useful flags. It is most likely the one we should pass as HOSTCFLAGS inLINUX_MAKE_FLAGS.
In addition, I see no reason why we would *override* the kernel's HOSTCFLAGS.
So I think the proper fix is to do HOST_EXTRACFLAGS=$(HOST_CFLAGS) instead.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF