On Fri, Apr 8, 2022 at 5:46 PM Yann Droneaud <ydroneaud@xxxxxxxxxx> wrote: > > When developing new code/feature, CONFIG_WERROR is most > often turned off, especially for people using make W=12 to > get more warnings. > > In such case, turning on -Werror temporarily would require > switching on CONFIG_WERROR in the configuration, building, > then switching off CONFIG_WERROR. > > For this use case, this patch introduces a new 'e' modifier > to W= as a short hand for KCFLAGS+=-Werror" so that -Werror > got added to the kernel (built-in) and modules' CFLAGS. > > Signed-off-by: Yann Droneaud <ydroneaud@xxxxxxxxxx> > --- Applied to linux-kbuild. Thanks. > Makefile | 1 + > scripts/Makefile.extrawarn | 13 +++++++++++-- > 2 files changed, 12 insertions(+), 2 deletions(-) > > Changes since v0[0]: > > - rebase on top of commit 64a91907c896 ("kbuild: refactor scripts/Makefile.extrawarn") > - document use case after commit 3fe617ccafd6 ("Enable '-Werror' by default for all kernel builds") > > [0] https://lore.kernel.org/all/1422803720-14723-1-git-send-email-ydroneaud@xxxxxxxxxx/ > > diff --git a/Makefile b/Makefile > index 8c7de9a72ea2..6dc621af18d1 100644 > --- a/Makefile > +++ b/Makefile > @@ -1649,6 +1649,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 ' e: warnings are being treated as errors' > @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 [*] ' > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > index 650d0b8ceec3..f5f0d6f09053 100644 > --- a/scripts/Makefile.extrawarn > +++ b/scripts/Makefile.extrawarn > @@ -2,8 +2,8 @@ > # ========================================================================== > # make W=... settings > # > -# There are three warning groups enabled by W=1, W=2, W=3. > -# They are independent, and can be combined like W=12 or W=123. > +# There are four warning groups enabled by W=1, W=2, W=3, and W=e > +# They are independent, and can be combined like W=12 or W=123e. > # ========================================================================== > > KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned) > @@ -94,3 +94,12 @@ KBUILD_CFLAGS += $(call cc-option, -Wpacked-bitfield-compat) > KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN3 > > endif > + > +# > +# W=e - error out on warnings > +# > +ifneq ($(findstring e, $(KBUILD_EXTRA_WARN)),) > + > +KBUILD_CFLAGS += -Werror > + > +endif > -- > 2.32.0 > -- Best Regards Masahiro Yamada