qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-2.8] curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT)
@ 2016-11-19 18:53 Stefan Weil
  2016-11-19 20:04 ` Samuel Thibault
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Weil @ 2016-11-19 18:53 UTC (permalink / raw)
  To: QEMU Developer; +Cc: QEMU Trivial, Gerd Hoffmann, Stefan Weil

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(-)

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

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH for-2.8] curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT)
  2016-11-19 18:53 [Qemu-devel] [PATCH for-2.8] curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT) Stefan Weil
@ 2016-11-19 20:04 ` Samuel Thibault
  0 siblings, 0 replies; 2+ messages in thread
From: Samuel Thibault @ 2016-11-19 20:04 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developer, QEMU Trivial, Gerd Hoffmann

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

-- 
Samuel
Now I know someone out there is going to claim, "Well then, UNIX is intuitive,
because you only need to learn 5000 commands, and then everything else follows
from that! Har har har!"
(Andy Bates in comp.os.linux.misc, on "intuitive interfaces", slightly
defending Macs.)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-11-19 20:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-19 18:53 [Qemu-devel] [PATCH for-2.8] curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT) Stefan Weil
2016-11-19 20:04 ` Samuel Thibault

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).