summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Marek <mmarek@suse.cz>2011-04-29 14:45:31 +0200
committerMichal Marek <mmarek@suse.cz>2011-05-02 17:37:10 +0200
commita6de553da01c2c110c647fbd1c5bad29f5a82487 (patch)
tree7c24cf487f05cd7c20fe2f825c37999f11b30efc
parentkbuild: Disable -Wunused-but-set-variable for gcc 4.6.0 (diff)
downloadlinux-a6de553da01c2c110c647fbd1c5bad29f5a82487.tar.xz
linux-a6de553da01c2c110c647fbd1c5bad29f5a82487.zip
kbuild: Allow to combine multiple W= levels
Add support for make W=12, make W=123 and so on, to enable warnings from multiple W= levels. Normally, make W=<level> does not include warnings from the previous level. Signed-off-by: Michal Marek <mmarek@suse.cz> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-By: Valdis Kletnieks <valdis.kletnieks@vt.edu>
-rw-r--r--Makefile2
-rw-r--r--scripts/Makefile.build8
2 files changed, 7 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 4527dc23a724..d34250266f47 100644
--- a/Makefile
+++ b/Makefile
@@ -1290,7 +1290,7 @@ help:
@echo ' 1: warnings which may be relevant and do not occur too often'
@echo ' 2: warnings which occur quite often but may still be relevant'
@echo ' 3: more obscure warnings, can most likely be ignored'
-
+ @echo ' Multiple levels can be combined with W=12 or W=123'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 9fb19c0fbf8c..f133641f815a 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -60,6 +60,8 @@ endif
# $(call cc-option, -W...) handles gcc -W.. options which
# are not supported by all versions of the compiler
ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS
+warning- := $(empty)
+
warning-1 := -Wextra -Wunused -Wno-unused-parameter
warning-1 += -Wmissing-declarations
warning-1 += -Wmissing-format-attribute
@@ -86,9 +88,11 @@ warning-3 += -Wswitch-default
warning-3 += $(call cc-option, -Wpacked-bitfield-compat)
warning-3 += $(call cc-option, -Wvla)
-warning := $(warning-$(KBUILD_ENABLE_EXTRA_GCC_CHECKS))
+warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
+warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
+warning += $(warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
-ifeq ("$(warning)","")
+ifeq ("$(strip $(warning))","")
$(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown)
endif