For builds with Mingw-w64 as it is included in Cygwin, there are two header files which define KEY_EVENT with different values.
This results in lots of compiler warnings like this one: CC vl.o In file included from /qemu/include/ui/console.h:340:0, from /qemu/vl.c:76: /usr/i686-w64-mingw32/sys-root/mingw/include/curses.h:1522:0: warning: "KEY_EVENT" redefined #define KEY_EVENT 0633 /* We were interrupted by an event */ In file included from /usr/share/mingw-w64/include/windows.h:74:0, from /usr/share/mingw-w64/include/winsock2.h:23, from /qemu/include/sysemu/os-win32.h:29, from /qemu/include/qemu/osdep.h:100, from /qemu/vl.c:24: /usr/share/mingw-w64/include/wincon.h:101:0: note: this is the location of the previous definition #define KEY_EVENT 0x1 QEMU only uses the KEY_EVENT macro from wincon.h. Therefore we can undefine the macro coming from curses.h. The explicit include statement for curses.h in ui/curses.c is not needed and was removed. Those two modifications fix the redefinition warnings. Signed-off-by: Stefan Weil <s...@weilnetz.de> --- include/ui/console.h | 3 +++ ui/curses.c | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/ui/console.h b/include/ui/console.h index e2589e2..e5ae506 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -337,7 +337,10 @@ static inline pixman_format_code_t surface_format(DisplaySurface *s) } #ifdef CONFIG_CURSES +/* KEY_EVENT is defined in wincon.h and in curses.h. Avoid redefinition. */ +#undef KEY_EVENT #include <curses.h> +#undef KEY_EVENT typedef chtype console_ch_t; extern chtype vga_to_curses[]; #else diff --git a/ui/curses.c b/ui/curses.c index 2e132a7..03cefdf 100644 --- a/ui/curses.c +++ b/ui/curses.c @@ -22,7 +22,6 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include <curses.h> #ifndef _WIN32 #include <sys/ioctl.h> -- 2.10.2