[PATCH] kbuild: add some extra warning flags unconditionally

0 views
Skip to first unread message

Masahiro Yamada

unread,
May 9, 2019, 2:47:17 AM5/9/19
to linux-...@vger.kernel.org, Nick Desaulniers, Nathan Chancellor, Arnd Bergmann, clang-bu...@googlegroups.com, Masahiro Yamada, Michal Marek, linux-...@vger.kernel.org
These flags are documented in the GCC 4.6 manual, and recognized by
Clang as well. Let's rip off the cc-option / cc-disable-warning switches.

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

scripts/Makefile.extrawarn | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index 523c4cafe2dc..3ab8d1a303cd 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -23,15 +23,16 @@ warning- := $(empty)
warning-1 := -Wextra -Wunused -Wno-unused-parameter
warning-1 += -Wmissing-declarations
warning-1 += -Wmissing-format-attribute
-warning-1 += $(call cc-option, -Wmissing-prototypes)
+warning-1 += -Wmissing-prototypes
warning-1 += -Wold-style-definition
-warning-1 += $(call cc-option, -Wmissing-include-dirs)
+warning-1 += -Wmissing-include-dirs
warning-1 += $(call cc-option, -Wunused-but-set-variable)
warning-1 += $(call cc-option, -Wunused-const-variable)
warning-1 += $(call cc-option, -Wpacked-not-aligned)
warning-1 += $(call cc-option, -Wstringop-truncation)
-warning-1 += $(call cc-disable-warning, missing-field-initializers)
-warning-1 += $(call cc-disable-warning, sign-compare)
+# The following turn off the warnings enabled by -Wextra
+warning-1 += -Wno-missing-field-initializers
+warning-1 += -Wno-sign-compare

warning-2 := -Waggregate-return
warning-2 += -Wcast-align
@@ -39,8 +40,8 @@ warning-2 += -Wdisabled-optimization
warning-2 += -Wnested-externs
warning-2 += -Wshadow
warning-2 += $(call cc-option, -Wlogical-op)
-warning-2 += $(call cc-option, -Wmissing-field-initializers)
-warning-2 += $(call cc-option, -Wsign-compare)
+warning-2 += -Wmissing-field-initializers
+warning-2 += -Wsign-compare
warning-2 += $(call cc-option, -Wmaybe-uninitialized)
warning-2 += $(call cc-option, -Wunused-macros)

--
2.17.1

Sedat Dilek

unread,
May 9, 2019, 3:11:13 AM5/9/19
to Masahiro Yamada, linux-...@vger.kernel.org, Nick Desaulniers, Nathan Chancellor, Arnd Bergmann, Clang-Built-Linux ML, Michal Marek, linux-...@vger.kernel.org
On Thu, May 9, 2019 at 8:47 AM Masahiro Yamada
<yamada....@socionext.com> wrote:
>
> These flags are documented in the GCC 4.6 manual, and recognized by
> Clang as well. Let's rip off the cc-option / cc-disable-warning switches.
>

BTW, is this a speedup when doing CC/LD FLAGS etc checks unconditionally?
Asking in general - do you have any numbers :-)?

- Sedat -
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-li...@googlegroups.com.
> To post to this group, send email to clang-bu...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20190509064635.1445-1-yamada.masahiro%40socionext.com.
> For more options, visit https://groups.google.com/d/optout.

Masahiro Yamada

unread,
May 9, 2019, 3:26:05 AM5/9/19
to Sedat Dilek, Linux Kbuild mailing list, Nick Desaulniers, Nathan Chancellor, Arnd Bergmann, Clang-Built-Linux ML, Michal Marek, Linux Kernel Mailing List
On Thu, May 9, 2019 at 4:11 PM Sedat Dilek <sedat...@gmail.com> wrote:
>
> On Thu, May 9, 2019 at 8:47 AM Masahiro Yamada
> <yamada....@socionext.com> wrote:
> >
> > These flags are documented in the GCC 4.6 manual, and recognized by
> > Clang as well. Let's rip off the cc-option / cc-disable-warning switches.
> >
>
> BTW, is this a speedup when doing CC/LD FLAGS etc checks unconditionally?

Yes.
cc-option is somewhat costly because it invoked the compiler to
check if the given flag is supported.

So, I want to get rid of as many cc-option calls as possible.


> Asking in general - do you have any numbers :-)?

Removing a couple of cc-options does not make
a measurable difference in general use-cases.

But, this might be more beneficial for chrome OS
because $(CC) is a wrapper and invoking it is much more expensive.
--
Best Regards
Masahiro Yamada

Nathan Chancellor

unread,
May 9, 2019, 7:17:18 AM5/9/19
to Masahiro Yamada, linux-...@vger.kernel.org, Nick Desaulniers, Arnd Bergmann, clang-bu...@googlegroups.com, Michal Marek, linux-...@vger.kernel.org
On Thu, May 09, 2019 at 03:46:35PM +0900, Masahiro Yamada wrote:
> These flags are documented in the GCC 4.6 manual, and recognized by
> Clang as well. Let's rip off the cc-option / cc-disable-warning switches.
>
> Signed-off-by: Masahiro Yamada <yamada....@socionext.com>

Reviewed-by: Nathan Chancellor <natecha...@gmail.com>

Nick Desaulniers

unread,
May 9, 2019, 12:47:44 PM5/9/19
to Masahiro Yamada, Sedat Dilek, Linux Kbuild mailing list, Nathan Chancellor, Arnd Bergmann, Clang-Built-Linux ML, Michal Marek, Linux Kernel Mailing List, chromeos-toolchain, Android-LLVM
From: Masahiro Yamada <yamada....@socionext.com>
> On Thu, May 9, 2019 at 4:11 PM Sedat Dilek <sedat...@gmail.com> wrote:
> > BTW, is this a speedup when doing CC/LD FLAGS etc checks unconditionally?
>
> Yes.
> cc-option is somewhat costly because it invoked the compiler to
> check if the given flag is supported.
>
> So, I want to get rid of as many cc-option calls as possible.
>
>
> > Asking in general - do you have any numbers :-)?
>
> Removing a couple of cc-options does not make
> a measurable difference in general use-cases.
>
> But, this might be more beneficial for chrome OS
> because $(CC) is a wrapper and invoking it is much more expensive.

Android does too, which we plan on removing as we recently measured
the performance cost of 5% for having a Python wrapper to aid in
bisection.

Anyways, I checked these options with clang 4 and gcc 4.6.4 in godbolt.
Tested-by: Nick Desaulniers <ndesau...@google.com>
--
Thanks,
~Nick Desaulniers

Masahiro Yamada

unread,
May 12, 2019, 10:24:42 PM5/12/19
to Nick Desaulniers, Sedat Dilek, Linux Kbuild mailing list, Nathan Chancellor, Arnd Bergmann, Clang-Built-Linux ML, Michal Marek, Linux Kernel Mailing List, chromeos-toolchain, Android-LLVM
Applied to linux-kbuild.
Reply all
Reply to author
Forward
0 new messages