From 25cec5ea733251eb27745adb489f268e7e4d5a76 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Sat, 1 Jan 2022 22:40:34 +0100 Subject: [PATCH] Makefile: disable 'printvars' and 'show-vars' recipes for Make 4.3 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 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- 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, \