build: fix exporting for make 3.82

GNU make 3.82 apparently has a quirk where exporting an undefined
variable prevents its value from subsequently being updated. This
situation can arise due to our adding of -rR to MAKEFLAGS, which takes
effect also on make simply re-invoking itself. Once these flags are in
effect, CC (in particular) is empty (undefined), and would be defined
only via Config.mk including StdGNU.mk or alike. With the quirk, CC
remains empty, yet with an empty CC the compiler minimum version check
fails, breaking the build.

Move the exporting of the various tool stack component variables past
where they gain their (final) values.

See also be63d9d47f ("build: tweak variable exporting for make 3.82").

Fixes: 15a0578ca4 ("build: shuffle main Makefile")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
This commit is contained in:
Jan Beulich committed 2022-06-15 10:23:16 +02:00
1 parent e8e6e42279
commit 95b0d7bbdd
1 file changed
+1 -2
+1 -2
View File
@@ -44,8 +44,6 @@ export ARCH SRCARCH
# Allow someone to change their config file
export KCONFIG_CONFIG ?= .config
export CC CXX LD NM OBJCOPY OBJDUMP ADDR2LINE
export TARGET := xen
.PHONY: dist
@@ -244,6 +242,7 @@ export TARGET_ARCH := $(shell echo $(XEN_TARGET_ARCH) | \
-e s'/riscv.*/riscv/g')
export CONFIG_SHELL := $(SHELL)
export CC CXX LD NM OBJCOPY OBJDUMP ADDR2LINE
export YACC = $(if $(BISON),$(BISON),bison)
export LEX = $(if $(FLEX),$(FLEX),flex)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.