Public bug reported: Compilation against GIT master fails at the following step:
CC qga/commands.o In file included from qga/commands.c:13: C:/Tempy-chan/qemu/include/qemu/osdep.h:97: error: "__USE_MINGW_ANSI_STDIO" redefined [-Werror] #define __USE_MINGW_ANSI_STDIO 1 In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/vadefs.h:9, from C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw_stdarg.h:14, from C:/msys64/mingw64/x86_64-w64-mingw32/include/stdarg.h:140, from C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.3.0/include/stdarg.h:1, from C:/Tempy-chan/qemu/include/qemu/osdep.h:88, from qga/commands.c:13: C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw.h:431: note: this is the location of the previous definition #define __USE_MINGW_ANSI_STDIO 0 /* was not defined so it should be 0 */ cc1.exe: all warnings being treated as errors make: *** [/c/Tempy-chan/qemu/rules.mak:69: qga/commands.o] Error 1 Passing --extra-cflags="-D__USE_MINGW_ANSI_STDIO" to configure resolves the error. Digging deeper in x86_64-w64-mingw32/include/_mingw.h, it looks like __USE_MINGW_ANSI_STDIO is only defined for _GNU_SOURCE in C++ compilation. With C only code it's ignored and doesn't define __USE_MINGW_ANSI_STDIO as expected: /* We are activating __USE_MINGW_ANSI_STDIO for various define indicators. Note that we enable it also for _GNU_SOURCE in C++, but not for C case. */ #if (defined (_POSIX) || defined (_POSIX_SOURCE) || defined (_POSIX_C_SOURCE) \ || defined (_ISOC99_SOURCE) \ || defined (_XOPEN_SOURCE) || defined (_XOPEN_SOURCE_EXTENDED) \ || (defined (_GNU_SOURCE) && defined (__cplusplus)) \ || defined (_SVID_SOURCE)) \ && !defined(__USE_MINGW_ANSI_STDIO) /* Enable __USE_MINGW_ANSI_STDIO if _POSIX defined * and If user did _not_ specify it explicitly... */ # define __USE_MINGW_ANSI_STDIO 1 #endif ** Affects: qemu Importance: Undecided Status: New ** Description changed: - Compilation against latest GIT version fails at the following step: + Compilation against GIT master fails at the following step: - CC qga/commands.o + CC qga/commands.o In file included from qga/commands.c:13: C:/Tempy-chan/qemu/include/qemu/osdep.h:97: error: "__USE_MINGW_ANSI_STDIO" redefined [-Werror] - #define __USE_MINGW_ANSI_STDIO 1 + #define __USE_MINGW_ANSI_STDIO 1 In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/vadefs.h:9, - from C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw_stdarg.h:14, - from C:/msys64/mingw64/x86_64-w64-mingw32/include/stdarg.h:140, - from C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.3.0/include/stdarg.h:1, - from C:/Tempy-chan/qemu/include/qemu/osdep.h:88, - from qga/commands.c:13: + from C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw_stdarg.h:14, + from C:/msys64/mingw64/x86_64-w64-mingw32/include/stdarg.h:140, + from C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.3.0/include/stdarg.h:1, + from C:/Tempy-chan/qemu/include/qemu/osdep.h:88, + from qga/commands.c:13: C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw.h:431: note: this is the location of the previous definition - #define __USE_MINGW_ANSI_STDIO 0 /* was not defined so it should be 0 */ + #define __USE_MINGW_ANSI_STDIO 0 /* was not defined so it should be 0 */ cc1.exe: all warnings being treated as errors make: *** [/c/Tempy-chan/qemu/rules.mak:69: qga/commands.o] Error 1 Passing --extra-cflags="-D__USE_MINGW_ANSI_STDIO" to configure resolves the error. Digging deeper in x86_64-w64-mingw32/include/_mingw.h, it looks like __USE_MINGW_ANSI_STDIO is only defined for _GNU_SOURCE in C++ compilation. With C only code it's ignored and doesn't define __USE_MINGW_ANSI_STDIO as expected: /* We are activating __USE_MINGW_ANSI_STDIO for various define indicators. - Note that we enable it also for _GNU_SOURCE in C++, but not for C case. */ + Note that we enable it also for _GNU_SOURCE in C++, but not for C case. */ #if (defined (_POSIX) || defined (_POSIX_SOURCE) || defined (_POSIX_C_SOURCE) \ - || defined (_ISOC99_SOURCE) \ - || defined (_XOPEN_SOURCE) || defined (_XOPEN_SOURCE_EXTENDED) \ - || (defined (_GNU_SOURCE) && defined (__cplusplus)) \ - || defined (_SVID_SOURCE)) \ - && !defined(__USE_MINGW_ANSI_STDIO) + || defined (_ISOC99_SOURCE) \ + || defined (_XOPEN_SOURCE) || defined (_XOPEN_SOURCE_EXTENDED) \ + || (defined (_GNU_SOURCE) && defined (__cplusplus)) \ + || defined (_SVID_SOURCE)) \ + && !defined(__USE_MINGW_ANSI_STDIO) /* Enable __USE_MINGW_ANSI_STDIO if _POSIX defined - * and If user did _not_ specify it explicitly... */ + * and If user did _not_ specify it explicitly... */ # define __USE_MINGW_ANSI_STDIO 1 #endif -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1826172 Title: Compilation on MSYS2/MinGW-w64 fails with error: "__USE_MINGW_ANSI_STDIO" redefined Status in QEMU: New Bug description: Compilation against GIT master fails at the following step: CC qga/commands.o In file included from qga/commands.c:13: C:/Tempy-chan/qemu/include/qemu/osdep.h:97: error: "__USE_MINGW_ANSI_STDIO" redefined [-Werror] #define __USE_MINGW_ANSI_STDIO 1 In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/vadefs.h:9, from C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw_stdarg.h:14, from C:/msys64/mingw64/x86_64-w64-mingw32/include/stdarg.h:140, from C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.3.0/include/stdarg.h:1, from C:/Tempy-chan/qemu/include/qemu/osdep.h:88, from qga/commands.c:13: C:/msys64/mingw64/x86_64-w64-mingw32/include/_mingw.h:431: note: this is the location of the previous definition #define __USE_MINGW_ANSI_STDIO 0 /* was not defined so it should be 0 */ cc1.exe: all warnings being treated as errors make: *** [/c/Tempy-chan/qemu/rules.mak:69: qga/commands.o] Error 1 Passing --extra-cflags="-D__USE_MINGW_ANSI_STDIO" to configure resolves the error. Digging deeper in x86_64-w64-mingw32/include/_mingw.h, it looks like __USE_MINGW_ANSI_STDIO is only defined for _GNU_SOURCE in C++ compilation. With C only code it's ignored and doesn't define __USE_MINGW_ANSI_STDIO as expected: /* We are activating __USE_MINGW_ANSI_STDIO for various define indicators. Note that we enable it also for _GNU_SOURCE in C++, but not for C case. */ #if (defined (_POSIX) || defined (_POSIX_SOURCE) || defined (_POSIX_C_SOURCE) \ || defined (_ISOC99_SOURCE) \ || defined (_XOPEN_SOURCE) || defined (_XOPEN_SOURCE_EXTENDED) \ || (defined (_GNU_SOURCE) && defined (__cplusplus)) \ || defined (_SVID_SOURCE)) \ && !defined(__USE_MINGW_ANSI_STDIO) /* Enable __USE_MINGW_ANSI_STDIO if _POSIX defined * and If user did _not_ specify it explicitly... */ # define __USE_MINGW_ANSI_STDIO 1 #endif To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1826172/+subscriptions