Re: [PATCH] kbuild: flatten KBUILD_CFLAGS

From: Masahiro Yamada
Date: Sat Jul 15 2023 - 02:38:29 EST


On Sat, Jul 15, 2023 at 4:30 AM Nicolas Schier <nicolas@xxxxxxxxx> 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@xxxxxxxxx>
> > > > ---
> > > >
> > > > 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.



--
Best Regards
Masahiro Yamada