[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 2/4] configure: Enforce gnu99 C language standard
From: |
Daniel Kiper |
Subject: |
Re: [PATCH v2 2/4] configure: Enforce gnu99 C language standard |
Date: |
Tue, 7 Apr 2020 12:41:20 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Tue, Apr 07, 2020 at 11:38:16AM +0200, Javier Martinez Canillas wrote:
> On 4/3/20 2:45 PM, Daniel Kiper wrote:
> > Commit d5a32255d (misc: Make grub_strtol() "end" pointers have safer
> > const qualifiers) introduced "restrict" keyword into some functions
> > definitions. This keyword was introduced in C99 standard. However, some
> > compilers by default may use C89 or something different. This behavior
> > leads to the breakage during builds when c89 or gnu89 is in force. So,
> > let's enforce gnu99 C language standard for all compilers. This way
> > a bit random build issue will be fixed and the GRUB source will be
> > build consistently regardless of type and version of the compiler.
> >
> > It was decided to use gnu99 C language standard because it fixes the
> > issue mentioned above and also provides some useful extensions which are
> > used here and there in the GRUB source. Potentially we can use gnu11 too.
> > However, this may reduce pool of older compilers which can be used to
> > build the GRUB. So, let's live with gnu99 until we do not discover that
> > we strongly require a feature from newer C standard.
> >
> > Signed-off-by: Daniel Kiper <address@hidden>
> > ---
> > v2 - suggestions/fixes:
> > - unconditionally enforce gnu99 C language standard
> > (suggested by Leif Lindholm).
> > ---
> > configure.ac | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/configure.ac b/configure.ac
> > index b2576b013..fc74ee800 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -80,6 +80,10 @@ if test "x$TARGET_CFLAGS" = x; then
> > TARGET_CFLAGS=-Os
> > fi
> >
>
> I would add a comment here explaining why gnu99 is enforced.
I am not convinced that we should repeat here what is said in the commit
message...
> > +BUILD_CFLAGS="-std=gnu99 $BUILD_CFLAGS"
> > +HOST_CFLAGS="-std=gnu99 $HOST_CFLAGS"
> > +TARGET_CFLAGS="-std=gnu99 $TARGET_CFLAGS"
> > +
>
> Do you want to allow distros to override the -std option or do you want to
> always force to use gnu99? If the latter then I think instead it should be:
>
> BUILD_CFLAGS="$BUILD_CFLAGS -std=gnu99"
> HOST_CFLAGS="$HOST_CFLAGS -std=gnu99"
> TARGET_CFLAGS="$TARGET_CFLAGS -std=gnu99"
I want to allow everybody to override the defaults. In general I think
that we should not impose any artificial limits. If user wants to shoot in
his/her foot he/she should be allowed to do that... In most cases...
Daniel
- Re: [PATCH v2 1/4] configure: Drop unneeded TARGET_CFLAGS expansion, (continued)
[PATCH v2 2/4] configure: Enforce gnu99 C language standard, Daniel Kiper, 2020/04/03
Re: [PATCH v2 2/4] configure: Enforce gnu99 C language standard, Leif Lindholm, 2020/04/07
[PATCH v2 4/4] autogen: Replace -iname with -ipath in find command, Daniel Kiper, 2020/04/03