Re: Building GDB 7.3.92 with MinGW

Eli Zaretskii
2012-01-13T11:23:07Z

> Date: Tue, 10 Jan 2012 10:46:24 -0800
> From: Doug Evans <dje@google.com>
> Cc: gdb-patches@sourceware.org
>
> On Tue, Jan 10, 2012 at 9:39 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> > I've successfully built the latest pretest of GDB 7.3.92 with MinGW on
> > MS-Windows. Â But I did encounter a few minor issues; this is my report
> > about them.
> >
> > 1. Compilation warning:
> >
> > Â  Â  gcc -O2 -gdwarf-2 -g3 -D__USE_MINGW_ACCESS Â  -I. -I. -I./common -I./config -DLOCALEDIR="\"/d/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./../intl -I./gnulib -Ignulib Â  Â -I/d/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wno-format Â -c -o utils.o -MT utils.o -MMD -MP -MF .deps/utils.Tpo utils.c
> > Â  Â  In file included from gdb_curses.h:30,
> > Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â from utils.c:68:
> > Â  Â  d:/usr/include/curses.h:153:1: warning: "MOUSE_MOVED" redefined
> > Â  Â  In file included from d:/usr/include/windows.h:49,
> > Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â from d:/usr/include/winsock2.h:22,
> > Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â from serial.h:24,
> > Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â from utils.c:48:
> > Â  Â  d:/usr/include/wincon.h:58:1: warning: this is the location of the previous definition
> >
> > Â Any objections to the following patch? Â (If approved, I will add a
> > Â comment explaining the problem on Windows which requires this.)
> >
> > Â  Â  --- gdb/gdb_curses.h~0 Â  Â  2012-01-06 06:43:14.000000000 +0200
> > Â  Â  +++ gdb/gdb_curses.h Â  Â  Â  2012-01-10 13:21:10.626119900 +0200
> > Â  Â  @@ -27,6 +27,9 @@
> > Â  Â  Â #elif defined (HAVE_CURSESX_H)
> > Â  Â  Â #include <cursesX.h>
> > Â  Â  Â #elif defined (HAVE_CURSES_H)
> > Â  Â  +#if defined(__MINGW32__) && defined(MOUSE_MOVED)
> > Â  Â  +#undef MOUSE_MOVED
> > Â  Â  +#endif
> > Â  Â  Â #include <curses.h>
> > Â  Â  Â #endif
>
> This is ok with me but remove the "&& defined(MOUSE_MOVED)".
> And one space after defined in "defined(__MINGW32__)".

Thanks. Here's what I committed, trunk and branch:

Avoid compiler warnings in gdb_curses.h on MinGW.

See http://sourceware.org/ml/gdb-patches/2012-01/msg00298.html
for more details about the problem.

gdb/gdb_curses.h (MOUSE_MOVED) [__MINGW32__]: Undefine before
including curses.h.

Index: gdb/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.13735
retrieving revision 1.13736
diff -u -r1.13735 -r1.13736
--- gdb/ChangeLog 12 Jan 2012 23:38:46 -0000 1.13735
+++ gdb/ChangeLog 13 Jan 2012 10:44:35 -0000 1.13736
@@ -1,3 +1,8 @@
+2012-01-13 Eli Zaretskii <eliz@gnu.org>
+
+ * gdb_curses.h (MOUSE_MOVED) [__MINGW32__]: Undefine before
+ including curses.h.
+
2012-01-12 Jan Kratochvil <jan.kratochvil@redhat.com>

* configure: Regenerate.

Index: gdb/gdb_curses.h
===================================================================
RCS file: /cvs/src/src/gdb/gdb_curses.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- gdb/gdb_curses.h 4 Jan 2012 08:17:02 -0000 1.14
+++ gdb/gdb_curses.h 13 Jan 2012 10:44:35 -0000 1.15
@@ -27,6 +27,14 @@
#elif defined (HAVE_CURSESX_H)
#include <cursesX.h>
#elif defined (HAVE_CURSES_H)
+#ifdef __MINGW32__
+/* Windows API headers, included e.g. by serial.h, define MOUSE_MOVED,
+ and so does PDCurses's curses.h, but for an entirely different
+ purpose. Since we don't use the Windows semantics of MOUSE_MOVED
+ anywhere, avoid compiler warnings by undefining MOUSE_MOVED before
+ including curses.h. */
+#undef MOUSE_MOVED
+#endif
#include <curses.h>
#endif