[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11 |
Date: |
Wed, 9 Jan 2019 11:44:59 +0000 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Wed, Jan 09, 2019 at 12:25:43PM +0100, Thomas Huth wrote:
> On 2019-01-09 11:58, Daniel P. Berrangé wrote:
> > On Mon, Jan 07, 2019 at 11:45:26AM +0100, 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 are
> >> GCC v4.8 and Clang v3.4 now, and both basically support "gnu11" already,
> >> this seems to be a good choice.
> >
> > In 4.x gnu11 is marked as experimental. I'm not really comfortable
> > using experimental features - even if its warning free there's a risk
> > it would silently mis-compile something.
> >
> > gnu99 is ok with 4.x - it is merely "incomplete".
>
> gnu11 has the big advantage that it also fixes the problem with
> duplicated typedefs that are reported by older versions of Clang.
>
> Are you sure about the experimental character in 4.x? I just looked at
> https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/Standards.html and it says:
>
> "A fourth version of the C standard, known as C11, was published in 2011
> as ISO/IEC 9899:2011. GCC has limited incomplete support for parts of
> this standard, enabled with -std=c11 or -std=iso9899:2011."
>
> It does not say anything about "experimental" there. The word
> "experimental" is only used for the C++ support, but we hardly have C++
> code in QEMU -- if you worry about that, I could simply drop the
> "-std=gnu++11" part from my patch?
I was looking at the "info gcc" docs on RHEL7, gcc-4.8.5-16.el7_4.1.x86_64:
"3.4 Options Controlling C Dialect
....snip...
'c11'
'c1x'
'iso9899:2011'
ISO C11, the 2011 revision of the ISO C standard. Support is
incomplete and experimental. The name 'c1x' is deprecated.
....snip...
'gnu11'
'gnu1x'
GNU dialect of ISO C11. Support is incomplete and
experimental. The name 'gnu1x' is deprecated."
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/07
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Daniel P . Berrangé, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11,
Daniel P . Berrangé <=
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Markus Armbruster, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Markus Armbruster, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Daniel P . Berrangé, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Daniel P . Berrangé, 2019/01/09
- Re: [Qemu-devel] [PATCH] configure: Force the C standard to gnu11, Thomas Huth, 2019/01/09