[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/2] configure: Force the C standa
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/2] configure: Force the C standard to gnu99 |
Date: |
Wed, 9 Jan 2019 19:10:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 |
On 1/9/19 5:39 PM, Thomas Huth wrote:
> Different versions of GCC and Clang use different versions of the C standard.
> This repeatedly caused problems already, e.g. with duplicated typedefs:
>
> https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg05829.html
>
> or with for-loop variable initializers:
>
> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg00237.html
>
> To avoid these problems, we should enforce the C language version to the
> same level for all compilers. Since our minimum compiler versions is
> GCC v4.8, our best option is "gnu99" for C code right now ("gnu17" is not
> available there yet, and "gnu11" is marked as "experimental"), and "gnu++98"
> for the few C++ code that we have in the repository.
>
> Signed-off-by: Thomas Huth <address@hidden>
Raising from a 30 years old stantard to a 20 years old one is a great
improvement (I used to be a defender of the C89, but I evolved and now
admit C99 has helpful features).
Using '-std=gnu++98' for g++ v4.8 looks like a good compromise to the
issues Daniel mentioned (still 'experimental').
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> v3: Compile C++ code with -std=gnu++98
>
> configure | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index b9f34af..448dbc8 100755
> --- a/configure
> +++ b/configure
> @@ -107,6 +107,9 @@ update_cxxflags() {
> -Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\
> -Wold-style-declaration|-Wold-style-definition|-Wredundant-decls)
> ;;
> + -std=gnu99)
> + QEMU_CXXFLAGS=${QEMU_CXXFLAGS:+$QEMU_CXXFLAGS }"-std=gnu++98"
> + ;;
> *)
> QEMU_CXXFLAGS=${QEMU_CXXFLAGS:+$QEMU_CXXFLAGS }$arg
> ;;
> @@ -585,7 +588,7 @@ ARFLAGS="${ARFLAGS-rv}"
> # left shift of signed integers is well defined and has the expected
> # 2s-complement style results. (Both clang and gcc agree that it
> # provides these semantics.)
> -QEMU_CFLAGS="-fno-strict-aliasing -fno-common -fwrapv $QEMU_CFLAGS"
> +QEMU_CFLAGS="-fno-strict-aliasing -fno-common -fwrapv -std=gnu99
> $QEMU_CFLAGS"
> QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
> QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
> QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> $QEMU_CFLAGS"
>
- Re: [Qemu-ppc] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, (continued)
- Re: [Qemu-ppc] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Paolo Bonzini, 2019/01/09
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Eric Blake, 2019/01/09
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Paolo Bonzini, 2019/01/09
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Daniel P . Berrangé, 2019/01/10
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Greg Kurz, 2019/01/10
- Re: [Qemu-ppc] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Thomas Huth, 2019/01/10
Re: [Qemu-ppc] [PATCH 1/2] include/hw/ppc: Fix compilation with clang -std=gnu99, Cédric Le Goater, 2019/01/09
[Qemu-ppc] [PATCH v3 2/2] configure: Force the C standard to gnu99, Thomas Huth, 2019/01/09
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/2] configure: Force the C standard to gnu99,
Philippe Mathieu-Daudé <=
Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 2/2] configure: Force the C standard to gnu99, Richard Henderson, 2019/01/09