All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Marek <mmarek@suse.cz>
To: Borislav Petkov <bp@alien8.de>
Cc: Sam Ravnborg <sam@ravnborg.org>,
	linux-kbuild <linux-kbuild@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Dave Jones <davej@redhat.com>
Subject: Re: [PATCH v3.1] kbuild: implement several W= levels
Date: Tue, 26 Apr 2011 21:52:35 +0200	[thread overview]
Message-ID: <4DB72283.5000108@suse.cz> (raw)
In-Reply-To: <1303494642-18594-1-git-send-email-bp@alien8.de>

On 22.4.2011 19:50, Borislav Petkov wrote:
> From: Sam Ravnborg <sam@ravnborg.org>
> 
> Building a kernel with "make W=1" produce far too much noise
> to be usefull.
> 
> Divide the warning options in three groups:
> 
>     W=1 - warnings that may be relevant and does not occur too often
>     W=2 - warnings that occur quite often but may still be relevant
>     W=3 - the more obscure warnings, can most likely be ignored
> 
> When building init/ on my box the levels produces:
> 
> W=1 - 46 warnings
> W=2 - 863 warnings
> W=3 - 6496 warnings

I guess these numbers are not valid after your changes? Not that the
exact numbers are important, but maybe the distribution change?
Otherwise the patch looks good, thanks a lot to both of you!

Michal
> 
> Many warnings occur from .h files so fixing one file may have a nice
> effect on the total number of warnings.
> 
> With these changes I am actually tempted to try W=1 now and then.
> Previously there were just too much noise.
> 
> Borislav:
> 
> - make the W= levels exclusive
> - move very noisy and making little sense for the kernel warnings to W=3
> - drop -Woverlength-strings due to useless warning message
> - copy explanatory text for the different warning levels to 'make help'
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: Borislav Petkov <bp@alien8.de>
> Cc: Dave Jones <davej@redhat.com>
> ---
>  Makefile               |    8 ++++-
>  scripts/Makefile.build |   65 ++++++++++++++++++++++++++++--------------------
>  2 files changed, 44 insertions(+), 29 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index b967b96..17ce5d5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -103,7 +103,7 @@ ifeq ("$(origin O)", "command line")
>  endif
>  
>  ifeq ("$(origin W)", "command line")
> -  export KBUILD_ENABLE_EXTRA_GCC_CHECKS := 1
> +  export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
>  endif
>  
>  # That's our default target when none is given on the command line
> @@ -1267,7 +1267,11 @@ help:
>  	@echo  '  make O=dir [targets] Locate all output files in "dir", including .config'
>  	@echo  '  make C=1   [targets] Check all c source with $$CHECK (sparse by default)'
>  	@echo  '  make C=2   [targets] Force check of all c source with $$CHECK'
> -	@echo  '  make W=1   [targets] Enable extra gcc checks'
> +	@echo  '  make W=n   [targets] Enable extra gcc checks, n=1,2,3 where'
> +	@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  ''
>  	@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 d5f925a..ffb383c 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -51,36 +51,47 @@ ifeq ($(KBUILD_NOPEDANTIC),)
>  endif
>  
>  #
> -# make W=1 settings
> +# make W=... settings
>  #
> -# $(call cc-option... ) handles gcc -W.. options which
> +# W=1 - warnings that may be relevant and does not occur too often
> +# W=2 - warnings that occur quite often but may still be relevant
> +# W=3 - the more obscure warnings, can most likely be ignored
> +#
> +# $(call cc-option, -W...) handles gcc -W.. options which
>  # are not supported by all versions of the compiler
>  ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS
> -KBUILD_EXTRA_WARNINGS := -Wextra
> -KBUILD_EXTRA_WARNINGS += -Wunused -Wno-unused-parameter
> -KBUILD_EXTRA_WARNINGS += -Waggregate-return
> -KBUILD_EXTRA_WARNINGS += -Wbad-function-cast
> -KBUILD_EXTRA_WARNINGS += -Wcast-qual
> -KBUILD_EXTRA_WARNINGS += -Wcast-align
> -KBUILD_EXTRA_WARNINGS += -Wconversion
> -KBUILD_EXTRA_WARNINGS += -Wdisabled-optimization
> -KBUILD_EXTRA_WARNINGS += -Wlogical-op
> -KBUILD_EXTRA_WARNINGS += -Wmissing-declarations
> -KBUILD_EXTRA_WARNINGS += -Wmissing-format-attribute
> -KBUILD_EXTRA_WARNINGS += $(call cc-option, -Wmissing-include-dirs,)
> -KBUILD_EXTRA_WARNINGS += -Wmissing-prototypes
> -KBUILD_EXTRA_WARNINGS += -Wnested-externs
> -KBUILD_EXTRA_WARNINGS += -Wold-style-definition
> -KBUILD_EXTRA_WARNINGS += $(call cc-option, -Woverlength-strings,)
> -KBUILD_EXTRA_WARNINGS += -Wpacked
> -KBUILD_EXTRA_WARNINGS += -Wpacked-bitfield-compat
> -KBUILD_EXTRA_WARNINGS += -Wpadded
> -KBUILD_EXTRA_WARNINGS += -Wpointer-arith
> -KBUILD_EXTRA_WARNINGS += -Wredundant-decls
> -KBUILD_EXTRA_WARNINGS += -Wshadow
> -KBUILD_EXTRA_WARNINGS += -Wswitch-default
> -KBUILD_EXTRA_WARNINGS += $(call cc-option, -Wvla,)
> -KBUILD_CFLAGS += $(KBUILD_EXTRA_WARNINGS)
> +warning-1 := -Wextra -Wunused -Wno-unused-parameter
> +warning-1 += -Wmissing-declarations
> +warning-1 += -Wmissing-format-attribute
> +warning-1 += -Wmissing-prototypes
> +warning-1 += -Wold-style-definition
> +warning-1 += $(call cc-option, -Wmissing-include-dirs)
> +
> +warning-2 := -Waggregate-return
> +warning-2 += -Wcast-align
> +warning-2 += -Wdisabled-optimization
> +warning-2 += -Wnested-externs
> +warning-2 += -Wshadow
> +warning-2 += $(call cc-option, -Wlogical-op)
> +
> +warning-3 := -Wbad-function-cast
> +warning-3 += -Wcast-qual
> +warning-3 += -Wconversion
> +warning-3 += -Wpacked
> +warning-3 += -Wpadded
> +warning-3 += -Wpointer-arith
> +warning-3 += -Wredundant-decls
> +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))
> +
> +ifeq ("$(warning)","")
> +        $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown)
> +endif
> +
> +KBUILD_CFLAGS += $(warning)
>  endif
>  
>  include scripts/Makefile.lib


  reply	other threads:[~2011-04-26 19:52 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-21 21:39 [RFC PATCH] kbuild: implement several W= levels Sam Ravnborg
2011-04-21 21:58 ` Joe Perches
2011-04-21 22:56   ` Stratos Psomadakis
2011-04-21 22:06 ` Stratos Psomadakis
2011-04-22  1:28   ` Sam Ravnborg
2011-04-22  7:38 ` [RFC PATCH v2] " Sam Ravnborg
2011-04-22  7:38   ` Sam Ravnborg
2011-04-22  8:19 ` [RFC PATCH] " Borislav Petkov
2011-04-22 10:15   ` Sam Ravnborg
2011-04-22 10:20     ` Borislav Petkov
2011-04-22 10:46       ` [PATCH v3] " Borislav Petkov
2011-04-22 11:09         ` Sam Ravnborg
2011-04-22 17:50           ` [PATCH v3.1] " Borislav Petkov
2011-04-26 19:52             ` Michal Marek [this message]
2011-04-26 20:43               ` Borislav Petkov
2011-04-27  8:22                 ` Sam Ravnborg
2011-04-27  8:25             ` Sam Ravnborg
2011-04-27 11:35               ` Borislav Petkov
2011-04-27 20:15                 ` [PATCH v3.2] " Borislav Petkov
2011-04-27 20:21                   ` Joe Perches
2011-04-27 20:46                     ` Sam Ravnborg
2011-04-27 20:46                       ` Sam Ravnborg
2011-04-27 20:46                   ` Sam Ravnborg
2011-04-27 20:46                     ` Sam Ravnborg
2011-04-28 16:18                   ` Michal Marek
2011-04-28  0:25                 ` [PATCH v3.1] " Valdis.Kletnieks
2011-04-28 16:24                   ` Michal Marek
2011-04-28 17:59                     ` Valdis.Kletnieks
2011-04-29 13:31                       ` [PATCH] kbuild: Allow to combine multiple " Michal Marek
2011-04-29 17:43                         ` Sam Ravnborg
2011-04-29 18:13                         ` Arnaud Lacombe
2011-04-29 18:27                           ` Valdis.Kletnieks
2011-04-29 18:29                         ` Valdis.Kletnieks
2011-05-02 15:38                         ` Michal Marek
2011-05-02 15:53                           ` Arnaud Lacombe
2011-05-02 16:05                             ` Michal Marek
2011-05-02 16:17                               ` Arnaud Lacombe
2011-05-02 16:16                         ` Américo Wang
2011-05-02 17:07                           ` Sam Ravnborg
2011-05-02 17:34                             ` Arnaud Lacombe
2011-05-02 18:03                               ` boris
2011-05-02 18:45                                 ` Arnaud Lacombe
2011-05-02 18:51                                   ` boris
2011-05-02 20:35                                   ` Michal Marek
2011-04-27  8:27         ` [PATCH v3] kbuild: implement several " Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DB72283.5000108@suse.cz \
    --to=mmarek@suse.cz \
    --cc=bp@alien8.de \
    --cc=davej@redhat.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.