Re: [PATCH] kbuild: Allow to combine multiple W= levels

Michal Marek
2011-05-02T15:38:15Z

On Fri, Apr 29, 2011 at 03:31:33PM +0200, Michal Marek wrote:
> 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>
> ---
> scripts/Makefile.build | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 9c0c481..28cef2a 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
> @@ -85,9 +87,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

Pushed to kbuild-2.6.git#kbuild with the following make help update:

diff --git a/Makefile b/Makefile
index 4527dc2..d342502 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'

Michal