From f962e021d48fc2cc4e9e884e3639b5046cec9c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Mon, 11 Nov 2019 21:37:45 +0100 Subject: [PATCH] kernel-build: fix kernel_menuconfig breakage by forcing YACC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 965f341aa9fd ("build: fix host menu config targets using ncurses") has moved host's path with pkg-config (usually /usr/bin) at the first place in PATH variable, which is now causing issues with bison as BISON_PKGDATADIR points into STAGING_DIR_HOST, but the actual bison used is the one under host PATH (usually /usr/bin/bison), leading to the following strange failures: $ make target/linux/clean kernel_menuconfig V=sc export MAKEFLAGS= ;make -C /somewhere/linux-4.19.81 menuconfig make -f ./scripts/Makefile.build obj=scripts/kconfig menuconfig ... bison -oscripts/kconfig/zconf.tab.c -t -l scripts/kconfig/zconf.y staging_dir/host/bin/m4: cannot open `staging_dir/host/share/bison/bison.m4': No such file or directory staging_dir/host/bin/m4: cannot open `staging_dir/host/share/bison/c-skel.m4': No such file or directory ... gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d <...snip...> -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c gcc: error: scripts/kconfig/zconf.tab.c: No such file or directory gcc: fatal error: no input files Fix this by forcing usage of bison under STAGING_DIR_HOST/bin via YACC make variable. Cc: Thomas Albers Cc: Stijn Tintel Cc: Eneas U de Queiroz Tested-by: Ivan Revyakin Tested-by: Thomas Albers Ref: https://forum.openwrt.org/t/bpi-r64-kernel-4-19-kernel-menuconfig-error Fixes: 965f341aa9fd ("build: fix host menu config targets using ncurses") Signed-off-by: Petr Štetiar --- include/kernel-build.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 3fdf7efc52..684fbd34d3 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -163,6 +163,7 @@ define BuildKernel $(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config $(_SINGLE)$(KERNEL_MAKE) \ $(if $(findstring Darwin,$(HOST_OS)),HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib -lncurses") \ + YACC=$(STAGING_DIR_HOST)/bin/bison \ $$@ $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET)