Re: Fix compilation using mingw.org's MinGW

Eli Zaretskii
2019-04-28T14:33:41Z

> Cc: gdb-patches@sourceware.org
> From: Pedro Alves <palves@redhat.com>
> Date: Fri, 19 Apr 2019 12:33:37 +0100
>
> > I will try doing this in common-defs.h, but for the branch, we could
> > set _WIN32_WINNT only in windows-nat.c, as that's the only file that
> > currently cares, which should be safer. WDYT?
>
> Sounds good to me.

Below please find 2 patches: the first one for the 8.3 branch, the
second one for master. OK to commit (after writing ChangeLog
entries)?

--- gdb/windows-nat.c~0 2019-03-27 00:52:05.000000000 +0200
+++ gdb/windows-nat.c 2019-04-28 11:00:38.415049400 +0300
@@ -34,6 +34,15 @@
#include <signal.h>
#include <sys/types.h>
#include <fcntl.h>
+/* We need at least the level of XP for CONSOLE_FONT_INFO. */
+#ifdef _WIN32_WINNT
+# if _WIN32_WINNT < 0x0501
+# undef _WIN32_WINNT
+# define _WIN32_WINNT 0x0501
+# endif
+#else
+# define _WIN32_WINNT 0x0501
+#endif
#include <windows.h>
#include <imagehlp.h>
#include <psapi.h>

--- gdb/common/common-defs.h~0 2019-03-27 00:52:05.000000000 +0200
+++ gdb/common/common-defs.h 2019-04-28 11:26:11.785455800 +0300
@@ -72,6 +72,20 @@
#define _FORTIFY_SOURCE 2
#endif

+/* We don't support Windows versions before XP, so we define
+ _WIN32_WINNT correspondingly to ensure the Windows API headers
+ expose the required symbols. */
+#ifdef __MINGW32__
+# ifdef _WIN32_WINNT
+# if _WIN32_WINNT < 0x0501
+# undef _WIN32_WINNT
+# define _WIN32_WINNT 0x0501
+# endif
+# else
+# define _WIN32_WINNT 0x0501
+# endif
+#endif /* __MINGW32__ */
+
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>