From c8947138364d3ac933d866bc0ec0893cf63cf739 Mon Sep 17 00:00:00 2001 From: Daniel Kiper Date: Wed, 13 May 2020 14:02:48 +0200 Subject: [PATCH] configure: Set gnu99 C language standard by default 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 set gnu99 C language standard for all compilers by default. 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 discover that we strongly require a feature from newer C standard. The user is still able to override C language standard using relevant *_CFLAGS variables. Signed-off-by: Daniel Kiper Reviewed-by: Leif Lindholm --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index b2576b013..3eda9a5a2 100644 --- a/configure.ac +++ b/configure.ac @@ -80,6 +80,12 @@ if test "x$TARGET_CFLAGS" = x; then TARGET_CFLAGS=-Os fi +# Enable support for "restrict" keyword and other +# features from gnu99 C language standard. +BUILD_CFLAGS="-std=gnu99 $BUILD_CFLAGS" +HOST_CFLAGS="-std=gnu99 $HOST_CFLAGS" +TARGET_CFLAGS="-std=gnu99 $TARGET_CFLAGS" + # Default HOST_CPPFLAGS HOST_CPPFLAGS="$HOST_CPPFLAGS -Wall -W" HOST_CPPFLAGS="$HOST_CPPFLAGS -DGRUB_UTIL=1"