From: Leif Lindholm <leif@nuviainc.com>
To: Daniel Kiper <daniel.kiper@oracle.com>
Cc: grub-devel@gnu.org, javierm@redhat.com, olaf@aepfle.de,
phcoder@gmail.com, pjones@redhat.com
Subject: Re: [PATCH 1/3] configure: Enforce gnu99 C language standard
Date: Thu, 2 Apr 2020 17:28:33 +0100 [thread overview]
Message-ID: <20200402162833.GQ7468@vanye> (raw)
In-Reply-To: <20200402150750.6665-2-daniel.kiper@oracle.com>
On Thu, Apr 02, 2020 at 17:07:48 +0200, 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.kiper@oracle.com>
> ---
> configure.ac | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 88c0adbae..b7f40a1c3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -75,9 +75,16 @@ grub_TRANSFORM([grub-sparc64-setup])
> grub_TRANSFORM([grub-render-label])
> grub_TRANSFORM([grub-file])
>
> -# Optimization flag. Allow user to override.
> +if test "x$BUILD_CFLAGS" = x; then
> + BUILD_CFLAGS='-std=gnu99'
> +fi
> +
> +if test "x$HOST_CFLAGS" = x; then
> + HOST_CFLAGS='-std=gnu99'
> +fi
> +
> if test "x$TARGET_CFLAGS" = x; then
> - TARGET_CFLAGS="$TARGET_CFLAGS -Os"
> + TARGET_CFLAGS='-Os -std=gnu99'
> fi
Do these not add -std=gnu99 only if *_CFLAGS are not specified?
Would we not want to override these always?
For example, Debian/Ubuntu override HOST_CFLAGS when building grub.
/
Leif
>
> # Default HOST_CPPFLAGS
> --
> 2.11.0
>
next prev parent reply other threads:[~2020-04-02 16:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-02 15:07 [PATCH 0/3] Various build and doc fixes Daniel Kiper
2020-04-02 15:07 ` [PATCH 1/3] configure: Enforce gnu99 C language standard Daniel Kiper
2020-04-02 16:28 ` Leif Lindholm [this message]
2020-04-02 17:08 ` Daniel Kiper
2020-04-02 17:13 ` Eli Schwartz
2020-04-02 17:38 ` Leif Lindholm
2020-04-02 22:03 ` Mike Gilbert
2020-04-02 15:07 ` [PATCH 2/3] INSTALL/configure: Update install doc and configure comment Daniel Kiper
2020-04-02 15:07 ` [PATCH 3/3] autogen: Replace -iname with -ipath in find command Daniel Kiper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200402162833.GQ7468@vanye \
--to=leif@nuviainc.com \
--cc=daniel.kiper@oracle.com \
--cc=grub-devel@gnu.org \
--cc=javierm@redhat.com \
--cc=olaf@aepfle.de \
--cc=phcoder@gmail.com \
--cc=pjones@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.