Message ID | 20201026220331.3896226-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] Makefile.extrawarn: move -Wcast-align to W=3 | expand |
On Mon, Oct 26, 2020 at 11:03:13PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > This warning behaves differently depending on the architecture > and compiler. Using x86 gcc, we get no output at all because > gcc knows the architecture can handle unaligned accesses. > > Using x86 clang, or gcc on an architecture that needs to > manually deal with unaligned accesses, the build log is > completely flooded with these warnings, as they are commonly > invoked by inline functions of networking headers, e.g. > > include/linux/skbuff.h:1426:26: warning: cast increases required alignment of target type [-Wcast-align] > > The compiler is correct to point this out, as we are dealing > with undefined behavior that does cause problems in practice, > but there is also no good way to rewrite the code in commonly > included headers to a safer method. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Always sad to see a warning move further down the list but noisy headers are rough to deal with. This seems okay. Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > --- > scripts/Makefile.extrawarn | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > index 95e4cdb94fe9..6baee1200615 100644 > --- a/scripts/Makefile.extrawarn > +++ b/scripts/Makefile.extrawarn > @@ -60,7 +60,6 @@ endif > # > ifneq ($(findstring 2, $(KBUILD_EXTRA_WARN)),) > > -KBUILD_CFLAGS += -Wcast-align > KBUILD_CFLAGS += -Wdisabled-optimization > KBUILD_CFLAGS += -Wnested-externs > KBUILD_CFLAGS += -Wshadow > @@ -80,6 +79,7 @@ endif > ifneq ($(findstring 3, $(KBUILD_EXTRA_WARN)),) > > KBUILD_CFLAGS += -Wbad-function-cast > +KBUILD_CFLAGS += -Wcast-align > KBUILD_CFLAGS += -Wcast-qual > KBUILD_CFLAGS += -Wconversion > KBUILD_CFLAGS += -Wpacked > -- > 2.27.0 >
On Tue, Oct 27, 2020 at 10:42 AM Nathan Chancellor <natechancellor@gmail.com> wrote: > > On Mon, Oct 26, 2020 at 11:03:13PM +0100, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > > > This warning behaves differently depending on the architecture > > and compiler. Using x86 gcc, we get no output at all because > > gcc knows the architecture can handle unaligned accesses. > > > > Using x86 clang, or gcc on an architecture that needs to > > manually deal with unaligned accesses, the build log is > > completely flooded with these warnings, as they are commonly > > invoked by inline functions of networking headers, e.g. > > > > include/linux/skbuff.h:1426:26: warning: cast increases required alignment of target type [-Wcast-align] > > > > The compiler is correct to point this out, as we are dealing > > with undefined behavior that does cause problems in practice, > > but there is also no good way to rewrite the code in commonly > > included headers to a safer method. > > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > Always sad to see a warning move further down the list but noisy headers > are rough to deal with. This seems okay. > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > --- > > scripts/Makefile.extrawarn | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn > > index 95e4cdb94fe9..6baee1200615 100644 > > --- a/scripts/Makefile.extrawarn > > +++ b/scripts/Makefile.extrawarn > > @@ -60,7 +60,6 @@ endif > > # > > ifneq ($(findstring 2, $(KBUILD_EXTRA_WARN)),) > > > > -KBUILD_CFLAGS += -Wcast-align > > KBUILD_CFLAGS += -Wdisabled-optimization > > KBUILD_CFLAGS += -Wnested-externs > > KBUILD_CFLAGS += -Wshadow > > @@ -80,6 +79,7 @@ endif > > ifneq ($(findstring 3, $(KBUILD_EXTRA_WARN)),) > > > > KBUILD_CFLAGS += -Wbad-function-cast > > +KBUILD_CFLAGS += -Wcast-align > > KBUILD_CFLAGS += -Wcast-qual > > KBUILD_CFLAGS += -Wconversion > > KBUILD_CFLAGS += -Wpacked > > -- > > 2.27.0 > > Applied to linux-kbuild. Thanks. But, I think people already tend to ignore W=2 warnings.
On Mon, Nov 23, 2020 at 12:18 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > Applied to linux-kbuild. Thanks. > > But, I think people already tend to ignore W=2 warnings. Yes, this is what I was trying to change with this series and a couple of other patches I sent. When all the warnings from commonly included headers are gone, W=2 actually becomes somewhat useful. Arnd
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index 95e4cdb94fe9..6baee1200615 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -60,7 +60,6 @@ endif # ifneq ($(findstring 2, $(KBUILD_EXTRA_WARN)),) -KBUILD_CFLAGS += -Wcast-align KBUILD_CFLAGS += -Wdisabled-optimization KBUILD_CFLAGS += -Wnested-externs KBUILD_CFLAGS += -Wshadow @@ -80,6 +79,7 @@ endif ifneq ($(findstring 3, $(KBUILD_EXTRA_WARN)),) KBUILD_CFLAGS += -Wbad-function-cast +KBUILD_CFLAGS += -Wcast-align KBUILD_CFLAGS += -Wcast-qual KBUILD_CFLAGS += -Wconversion KBUILD_CFLAGS += -Wpacked