[Buildroot] [PATCH 1/1] linux: use host pkg-config when host libelf is set
Stuart Summers
stuart.summers at intel.com
Mon Apr 8 18:42:33 UTC 2019
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.
v2: Use LINUX_MAKE_ENV to pass PKG_CONFIG_* options (Thomas)
v3: Add PKG_CONFIG_ALLOW_SYSTEM_{CFLAGS,LIBS} to kconfig
blacklist and move LINUX_MAKE_ENV initial assign in
linux.mk before DEP* assignments (Yann)
Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998 at free.fr>
Suggested-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Signed-off-by: Stuart Summers <stuart.summers at intel.com>
---
linux/linux.mk | 16 +++++++++++-----
package/pkg-kconfig.mk | 4 +++-
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index 6bf2b88038..d209a5cf59 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -61,6 +61,10 @@ LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
# 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
@@ -97,7 +101,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
@@ -121,10 +131,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 \
diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
index d6c95b897e..e53cc9002e 100644
--- a/package/pkg-kconfig.mk
+++ b/package/pkg-kconfig.mk
@@ -175,7 +175,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, ...)
--
2.20.1
More information about the buildroot
mailing list