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 <daniel.ki...@oracle.com> > > --- > > 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 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel