aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2019-09-20 14:54:56 +0200
committerPetr Štetiar <ynezz@true.cz>2019-10-09 21:07:13 +0200
commitf2c321fc078e5e210aac97216f26c8c97cd7b93d (patch)
tree036018f5dbada7f8369b776de99119d9814d9836
parent5e9aae9ef069912edea21f807be5512249971127 (diff)
downloadupstream-f2c321fc078e5e210aac97216f26c8c97cd7b93d.tar.gz
upstream-f2c321fc078e5e210aac97216f26c8c97cd7b93d.tar.bz2
upstream-f2c321fc078e5e210aac97216f26c8c97cd7b93d.zip
build: fix host menu config targets using ncurses
On a recent Gentoo Linux installation, invoking `make menuconfig`, `make kernel_menuconfig` or `make kernel_nconfig` in the build system fails, whereas for example `make menuconfig` in the kernel tree alone works as expected. This is happening because STAGING_PREFIX is not defined when kernel's {menu,n}config 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 all ncurses based menu config targets in order to provide proper compiler/linker flags. Ref: FS#2423 Cc: Thomas Albers <thomas.gameiro@gmail.com> Tested-by: Stijn Tintel <stijn@linux-ipv6.be> Tested-by: Eneas U de Queiroz <cotequeiroz@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 965f341aa9fdb6e07d509d02a6ca188af050292a)
-rw-r--r--Makefile1
-rw-r--r--include/toplevel.mk11
-rw-r--r--scripts/config/Makefile2
3 files changed, 11 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index ab97eacc9d..65ee10a84b 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 36f790f807..e744447b2f 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -99,13 +99,18 @@ prepare-tmpinfo: FORCE
$(_SINGLE)$(NO_TRACE_MAKE) menuconfig $(PREP_MK); \
fi
+ifneq ($(DISTRO_PKG_CONFIG),)
+scripts/config/mconf: export PATH:=$(dir $(DISTRO_PKG_CONFIG)):$(PATH)
+endif
scripts/config/mconf:
@$(_SINGLE)$(SUBMAKE) -s -C scripts/config all CC="$(HOSTCC_WRAPPER)"
$(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 +162,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 8bb62d233c..8b78d5a682 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