kbuild: flatten KBUILD_CFLAGS

Message ID 4f414a87-0c54-44bd-b218-f6f0b22c57ef@p183
State New
Headers
Series kbuild: flatten KBUILD_CFLAGS |

Commit Message

Alexey Dobriyan July 13, 2023, 6:52 p.m. UTC
  Make it slightly easier to see which compiler options are added and
removed (and not worry about column limit too!).

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 Makefile |   22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)
  

Comments

Nicolas Schier July 14, 2023, 10:42 a.m. UTC | #1
On Thu, Jul 13, 2023 at 09:52:28PM +0300, Alexey Dobriyan wrote:
> Make it slightly easier to see which compiler options are added and
> removed (and not worry about column limit too!).
> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
> 
>  Makefile |   22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
> 
> --- a/Makefile
> +++ b/Makefile
> @@ -555,11 +555,23 @@ LINUXINCLUDE    := \
>  		$(USERINCLUDE)
>  
>  KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
> -KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
> -		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
> -		   -Werror=implicit-function-declaration -Werror=implicit-int \
> -		   -Werror=return-type -Wno-format-security -funsigned-char \
> -		   -std=gnu11
> +
> +KBUILD_CFLAGS :=
> +KBUILD_CFLAGS += -std=gnu11

If you want to put -std at top, on contrast to the sorted options below,
you could also merge the two lines above.

> +KBUILD_CFLAGS += -fshort-wchar
> +KBUILD_CFLAGS += -funsigned-char
> +KBUILD_CFLAGS += -fno-common
> +KBUILD_CFLAGS += -fno-PIE
> +KBUILD_CFLAGS += -fno-strict-aliasing
> +KBUILD_CFLAGS += -Wall
> +KBUILD_CFLAGS += -Wundef
> +KBUILD_CFLAGS += -Werror=implicit-function-declaration
> +KBUILD_CFLAGS += -Werror=implicit-int
> +KBUILD_CFLAGS += -Werror=return-type
> +KBUILD_CFLAGS += -Werror=strict-prototypes
> +KBUILD_CFLAGS += -Wno-format-security
> +KBUILD_CFLAGS += -Wno-trigraphs
> +
>  KBUILD_CPPFLAGS := -D__KERNEL__
>  KBUILD_RUSTFLAGS := $(rust_common_flags) \
>  		    --target=$(objtree)/scripts/target.json \

Thanks for the patch.

Reviewed-by: Nicolas Schier <n.schier@avm.de>
  
Alexey Dobriyan July 14, 2023, 5:45 p.m. UTC | #2
On Fri, Jul 14, 2023 at 12:42:11PM +0200, Nicolas Schier wrote:
> On Thu, Jul 13, 2023 at 09:52:28PM +0300, Alexey Dobriyan wrote:
> > Make it slightly easier to see which compiler options are added and
> > removed (and not worry about column limit too!).
> > 
> > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > ---
> > 
> >  Makefile |   22 +++++++++++++++++-----
> >  1 file changed, 17 insertions(+), 5 deletions(-)
> > 
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -555,11 +555,23 @@ LINUXINCLUDE    := \
> >  		$(USERINCLUDE)
> >  
> >  KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
> > -KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
> > -		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
> > -		   -Werror=implicit-function-declaration -Werror=implicit-int \
> > -		   -Werror=return-type -Wno-format-security -funsigned-char \
> > -		   -std=gnu11
> > +
> > +KBUILD_CFLAGS :=
> > +KBUILD_CFLAGS += -std=gnu11
> 
> If you want to put -std at top, on contrast to the sorted options below,
> you could also merge the two lines above.

I don't know. Standard choice is arguably the most important option
so I put it first.

> > +KBUILD_CFLAGS += -fshort-wchar
> > +KBUILD_CFLAGS += -funsigned-char
> > +KBUILD_CFLAGS += -fno-common
> > +KBUILD_CFLAGS += -fno-PIE
> > +KBUILD_CFLAGS += -fno-strict-aliasing
> > +KBUILD_CFLAGS += -Wall
> > +KBUILD_CFLAGS += -Wundef
> > +KBUILD_CFLAGS += -Werror=implicit-function-declaration
> > +KBUILD_CFLAGS += -Werror=implicit-int
> > +KBUILD_CFLAGS += -Werror=return-type
> > +KBUILD_CFLAGS += -Werror=strict-prototypes
> > +KBUILD_CFLAGS += -Wno-format-security
> > +KBUILD_CFLAGS += -Wno-trigraphs
  
Nicolas Schier July 14, 2023, 7:30 p.m. UTC | #3
On Fri, Jul 14, 2023 at 08:45:00PM +0300 Alexey Dobriyan wrote:
> On Fri, Jul 14, 2023 at 12:42:11PM +0200, Nicolas Schier wrote:
> > On Thu, Jul 13, 2023 at 09:52:28PM +0300, Alexey Dobriyan wrote:
> > > Make it slightly easier to see which compiler options are added and
> > > removed (and not worry about column limit too!).
> > > 
> > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > > ---
> > > 
> > >  Makefile |   22 +++++++++++++++++-----
> > >  1 file changed, 17 insertions(+), 5 deletions(-)
> > > 
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -555,11 +555,23 @@ LINUXINCLUDE    := \
> > >  		$(USERINCLUDE)
> > >  
> > >  KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
> > > -KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
> > > -		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
> > > -		   -Werror=implicit-function-declaration -Werror=implicit-int \
> > > -		   -Werror=return-type -Wno-format-security -funsigned-char \
> > > -		   -std=gnu11
> > > +
> > > +KBUILD_CFLAGS :=
> > > +KBUILD_CFLAGS += -std=gnu11
> > 
> > If you want to put -std at top, on contrast to the sorted options below,
> > you could also merge the two lines above.
> 
> I don't know. Standard choice is arguably the most important option
> so I put it first.

yes, I think I would have put it on top, too.  I just would write it this way:

    KBUILD_CFLAGS := -std=gnu11

    KBUILD_CFLAGS += ...

But it is bike-shedding, ignore it if you're not convinced.

Kind regards,
Nicolas


> > > +KBUILD_CFLAGS += -fshort-wchar
> > > +KBUILD_CFLAGS += -funsigned-char
> > > +KBUILD_CFLAGS += -fno-common
> > > +KBUILD_CFLAGS += -fno-PIE
> > > +KBUILD_CFLAGS += -fno-strict-aliasing
> > > +KBUILD_CFLAGS += -Wall
> > > +KBUILD_CFLAGS += -Wundef
> > > +KBUILD_CFLAGS += -Werror=implicit-function-declaration
> > > +KBUILD_CFLAGS += -Werror=implicit-int
> > > +KBUILD_CFLAGS += -Werror=return-type
> > > +KBUILD_CFLAGS += -Werror=strict-prototypes
> > > +KBUILD_CFLAGS += -Wno-format-security
> > > +KBUILD_CFLAGS += -Wno-trigraphs
  
Masahiro Yamada July 15, 2023, 6:36 a.m. UTC | #4
On Sat, Jul 15, 2023 at 4:30 AM Nicolas Schier <nicolas@fjasle.eu> wrote:
>
> On Fri, Jul 14, 2023 at 08:45:00PM +0300 Alexey Dobriyan wrote:
> > On Fri, Jul 14, 2023 at 12:42:11PM +0200, Nicolas Schier wrote:
> > > On Thu, Jul 13, 2023 at 09:52:28PM +0300, Alexey Dobriyan wrote:
> > > > Make it slightly easier to see which compiler options are added and
> > > > removed (and not worry about column limit too!).
> > > >
> > > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > > > ---
> > > >
> > > >  Makefile |   22 +++++++++++++++++-----
> > > >  1 file changed, 17 insertions(+), 5 deletions(-)
> > > >
> > > > --- a/Makefile
> > > > +++ b/Makefile
> > > > @@ -555,11 +555,23 @@ LINUXINCLUDE    := \
> > > >           $(USERINCLUDE)
> > > >
> > > >  KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
> > > > -KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
> > > > -            -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
> > > > -            -Werror=implicit-function-declaration -Werror=implicit-int \
> > > > -            -Werror=return-type -Wno-format-security -funsigned-char \
> > > > -            -std=gnu11
> > > > +
> > > > +KBUILD_CFLAGS :=
> > > > +KBUILD_CFLAGS += -std=gnu11
> > >
> > > If you want to put -std at top, on contrast to the sorted options below,
> > > you could also merge the two lines above.
> >
> > I don't know. Standard choice is arguably the most important option
> > so I put it first.
>
> yes, I think I would have put it on top, too.  I just would write it this way:
>
>     KBUILD_CFLAGS := -std=gnu11
>
>     KBUILD_CFLAGS += ...
>
> But it is bike-shedding, ignore it if you're not convinced.
>
> Kind regards,
> Nicolas





Starting line 813, we have more and more
"KBUILD_CFLAGS +=" lines.


I thought we perhaps could merge them in a single place.
(but "KBUILD_CFLAGS := " still must come before "export KBUILD_CFLAGS")


[move everything to line 813]

KBUILD_CFLAGS += -std=gnu11
KBUILD_CFLAGS += -fshort-wchar
KBUILD_CFLAGS += -funsigned-char
KBUILD_CFLAGS += -fno-common
KBUILD_CFLAGS += -fno-PIE
KBUILD_CFLAGS += -fno-strict-aliasing
KBUILD_CFLAGS += -Wall
KBUILD_CFLAGS += -Wundef
KBUILD_CFLAGS += -Werror=implicit-function-declaration
KBUILD_CFLAGS += -Werror=implicit-int
KBUILD_CFLAGS += -Werror=return-type
KBUILD_CFLAGS += -Werror=strict-prototypes
KBUILD_CFLAGS += -Wno-format-security
KBUILD_CFLAGS += -Wno-trigraphs
KBUILD_CFLAGS += -fno-delete-null-pointer-checks
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
 ...




That will change the order of compiler options
because they cross line 760

  include $(srctree)/arch/$(SRCARCH)/Makefile


So, I think the patch is fine if we try to be safe.
  
Masahiro Yamada July 21, 2023, 2:27 p.m. UTC | #5
On Sat, Jul 15, 2023 at 2:45 AM Alexey Dobriyan <adobriyan@gmail.com> wrote:
>
> On Fri, Jul 14, 2023 at 12:42:11PM +0200, Nicolas Schier wrote:
> > On Thu, Jul 13, 2023 at 09:52:28PM +0300, Alexey Dobriyan wrote:
> > > Make it slightly easier to see which compiler options are added and
> > > removed (and not worry about column limit too!).
> > >
> > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > > ---
> > >
> > >  Makefile |   22 +++++++++++++++++-----
> > >  1 file changed, 17 insertions(+), 5 deletions(-)
> > >
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -555,11 +555,23 @@ LINUXINCLUDE    := \
> > >             $(USERINCLUDE)
> > >
> > >  KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
> > > -KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
> > > -              -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
> > > -              -Werror=implicit-function-declaration -Werror=implicit-int \
> > > -              -Werror=return-type -Wno-format-security -funsigned-char \
> > > -              -std=gnu11
> > > +
> > > +KBUILD_CFLAGS :=
> > > +KBUILD_CFLAGS += -std=gnu11
> >
> > If you want to put -std at top, on contrast to the sorted options below,
> > you could also merge the two lines above.
>
> I don't know. Standard choice is arguably the most important option
> so I put it first.
>
> > > +KBUILD_CFLAGS += -fshort-wchar
> > > +KBUILD_CFLAGS += -funsigned-char
> > > +KBUILD_CFLAGS += -fno-common
> > > +KBUILD_CFLAGS += -fno-PIE
> > > +KBUILD_CFLAGS += -fno-strict-aliasing
> > > +KBUILD_CFLAGS += -Wall
> > > +KBUILD_CFLAGS += -Wundef
> > > +KBUILD_CFLAGS += -Werror=implicit-function-declaration
> > > +KBUILD_CFLAGS += -Werror=implicit-int
> > > +KBUILD_CFLAGS += -Werror=return-type
> > > +KBUILD_CFLAGS += -Werror=strict-prototypes
> > > +KBUILD_CFLAGS += -Wno-format-security
> > > +KBUILD_CFLAGS += -Wno-trigraphs


Applied to linux-kbuild.
Thanks.
  

Patch

--- a/Makefile
+++ b/Makefile
@@ -555,11 +555,23 @@  LINUXINCLUDE    := \
 		$(USERINCLUDE)
 
 KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
-KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
-		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
-		   -Werror=implicit-function-declaration -Werror=implicit-int \
-		   -Werror=return-type -Wno-format-security -funsigned-char \
-		   -std=gnu11
+
+KBUILD_CFLAGS :=
+KBUILD_CFLAGS += -std=gnu11
+KBUILD_CFLAGS += -fshort-wchar
+KBUILD_CFLAGS += -funsigned-char
+KBUILD_CFLAGS += -fno-common
+KBUILD_CFLAGS += -fno-PIE
+KBUILD_CFLAGS += -fno-strict-aliasing
+KBUILD_CFLAGS += -Wall
+KBUILD_CFLAGS += -Wundef
+KBUILD_CFLAGS += -Werror=implicit-function-declaration
+KBUILD_CFLAGS += -Werror=implicit-int
+KBUILD_CFLAGS += -Werror=return-type
+KBUILD_CFLAGS += -Werror=strict-prototypes
+KBUILD_CFLAGS += -Wno-format-security
+KBUILD_CFLAGS += -Wno-trigraphs
+
 KBUILD_CPPFLAGS := -D__KERNEL__
 KBUILD_RUSTFLAGS := $(rust_common_flags) \
 		    --target=$(objtree)/scripts/target.json \