diff mbox series

kbuild: add some extra warning flags unconditionally

Message ID 20190509064635.1445-1-yamada.masahiro@socionext.com
State Accepted
Commit 4c8dd95a723d9cccf8810be54aa62be82885c9d8
Headers show
Series kbuild: add some extra warning flags unconditionally | expand

Commit Message

Masahiro Yamada May 9, 2019, 6:46 a.m. UTC
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.masahiro@socionext.com>

---

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

-- 
2.17.1

Comments

Sedat Dilek May 9, 2019, 7:11 a.m. UTC | #1
On Thu, May 9, 2019 at 8:47 AM Masahiro Yamada
<yamada.masahiro@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 -

> Signed-off-by: Masahiro Yamada <yamada.masahiro@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

>

> --

> 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-linux+unsubscribe@googlegroups.com.

> To post to this group, send email to clang-built-linux@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 May 9, 2019, 7:25 a.m. UTC | #2
On Thu, May 9, 2019 at 4:11 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>

> On Thu, May 9, 2019 at 8:47 AM Masahiro Yamada

> <yamada.masahiro@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.




>

> - Sedat -

>

> > Signed-off-by: Masahiro Yamada <yamada.masahiro@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

> >

> > --

> > 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-linux+unsubscribe@googlegroups.com.

> > To post to this group, send email to clang-built-linux@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.




-- 
Best Regards
Masahiro Yamada
Nathan Chancellor May 9, 2019, 11:17 a.m. UTC | #3
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.masahiro@socionext.com>


Reviewed-by: Nathan Chancellor <natechancellor@gmail.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

>
Nick Desaulniers May 9, 2019, 4:47 p.m. UTC | #4
From: Masahiro Yamada <yamada.masahiro@socionext.com>

> On Thu, May 9, 2019 at 4:11 PM Sedat Dilek <sedat.dilek@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 <ndesaulniers@google.com>

-- 
Thanks,
~Nick Desaulniers
Masahiro Yamada May 13, 2019, 2:23 a.m. UTC | #5
On Fri, May 10, 2019 at 1:47 AM Nick Desaulniers
<ndesaulniers@google.com> wrote:
>

> From: Masahiro Yamada <yamada.masahiro@socionext.com>

> > On Thu, May 9, 2019 at 4:11 PM Sedat Dilek <sedat.dilek@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 <ndesaulniers@google.com>

> --

> Thanks,

> ~Nick Desaulniers


Applied to linux-kbuild.


-- 
Best Regards
Masahiro Yamada
diff mbox series

Patch

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)