Re: [PATCH -v4] kbuild: Add extra gcc checks

From: Sam Ravnborg
Date: Mon Feb 28 2011 - 13:38:49 EST


On Mon, Feb 21, 2011 at 12:03:22PM +0100, Borislav Petkov wrote:
>
> Add a 'W=1' Makefile switch which adds additional checking per build
> object.
>
> The idea behind this option is targeted at developers who, in the
> process of writing their code, want to do the occasional
>
> make W=1 [target.o]
>
> and let gcc do more extensive code checking for them. Then, they
> could eyeball the output for valid gcc warnings about various
> bugs/discrepancies which are not reported during the normal build
> process.
>
> For more background information and a use case, read through this
> thread: http://marc.info/?l=kernel-janitors&m=129802065918147&w=2
>
> -v4: Enable this for gcc only. Also, check for options which are not
> supported by every gcc version we use to build the kernel. Adding those
> checks for _every_ option slows down the build noticeably so be sensible
> here and add it only when your gcc version chokes on a particular
> option.
>
> -v[2..3]: move to Makefile.build
>
> Cc: Michal Marek <mmarek@xxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: linux-kbuild@xxxxxxxxxxxxxxx
> Acked-by: Ingo Molnar <mingo@xxxxxxx>
> Signed-off-by: Borislav Petkov <bp@xxxxxxxxx>
> ---
> Makefile | 6 ++++++
> scripts/Makefile.build | 37 ++++++++++++++++++++++++++++++++++++-
> 2 files changed, 42 insertions(+), 1 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index c9c8c8f..c3bca9c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -102,6 +102,11 @@ ifeq ("$(origin O)", "command line")
> KBUILD_OUTPUT := $(O)
> endif
>
> +ifeq ("$(origin W)", "command line")
> + KBUILD_ENABLE_EXTRA_GCC_CHECKS = 1
> + export KBUILD_ENABLE_EXTRA_GCC_CHECKS
> +endif

It is simpler to just write:
export KBUILD_ENABLE_EXTRA_GCC_CHECKS := 1


> +#
> +# make W=1 settings
> +#
> +# $(call cc-option... ) handles gcc -W.. options which
> +# are not supported by all versions of the compiler
> +ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS

> +ifneq ($(call cc-version),)
This check looks redundant.

You introduce a new environment variable "KBUILD_ENABLE_EXTRA_GCC_CHECKS".
We actually ty to document these in Documentation/kbuild/kbuild.txt

Fix the above and you can add my:
Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/