On Wed, Jan 09, 2019 at 03:51:33PM +0100, Thomas Huth wrote: > On 2019-01-09 15:31, Daniel P. Berrangé wrote: > > On Wed, Jan 09, 2019 at 03:24:29PM +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 is > >> GCC v4.8, our best option is "gnu99" right now ("gnu17" is not available > >> there yet, and "gnu11" is marked as "experimental"). > >> > >> Signed-off-by: Thomas Huth <th...@redhat.com> > >> --- > >> v2: Use gnu99 instead of gnu11 > >> > >> configure | 5 +++-- > >> 1 file changed, 3 insertions(+), 2 deletions(-) > > > > Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> > > > >> diff --git a/configure b/configure > >> index b9f34af..721ade7 100755 > >> --- a/configure > >> +++ b/configure > >> @@ -105,7 +105,8 @@ update_cxxflags() { > >> for arg in $QEMU_CFLAGS; do > >> case $arg in > >> -Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\ > >> - > >> -Wold-style-declaration|-Wold-style-definition|-Wredundant-decls) > >> + > >> -Wold-style-declaration|-Wold-style-definition|-Wredundant-decls|\ > >> + -std=gnu99) > > > > IIUC this is to drop -std=gnu99 from CXXFLAGS, so C++ code (only the > > guest-agent on Win32 IIUC) will use the compiler default still. > > We also use it for the capstone disassembler and disas/libvixl. > > > We could consider also setting a suitable -std for CXXFLAGS too in future > > though... > > Shall I send a v3 with "-std=gnu++98" (which seems to be the only usable > option right now), or shall we wait until we really hit a problem with > the C++ code?
I'd have a slight preference for adding a C++ suitable -std now just to give us a more predictable build setup. I don't consider it a blocker though, hence my R-b on this v2 patch as it is now. 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 :|