Re: + kbuild-disable-wformat-truncation-warnings-by-default.patch added to -mm tree

Arnd Bergmann
2017-07-20T07:24:22Z

On Wed, Jul 19, 2017 at 11:50 PM, <akpm@linux-foundation.org> wrote:
> ------------------------------------------------------
> From: Arnd Bergmann <arnd@arndb.de>
> Subject: kbuild: disable -Wformat-truncation warnings by default
>
> With x86 allmodconfig, we currently get 233 -Wformat-truncation warnings,
> which makes the entire warnings rather useless.
>
> This turns off the warning by default, unless we specify W=1 or higher
>
> Link: http://lkml.kernel.org/r/20170714120720.906842-2-arnd@arndb.de
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> scripts/Makefile.extrawarn | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff -puN scripts/Makefile.extrawarn~kbuild-disable-wformat-truncation-warnings-by-default scripts/Makefile.extrawarn
> --- a/scripts/Makefile.extrawarn~kbuild-disable-wformat-truncation-warnings-by-default
> +++ a/scripts/Makefile.extrawarn
> @@ -67,5 +67,8 @@ KBUILD_CFLAGS += $(call cc-disable-warni
> KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare)
> KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length)
> KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized)
> +else
> +# noisy gcc-7 warnings
> +KBUILD_CFLAGS += $(call cc-option,-Wformat-truncation=0)
> endif
> endif

Hi Andrew, Linus, Greg,

I noticed that Linus has made a similar patch in 4.13-rc1, commit bd664f6b3e37
("disable new gcc-7.1.1 warnings for now"), and it completely disables three
warnings (format-truncation, format-overflow and int-in-bool-context).

Obviously there is no point in having both, so let's talk about what we
want for 4.13, stable-backports and for future kernels, I'll then send those
patches. Here is my first suggestion:

- enable all three warnings with "make W=1" in 4.13, but leave them
disabled by default.
- backport Linus' patch, plus the follow-up for W=1 to stable kernels,
to allow stable kernels to build cleanly
- backport the patches that address any other gcc-7 warnings, as
well as those that are not obvious false-positives to stable kernels
- In 4.14+, use my version above and address all int-in-bool-context
and format-overflow warnings, but only use -Wformat-truncation
with make W=1.

Any other suggestions?

Arnd