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? Thomas