kbuild: fix W= option checks for extra DTC warnings
diff mbox

Message ID 1516246306-12851-1-git-send-email-yamada.masahiro@socionext.com
State New, archived
Headers show

Commit Message

Masahiro Yamada Jan. 18, 2018, 3:31 a.m. UTC
Kbuild supports 3 levels of extra warnings, and multiple levels can
be combined, like W=12, W=123.  It was added by commit a6de553da01c
("kbuild: Allow to combine multiple W= levels").

From the log of commit 8654cb8d0371 ("dtc: update warning settings
for new bus and node/property name checks"), I assume:

 - unit_address_vs_reg, simple_bus_reg, etc. belong to level 1
 - node_name_chars_strict, property_name_chars_strict belong to level 2

However, the level 1 warnings are displayed by any argument to W=.
On the other hand, the level 2 warnings are displayed by W=2, but
not by W=12, or W=123.

Use $(findstring ...) like scripts/Makefile.extrawarn.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Side Notes for possible additional works:

 [1] I implemented DTC extra warnings differently in U-Boot:

    https://github.com/u-boot/u-boot/blob/v2018.01/scripts/Makefile.extrawarn#L64

    Better to collect extra warning stuff into scripts/Makefile.extrawarn ?

 [2] KBUILD_ENABLE_EXTRA_GCC_CHECKS is getting a historical misnomer
     because we use it for Clang and DTC too.

     Better to rename?  (keeping backward-compatibility for a while)?


 scripts/Makefile.lib | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Arnd Bergmann Jan. 18, 2018, 9:25 a.m. UTC | #1
On Thu, Jan 18, 2018 at 4:31 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> Kbuild supports 3 levels of extra warnings, and multiple levels can
> be combined, like W=12, W=123.  It was added by commit a6de553da01c
> ("kbuild: Allow to combine multiple W= levels").
>
> From the log of commit 8654cb8d0371 ("dtc: update warning settings
> for new bus and node/property name checks"), I assume:
>
>  - unit_address_vs_reg, simple_bus_reg, etc. belong to level 1
>  - node_name_chars_strict, property_name_chars_strict belong to level 2
>
> However, the level 1 warnings are displayed by any argument to W=.
> On the other hand, the level 2 warnings are displayed by W=2, but
> not by W=12, or W=123.
>
> Use $(findstring ...) like scripts/Makefile.extrawarn.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Good catch!

Acked-by: Arnd Bergmann <arnd@arndb.de>

> Side Notes for possible additional works:
>
>  [1] I implemented DTC extra warnings differently in U-Boot:
>
>     https://github.com/u-boot/u-boot/blob/v2018.01/scripts/Makefile.extrawarn#L64
>
>     Better to collect extra warning stuff into scripts/Makefile.extrawarn ?
>
>  [2] KBUILD_ENABLE_EXTRA_GCC_CHECKS is getting a historical misnomer
>      because we use it for Clang and DTC too.
>
>      Better to rename?  (keeping backward-compatibility for a while)?

I'd suggest we leave it for now, I still plan to eventually do my
large rework of
the way we handle extra warning levels, likely that will result in
Makefile.extrawarn
being completely replaced.

       Arnd
Masahiro Yamada Jan. 28, 2018, 1:41 a.m. UTC | #2
2018-01-18 12:31 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> Kbuild supports 3 levels of extra warnings, and multiple levels can
> be combined, like W=12, W=123.  It was added by commit a6de553da01c
> ("kbuild: Allow to combine multiple W= levels").
>
> From the log of commit 8654cb8d0371 ("dtc: update warning settings
> for new bus and node/property name checks"), I assume:
>
>  - unit_address_vs_reg, simple_bus_reg, etc. belong to level 1
>  - node_name_chars_strict, property_name_chars_strict belong to level 2
>
> However, the level 1 warnings are displayed by any argument to W=.
> On the other hand, the level 2 warnings are displayed by W=2, but
> not by W=12, or W=123.
>
> Use $(findstring ...) like scripts/Makefile.extrawarn.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
>

Applied to linux-kbuild/kbuild.

Patch
diff mbox

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 1ca4dcd..7dee1da 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -264,7 +264,7 @@  cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
 DTC ?= $(objtree)/scripts/dtc/dtc
 
 # Disable noisy checks by default
-ifeq ($(KBUILD_ENABLE_EXTRA_GCC_CHECKS),)
+ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
 DTC_FLAGS += -Wno-unit_address_vs_reg \
 	-Wno-simple_bus_reg \
 	-Wno-unit_address_format \
@@ -273,7 +273,7 @@  DTC_FLAGS += -Wno-unit_address_vs_reg \
 	-Wno-pci_device_reg
 endif
 
-ifeq ($(KBUILD_ENABLE_EXTRA_GCC_CHECKS),2)
+ifneq ($(findstring 2,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
 DTC_FLAGS += -Wnode_name_chars_strict \
 	-Wproperty_name_chars_strict
 endif