linux: fix passing of host CFLAGS and LDFLAGS
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 4 Mar 2018 21:31:17 +0000 (22:31 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 6 Mar 2018 14:25:08 +0000 (15:25 +0100)
We were passing HOSTCFLAGS="$(HOSTCFLAGS)" to Linux. However:

 - HOSTCFLAGS in Buildroot doesn't exist, and is empty, so this
   assignment never did anything. The name of the variable in
   Buildroot in HOST_CFLAGS.

 - HOSTCFLAGS in Linux isn't used everywhere, and passing it overrides
   the default HOSTCFLAGS value defined in the main Linux kernel
   Makefile.

In addition, there is no way to pass additional host LDFLAGS in the
Linux kernel build system.

Therefore, we simply shoehorn our HOST_CFLAGS and HOST_LDFLAGS while
passing HOSTCC to the Linux kernel build system. This has been tested
to work fine with host OpenSSL and host libelf only available in
$(HOST_DIR).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Tested-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
linux/linux.mk

index ab940e730501491853fbc050f363f65e295774c8..3b695246639ca1cdbe8e13838345610ac5c2fa66 100644 (file)
@@ -95,8 +95,7 @@ LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL)
 endif
 
 LINUX_MAKE_FLAGS = \
-       HOSTCC="$(HOSTCC)" \
-       HOSTCFLAGS="$(HOSTCFLAGS)" \
+       HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \
        ARCH=$(KERNEL_ARCH) \
        INSTALL_MOD_PATH=$(TARGET_DIR) \
        CROSS_COMPILE="$(TARGET_CROSS)" \