lkml.org 
[lkml]   [2011]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] kbuild: Allow to combine multiple W= levels
    From
    Hi,

    On Fri, Apr 29, 2011 at 9:31 AM, Michal Marek <mmarek@suse.cz> 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)))
    >
    I do not really like that, it would mean that W=123, W=321, W=231 and
    W=132 would lead to the same result. What about a comma separated
    string, ala:

    LEVELS=1,2,3,4

    comma:= ,
    empty:=
    space:= $(empty) $(empty)

    warning-1:= a
    warning-2:= b
    warning-3:= c
    warning-4:= d

    all:
    echo $(foreach level, $(subst ${comma},${space},${LEVELS},
    ${warning}), ${warning-${level}})

    It has the advantage to scale up without adding new code.

    - Arnaud

    > -ifeq ("$(warning)","")
    > +ifeq ("$(strip $(warning))","")
    >         $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown)
    >  endif
    >
    > --
    > 1.7.4.1
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at  http://vger.kernel.org/majordomo-info.html
    >
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-04-29 20:15    [W:0.047 / U:30.156 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site