On a recent Gentoo Linux installation, invoking `make kernel_menuconfig` in the build system fails, whereas `make menuconfig` in the kernel tree alone works as expected.
This is happening because STAGING_PREFIX is not defined when kernel's menuconfig target calls pkg-config from the toolchain/host and thus pkg-config returns an empty value, and the fallback values in the kernel config script are applied but those are off and the linking fails. Solution is to use system's pkg-config for kernel_menuconfig target in order to provide proper compiler/linker flags. Ref: FS#2423 Cc: Thomas Albers <thomas.game...@gmail.com> Signed-off-by: Petr Štetiar <yn...@true.cz> --- changes in v2: * fixed kernel_nconfig path Makefile | 1 + include/toplevel.mk | 8 +++++++- scripts/config/Makefile | 2 -- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index ab97eacc9d2b..65ee10a84b8d 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ $(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the OpenWrt dir world: +DISTRO_PKG_CONFIG:=$(shell which -a pkg-config | grep -E '\/usr' | head -n 1) export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH) ifneq ($(OPENWRT_BUILD),1) diff --git a/include/toplevel.mk b/include/toplevel.mk index 133da9d830b5..12586e87c09a 100644 --- a/include/toplevel.mk +++ b/include/toplevel.mk @@ -105,7 +105,9 @@ scripts/config/mconf: $(eval $(call rdep,scripts/config,scripts/config/mconf)) scripts/config/qconf: - @$(_SINGLE)$(SUBMAKE) -s -C scripts/config qconf CC="$(HOSTCC_WRAPPER)" + @$(_SINGLE)$(SUBMAKE) -s -C scripts/config qconf \ + CC="$(HOSTCC_WRAPPER)" \ + DISTRO-PKG-CONFIG="$(DISTRO_PKG_CONFIG)" scripts/config/conf: @$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)" @@ -157,6 +159,10 @@ endif kernel_oldconfig: prepare_kernel_conf $(_SINGLE)$(NO_TRACE_MAKE) -C target/linux oldconfig +ifneq ($(DISTRO_PKG_CONFIG),) +kernel_menuconfig: export PATH:=$(dir $(DISTRO_PKG_CONFIG)):$(PATH) +kernel_nconfig: export PATH:=$(dir $(DISTRO_PKG_CONFIG)):$(PATH) +endif kernel_menuconfig: prepare_kernel_conf $(_SINGLE)$(NO_TRACE_MAKE) -C target/linux menuconfig diff --git a/scripts/config/Makefile b/scripts/config/Makefile index 8bb62d233c86..8b78d5a68247 100644 --- a/scripts/config/Makefile +++ b/scripts/config/Makefile @@ -20,8 +20,6 @@ check_lxdialog = $(shell $(SHELL) $(CURDIR)/lxdialog/check-lxdialog.sh -$(1)) export CFLAGS += -DKBUILD_NO_NLS -I. $(call check_lxdialog,ccflags) export CXXFLAGS += -DKBUILD_NO_NLS -DISTRO-PKG-CONFIG := $(shell which -a pkg-config | grep -E '\/usr' | head -n 1) - conf-objs := conf.o zconf.tab.o mconf-objs := mconf.o zconf.tab.o qconf-cxxobjs := qconf.o _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel