Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1398538 > unrolled thread

[PATCH] kbuild: move -Wunused-const-variable to W=1 warning level

Started byArnd Bergmann <arnd@arndb.de>
First post2016-05-10 23:40 +0200
Last post2016-05-11 13:10 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] kbuild: move -Wunused-const-variable to W=1 warning level Arnd Bergmann <arnd@arndb.de> - 2016-05-10 23:40 +0200
    Re: [PATCH] kbuild: move -Wunused-const-variable to W=1 warning level Olof Johansson <olof@lixom.net> - 2016-05-11 00:30 +0200
    Re: [PATCH] kbuild: move -Wunused-const-variable to W=1 warning level Lee Jones <lee.jones@linaro.org> - 2016-05-11 09:50 +0200
    Re: [PATCH] kbuild: move -Wunused-const-variable to W=1 warning level Michal Marek <mmarek@suse.com> - 2016-05-11 13:10 +0200

#1398538 — [PATCH] kbuild: move -Wunused-const-variable to W=1 warning level

FromArnd Bergmann <arnd@arndb.de>
Date2016-05-10 23:40 +0200
Subject[PATCH] kbuild: move -Wunused-const-variable to W=1 warning level
Message-ID<rxnxM-2xf-13@gated-at.bofh.it>
gcc-6 started warning by default about variables that are not
used anywhere and that are marked 'const', generating many
false positives in an allmodconfig build, e.g.:

arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]

This is similar to the existing -Wunused-but-set-variable warning
that was added in an earlier release and that we disable by default
now and only enable when W=1 is set, so it makes sense to do
the same here. Once we have eliminated the majority of the
warnings for both, we can put them back into the default list.

We probably want this in backport kernels as well, to allow building
them with gcc-6 without introducing extra warnings.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: stable@vger.kernel.org
---
I had originally started testing with gcc-6 a while ago and turned off
this option in my build scripts because it was too noisy. I fixed all
the other warnings I got and forgot about it until Olof mentioned it
when he upgraded his build bot and the warnings started exploding.

 Makefile                   | 5 +++--
 scripts/Makefile.extrawarn | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index f7ccd8a40450..7934088c011b 100644
--- a/Makefile
+++ b/Makefile
@@ -708,9 +708,10 @@ KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
 KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
 else
 
-# This warning generated too much noise in a regular build.
-# Use make W=1 to enable this warning (see scripts/Makefile.build)
+# These warnings generated too much noise in a regular build.
+# Use make W=1 to enable them (see scripts/Makefile.build)
 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
+KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
 endif
 
 ifdef CONFIG_FRAME_POINTER
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index f9e47a70509c..53449a6ff6aa 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -24,6 +24,7 @@ warning-1 += $(call cc-option, -Wmissing-prototypes)
 warning-1 += -Wold-style-definition
 warning-1 += $(call cc-option, -Wmissing-include-dirs)
 warning-1 += $(call cc-option, -Wunused-but-set-variable)
+warning-1 += $(call cc-option, -Wunused-const-variable)
 warning-1 += $(call cc-disable-warning, missing-field-initializers)
 warning-1 += $(call cc-disable-warning, sign-compare)
 
-- 
2.7.0

[toc] | [next] | [standalone]


#1398558

FromOlof Johansson <olof@lixom.net>
Date2016-05-11 00:30 +0200
Message-ID<rxok9-3qI-7@gated-at.bofh.it>
In reply to#1398538
On Tue, May 10, 2016 at 2:30 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> gcc-6 started warning by default about variables that are not
> used anywhere and that are marked 'const', generating many
> false positives in an allmodconfig build, e.g.:
>
> arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
> arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
> drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
> drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
> drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
> drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]
>
> This is similar to the existing -Wunused-but-set-variable warning
> that was added in an earlier release and that we disable by default
> now and only enable when W=1 is set, so it makes sense to do
> the same here. Once we have eliminated the majority of the
> warnings for both, we can put them back into the default list.
>
> We probably want this in backport kernels as well, to allow building
> them with gcc-6 without introducing extra warnings.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: stable@vger.kernel.org

Acked-by: Olof Johansson <olof@lixom.net>

> I had originally started testing with gcc-6 a while ago and turned off
> this option in my build scripts because it was too noisy. I fixed all
> the other warnings I got and forgot about it until Olof mentioned it
> when he upgraded his build bot and the warnings started exploding.

Yeah, it makes for a very noisy build that makes the valid real warnings drown.

Someone should feel free to clean these up sometimes, but until then
we shouldn't surface them by default.

I'd love to see this go in before 4.6.


-Olof

[toc] | [prev] | [next] | [standalone]


#1398745

FromLee Jones <lee.jones@linaro.org>
Date2016-05-11 09:50 +0200
Message-ID<rxx46-3Bt-17@gated-at.bofh.it>
In reply to#1398538
On Tue, 10 May 2016, Arnd Bergmann wrote:

> gcc-6 started warning by default about variables that are not
> used anywhere and that are marked 'const', generating many
> false positives in an allmodconfig build, e.g.:
> 
> arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
> arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
> drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
> drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
> drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
> drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]
> 
> This is similar to the existing -Wunused-but-set-variable warning
> that was added in an earlier release and that we disable by default
> now and only enable when W=1 is set, so it makes sense to do
> the same here. Once we have eliminated the majority of the
> warnings for both, we can put them back into the default list.
> 
> We probably want this in backport kernels as well, to allow building
> them with gcc-6 without introducing extra warnings.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: stable@vger.kernel.org
> ---
> I had originally started testing with gcc-6 a while ago and turned off
> this option in my build scripts because it was too noisy. I fixed all
> the other warnings I got and forgot about it until Olof mentioned it
> when he upgraded his build bot and the warnings started exploding.
> 
>  Makefile                   | 5 +++--
>  scripts/Makefile.extrawarn | 1 +
>  2 files changed, 4 insertions(+), 2 deletions(-)

Works for me:
  Acked-by: Lee Jones <lee.jones@linaro.org>

OOI, we described W=1 as "warnings that we'd like to see fixed
shortly, in order to obtain a clean W=1 build".  By demoting
'sign-compare' to W=2 we reduced warnings from 25k to 3k, which is a
more achievable target.  How does this change effect the W=1 warning
count?  Does it place a clean W=1 build back out of the realms of
possibility?

> diff --git a/Makefile b/Makefile
> index f7ccd8a40450..7934088c011b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -708,9 +708,10 @@ KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
>  KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
>  else
>  
> -# This warning generated too much noise in a regular build.
> -# Use make W=1 to enable this warning (see scripts/Makefile.build)
> +# These warnings generated too much noise in a regular build.
> +# Use make W=1 to enable them (see scripts/Makefile.build)
>  KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
> +KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
>  endif
>  
>  ifdef CONFIG_FRAME_POINTER
> diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
> index f9e47a70509c..53449a6ff6aa 100644
> --- a/scripts/Makefile.extrawarn
> +++ b/scripts/Makefile.extrawarn
> @@ -24,6 +24,7 @@ warning-1 += $(call cc-option, -Wmissing-prototypes)
>  warning-1 += -Wold-style-definition
>  warning-1 += $(call cc-option, -Wmissing-include-dirs)
>  warning-1 += $(call cc-option, -Wunused-but-set-variable)
> +warning-1 += $(call cc-option, -Wunused-const-variable)
>  warning-1 += $(call cc-disable-warning, missing-field-initializers)
>  warning-1 += $(call cc-disable-warning, sign-compare)
>  

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

[toc] | [prev] | [next] | [standalone]


#1398952

FromMichal Marek <mmarek@suse.com>
Date2016-05-11 13:10 +0200
Message-ID<rxAbE-77O-25@gated-at.bofh.it>
In reply to#1398538
On Tue, May 10, 2016 at 11:30:01PM +0200, Arnd Bergmann wrote:
> gcc-6 started warning by default about variables that are not
> used anywhere and that are marked 'const', generating many
> false positives in an allmodconfig build, e.g.:
> 
> arch/arm/mach-davinci/board-da830-evm.c:282:20: warning: 'da830_evm_emif25_pins' defined but not used [-Wunused-const-variable=]
> arch/arm/plat-omap/dmtimer.c:958:34: warning: 'omap_timer_match' defined but not used [-Wunused-const-variable=]
> drivers/bluetooth/hci_bcm.c:625:39: warning: 'acpi_bcm_default_gpios' defined but not used [-Wunused-const-variable=]
> drivers/char/hw_random/omap-rng.c:92:18: warning: 'reg_map_omap4' defined but not used [-Wunused-const-variable=]
> drivers/devfreq/exynos/exynos5_bus.c:381:32: warning: 'exynos5_busfreq_int_pm' defined but not used [-Wunused-const-variable=]
> drivers/dma/mv_xor.c:1139:34: warning: 'mv_xor_dt_ids' defined but not used [-Wunused-const-variable=]
> 
> This is similar to the existing -Wunused-but-set-variable warning
> that was added in an earlier release and that we disable by default
> now and only enable when W=1 is set, so it makes sense to do
> the same here. Once we have eliminated the majority of the
> warnings for both, we can put them back into the default list.
> 
> We probably want this in backport kernels as well, to allow building
> them with gcc-6 without introducing extra warnings.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: stable@vger.kernel.org

Applied to kbuild.git#kbuild.

Michal

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web