* [PATCH 0/4] Enable more warnings by default
@ 2024-04-04 15:16 Arnd Bergmann
2024-04-04 15:16 ` [PATCH 4/4] kbuild: enable -Wformat-truncation on clang Arnd Bergmann
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Arnd Bergmann @ 2024-04-04 15:16 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Nathan Chancellor, Nicolas Schier, linux-kbuild, Arnd Bergmann,
Nick Desaulniers, Bill Wendling, Justin Stitt, llvm
From: Arnd Bergmann <arnd@arndb.de>
I think these can now get merged into linux-next. I reordered
these slightly from my previous submission to skip the
-Wcast-function-type-strict warnings but instead include the
-Wformat-truncation enablement, based on what got merged so
far.
We are still missing the "kallsyms: rework symbol lookup return codes"
and "firmware: dmi-id: add a release callback function" patches, but
I expect them to get merged through the respective trees soon.
There is still an open question about the order of patches in the
coming merge window: if some of the other patches are also queued
for 6.10 rather than 6.9, this series has to come after those to
avoid regressions. Maybe they can go into some kind of 'kbuild/late'
branch that gets merged in the second half of the merge window?
Arnd
Link: https://lore.kernel.org/lkml/20240326223825.4084412-1-arnd@kernel.org/
Link: https://lore.kernel.org/lkml/20240326144741.3094687-1-arnd@kernel.org/
Arnd Bergmann (4):
kbuild: turn on -Wextra by default
kbuild: remove redundant extra warning flags
kbuild: turn on -Wrestrict by default
kbuild: enable -Wformat-truncation on clang
scripts/Makefile.extrawarn | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
--
2.39.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 4/4] kbuild: enable -Wformat-truncation on clang
2024-04-04 15:16 [PATCH 0/4] Enable more warnings by default Arnd Bergmann
@ 2024-04-04 15:16 ` Arnd Bergmann
2024-04-08 22:00 ` [PATCH 0/4] Enable more warnings by default Justin Stitt
[not found] ` <20240404151713.3493098-2-arnd@kernel.org>
2 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2024-04-04 15:16 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Nathan Chancellor, Nicolas Schier, linux-kbuild, Arnd Bergmann,
Nick Desaulniers, Bill Wendling, Justin Stitt, Jani Nikula,
Kees Cook, Gustavo A. R. Silva, linux-kernel, llvm
From: Arnd Bergmann <arnd@arndb.de>
This warning option still produces output on gcc but is now clean when
building with clang, so enable it conditionally on the compiler for now.
As far as I can tell, the remaining warnings with gcc are the result of
analysing the code more deeply across inlining, while clang only does
this within a function.
Link: https://lore.kernel.org/lkml/20240326230511.GA2796782@dev-arch.thelio-3990X/
Link: https://lore.kernel.org/linux-patches/20231002-disable-wformat-truncation-overflow-non-kprintf-v1-1-35179205c8d9@kernel.org/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
| 7 +++++++
1 file changed, 7 insertions(+)
--git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index fbe4d7144860..5063b847a658 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -99,7 +99,14 @@ KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
+ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
+else
+# Clang checks for overflow/truncation with '%p', while GCC does not:
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111219
+KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow-non-kprintf)
+KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation-non-kprintf)
+endif
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
KBUILD_CFLAGS += -Wno-override-init # alias for -Wno-initializer-overrides in clang
--
2.39.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 0/4] Enable more warnings by default
2024-04-04 15:16 [PATCH 0/4] Enable more warnings by default Arnd Bergmann
2024-04-04 15:16 ` [PATCH 4/4] kbuild: enable -Wformat-truncation on clang Arnd Bergmann
@ 2024-04-08 22:00 ` Justin Stitt
[not found] ` <20240404151713.3493098-2-arnd@kernel.org>
2 siblings, 0 replies; 5+ messages in thread
From: Justin Stitt @ 2024-04-08 22:00 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Masahiro Yamada, Nathan Chancellor, Nicolas Schier, linux-kbuild,
Arnd Bergmann, Nick Desaulniers, Bill Wendling, llvm
Hi,
On Thu, Apr 04, 2024 at 05:16:53PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> I think these can now get merged into linux-next. I reordered
> these slightly from my previous submission to skip the
> -Wcast-function-type-strict warnings but instead include the
> -Wformat-truncation enablement, based on what got merged so
> far.
>
> We are still missing the "kallsyms: rework symbol lookup return codes"
> and "firmware: dmi-id: add a release callback function" patches, but
> I expect them to get merged through the respective trees soon.
>
> There is still an open question about the order of patches in the
> coming merge window: if some of the other patches are also queued
> for 6.10 rather than 6.9, this series has to come after those to
> avoid regressions. Maybe they can go into some kind of 'kbuild/late'
> branch that gets merged in the second half of the merge window?
>
> Arnd
>
> Link: https://lore.kernel.org/lkml/20240326223825.4084412-1-arnd@kernel.org/
> Link: https://lore.kernel.org/lkml/20240326144741.3094687-1-arnd@kernel.org/
>
> Arnd Bergmann (4):
> kbuild: turn on -Wextra by default
> kbuild: remove redundant extra warning flags
> kbuild: turn on -Wrestrict by default
> kbuild: enable -Wformat-truncation on clang
>
> scripts/Makefile.extrawarn | 29 +++++++++++------------------
> 1 file changed, 11 insertions(+), 18 deletions(-)
>
> --
> 2.39.2
>
No warnings for me on Clang-18 with this series applied :)
Is there some kbuild documentation somewhere that should be
updated/created to reflect which warnings the kernel has enabled by
default?
Reviewed-by: Justin Stitt <justinstitt@google.com>
Thanks
Justin
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/4] kbuild: turn on -Wextra by default
[not found] ` <20240404151713.3493098-2-arnd@kernel.org>
@ 2024-04-09 16:25 ` Nathan Chancellor
2024-04-09 18:42 ` Arnd Bergmann
0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2024-04-09 16:25 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Masahiro Yamada, Nicolas Schier, linux-kbuild, Arnd Bergmann,
linux-kernel, llvm
On Thu, Apr 04, 2024 at 05:16:54PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The -Wextra option controls a number of different warnings that differ
> slightly by compiler version. Some are useful in general, others are
> better left at W=1 or higher. Based on earlier work, the ones that
> should be disabled by default are left for the higher warning levels
> already, and a lot of the useful ones have no remaining output when
> enabled.
>
> Move the -Wextra option up into the set of default-enabled warnings
> and just rely on the individual ones getting disabled as needed.
>
> The -Wunused warning was always grouped with this, so turn it on
> by default as well, except for the -Wunused-parameter warning that
> really has no value at all for the kernel since many interfaces
> have intentionally unused arguments.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
I have not done any LLVM builds with this change but if this is going to
be in -next for a little bit, we should be able to get any regressions
handled quickly.
I am in favor of more warnings but I am a little nervous this will make
compiler upgrades (or tracking their mainline) even more difficult. I do
not have a feeling for how often warnings are added to -Wall and -Wextra
so this may be unfounded but the kernel's -Werror use complicates this
in my opinion. I can engage with the clang folks to try and be given a
heads up when a warning is going to be added to -Wextra, it would be
good to have someone do something similar for GCC, so that those
upgrades do not cause something like this change to be rolled back.
It is easy enough to back out of this if necessary though, so:
Acked-by: Nathan Chancellor <nathan@kernel.org>
> ---
> scripts/Makefile.extrawarn | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
> index c5af566e911a..c247552c192c 100644
> --- a/scripts/Makefile.extrawarn
> +++ b/scripts/Makefile.extrawarn
> @@ -82,12 +82,14 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
> # Warn if there is an enum types mismatch
> KBUILD_CFLAGS += $(call cc-option,-Wenum-conversion)
>
> +KBUILD_CFLAGS += -Wextra
> +KBUILD_CFLAGS += -Wunused
> +
> #
> # W=1 - warnings which may be relevant and do not occur too often
> #
> ifneq ($(findstring 1, $(KBUILD_EXTRA_WARN)),)
>
> -KBUILD_CFLAGS += -Wextra -Wunused -Wno-unused-parameter
> KBUILD_CFLAGS += $(call cc-option, -Wrestrict)
> KBUILD_CFLAGS += -Wmissing-format-attribute
> KBUILD_CFLAGS += -Wold-style-definition
> @@ -190,6 +192,7 @@ else
>
> # The following turn off the warnings enabled by -Wextra
> KBUILD_CFLAGS += -Wno-sign-compare
> +KBUILD_CFLAGS += -Wno-unused-parameter
>
> endif
>
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/4] kbuild: turn on -Wextra by default
2024-04-09 16:25 ` [PATCH 1/4] kbuild: turn on -Wextra " Nathan Chancellor
@ 2024-04-09 18:42 ` Arnd Bergmann
0 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2024-04-09 18:42 UTC (permalink / raw)
To: Nathan Chancellor, Arnd Bergmann
Cc: Masahiro Yamada, Nicolas Schier, linux-kbuild, linux-kernel, llvm
On Tue, Apr 9, 2024, at 18:25, Nathan Chancellor wrote:
> On Thu, Apr 04, 2024 at 05:16:54PM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>
> I have not done any LLVM builds with this change but if this is going to
> be in -next for a little bit, we should be able to get any regressions
> handled quickly.
>
> I am in favor of more warnings but I am a little nervous this will make
> compiler upgrades (or tracking their mainline) even more difficult. I do
> not have a feeling for how often warnings are added to -Wall and -Wextra
> so this may be unfounded but the kernel's -Werror use complicates this
> in my opinion. I can engage with the clang folks to try and be given a
> heads up when a warning is going to be added to -Wextra, it would be
> good to have someone do something similar for GCC, so that those
> upgrades do not cause something like this change to be rolled back.
My impression is that most new warnings get added to -Wall rather than
-Wextra anyway. If they are added to -Wextra, it's still easy enough
to turn them off individually unless W=1 is set.
> It is easy enough to back out of this if necessary though, so:
>
> Acked-by: Nathan Chancellor <nathan@kernel.org>
Thanks!
Arnd
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-09 19:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-04 15:16 [PATCH 0/4] Enable more warnings by default Arnd Bergmann
2024-04-04 15:16 ` [PATCH 4/4] kbuild: enable -Wformat-truncation on clang Arnd Bergmann
2024-04-08 22:00 ` [PATCH 0/4] Enable more warnings by default Justin Stitt
[not found] ` <20240404151713.3493098-2-arnd@kernel.org>
2024-04-09 16:25 ` [PATCH 1/4] kbuild: turn on -Wextra " Nathan Chancellor
2024-04-09 18:42 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox