Fix more incompatibilities between MinGW.org and MinGW64 headers
reported by Óscar Fuentes in
+ http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00733.html
http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00699.html
and in
http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00707.html.
* inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS) [_W64]: Define to 1.
For MinGW64, include sys/types.h and time.h.
+ (_WIN32_WINNT) [!_W64]: Don't define for MinGW64.
+
+ * inc/sys/stat.h (chmod): Remove _CRTIMP from prototype.
* inc/sys/time.h (struct timeval) [!_W64]: Guard definition with
_W64.
/* Prevent accidental use of features unavailable in older Windows
versions we still support. MinGW64 defines this to a higher value
- in its system headers, so define our override before including any
- system headers. */
-#define _WIN32_WINNT 0x0400
+ in its system headers, and is not really compatible with values
+ lower than 0x0500, so leave it alone. */
+#ifndef _W64
+# define _WIN32_WINNT 0x0400
+#endif
/* Make a leaner executable. */
#define WIN32_LEAN_AND_MEAN 1
int __cdecl __MINGW_NOTHROW lstat (const char*, struct stat*);
int __cdecl __MINGW_NOTHROW fstatat (int, char const *,
struct stat *, int);
-_CRTIMP int __cdecl __MINGW_NOTHROW chmod (const char*, int);
+int __cdecl __MINGW_NOTHROW chmod (const char*, int);
#endif /* INC_SYS_STAT_H_ */
2013-03-26 Eli Zaretskii <eliz@gnu.org>
+ * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
+ Define only for _WIN32_WINNT less than 0x0500.
+
Fix incompatibilities between MinGW.org and MinGW64 headers.
* w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
#include <pwd.h>
#include <grp.h>
-#ifdef __GNUC__
+/* MinGW64 (_W64) defines these in its _mingw.h. */
+#if defined(__GNUC__) && !defined(_W64)
#define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT
#endif
#ifndef _MSC_VER
#include <w32api.h>
#endif
+#if _WIN32_WINNT < 0x0500
#if !defined (__MINGW32__) || __W32API_MAJOR_VERSION < 3 || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 15)
/* This either is not in psapi.h or guarded by higher value of
_WIN32_WINNT than what we use. w32api supplied with MinGW 3.15
SIZE_T PrivateUsage;
} PROCESS_MEMORY_COUNTERS_EX,*PPROCESS_MEMORY_COUNTERS_EX;
#endif
+#endif
#include <winioctl.h>
#include <aclapi.h>