Message ID | 20161119185318.10564-1-sw@weilnetz.de |
---|---|
State | New |
Headers | show |
Stefan Weil, on Sat 19 Nov 2016 19:53:18 +0100, wrote: > 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 <sw@weilnetz.de> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> > --- > 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 > >
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>
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 <sw@weilnetz.de> --- include/ui/console.h | 3 +++ ui/curses.c | 1 - 2 files changed, 3 insertions(+), 1 deletion(-)