[Buildroot] [git commit] Makefile: disable 'printvars' and 'show-vars' recipes for Make 4.3
Arnout Vandecappelle (Essensium/Mind)
arnout at mind.be
Tue Jan 4 16:53:00 UTC 2022
commit: https://git.buildroot.net/buildroot/commit/?id=25cec5ea733251eb27745adb489f268e7e4d5a76
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master
Make 4.3 is buggy and leads to a "Segmentation fault (core dumped)" when
calling 'make printvars' or 'make show-vars', so let's refuse to execute
those recipes if Make 4.3 by adding 'check-make-version' recipe as
depedendency of 'printvars' and 'show-vars' as suggested by Yann E. Morin.
Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
Makefile | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 0b8c7b2867..ac98b84425 100644
--- a/Makefile
+++ b/Makefile
@@ -1058,13 +1058,20 @@ ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
endif
+.PHONY: check-make-version
+check-make-version:
+ifneq ($(filter $(RUNNING_MAKE_VERSION),4.3),)
+ @echo "Make 4.3 doesn't support 'printvars' and 'show-vars' recipes"
+ @exit 1
+endif
+
# printvars prints all the variables currently defined in our
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are
# displayed.
# show-vars does the same, but as a JSON dictionnary.
.PHONY: printvars
-printvars:
+printvars: check-make-version
@:
$(foreach V, \
$(sort $(filter $(VARS),$(.VARIABLES))), \
@@ -1077,7 +1084,7 @@ printvars:
.PHONY: show-vars
show-vars: VARS?=%
-show-vars:
+show-vars: check-make-version
@:
$(info $(call clean-json, { \
$(foreach V, \
More information about the buildroot
mailing list