linux: use host pkg-config when host libelf is set
authorStuart Summers <stuart.summers@intel.com>
Mon, 8 Apr 2019 18:42:33 +0000 (11:42 -0700)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Sat, 13 Apr 2019 15:07:10 +0000 (17:07 +0200)
A patch was added to the Linux kernel in 5.1.0-rc3 which adds a
requirement that the host build environment include pkg-config. Add the
correct host-pkgconf dependency and environment variables to ensure
Linux picks up the correct libraries.

Move the existing LINUX_MAKE_ENV assignment earlier, to simplify the
append-assignment in the libelf conditional block.

Fixes: #11761
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Stuart Summers <stuart.summers@intel.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Arnout: extend commit message as suggested by Yann]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
linux/linux.mk
package/pkg-kconfig.mk

index c7081db88fb4278239da86f895fc3aab8fcc9222..304fce21d09ca89d87cdc300d3726c8d9c518b08 100644 (file)
@@ -59,6 +59,10 @@ BR_NO_CHECK_HASH_FOR += $(notdir $(LINUX_PATCHES))
 # be directories in the patch list (unlike for other packages).
 LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
 
+LINUX_MAKE_ENV = \
+       $(TARGET_MAKE_ENV) \
+       BR_BINARIES_DIR=$(BINARIES_DIR)
+
 LINUX_INSTALL_IMAGES = YES
 LINUX_DEPENDENCIES = host-kmod
 
@@ -95,7 +99,13 @@ LINUX_DEPENDENCIES += host-openssl
 endif
 
 ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y)
-LINUX_DEPENDENCIES += host-elfutils
+LINUX_DEPENDENCIES += host-elfutils host-pkgconf
+LINUX_MAKE_ENV += \
+       PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
+       PKG_CONFIG_SYSROOT_DIR="/" \
+       PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
+       PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
+       PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/share/pkgconfig"
 endif
 
 # If host-uboot-tools is selected by the user, assume it is needed to
@@ -119,10 +129,6 @@ LINUX_MAKE_FLAGS = \
        CROSS_COMPILE="$(TARGET_CROSS)" \
        DEPMOD=$(HOST_DIR)/sbin/depmod
 
-LINUX_MAKE_ENV = \
-       $(TARGET_MAKE_ENV) \
-       BR_BINARIES_DIR=$(BINARIES_DIR)
-
 ifeq ($(BR2_REPRODUCIBLE),y)
 LINUX_MAKE_ENV += \
        KBUILD_BUILD_VERSION=1 \
index ce11e1482468ac800c09785028815cf98bda3419..60aae387ca03ff80de1d90f6b1a699ca94524b9a 100644 (file)
@@ -179,7 +179,9 @@ endif
 # nconfig, gconfig, xconfig).
 # So we simply remove our PATH and PKG_CONFIG_* variables.
 $(2)_CONFIGURATOR_MAKE_ENV = \
-       $$(filter-out PATH=% PKG_CONFIG=% PKG_CONFIG_SYSROOT_DIR=% PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) \
+       $$(filter-out PATH=% PKG_CONFIG=% PKG_CONFIG_SYSROOT_DIR=% \
+          PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=% PKG_CONFIG_ALLOW_SYSTEM_LIBS=% \
+          PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) \
        PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)"
 
 # Configuration editors (menuconfig, ...)