summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2014-11-17 23:06:13 +0100
committerOscar Fuentes <ofv@wanadoo.es>2014-11-17 23:10:00 +0100
commit81e0cca7bbc99dbfda898a8aaab740ae121cf045 (patch)
tree7ee980226205173954792911af2d0d51686d5926
parent67a22c6062fdaff39c27611d21cd5866661f8e15 (diff)
Define MINGW_W64 and use it instead of _W64
... for detecting MinGW-w64. _W64 is not specific of MinGW-w64, it is defined for compatibility with MS VC++. * nt/inc/ms-w32.h: Define MINGW_W64. * admin/CPP-DEFINES: Mention MINGW_W64. * nt/addpm.c: Use it. * nt/addsection.c: Use it. * nt/preprep.c: Use it. * src/w32.c: Use MINGW_W64 instead of _W64 * src/w32term.c: Likewise.
-rw-r--r--admin/CPP-DEFINES3
-rw-r--r--admin/ChangeLog4
-rw-r--r--nt/ChangeLog10
-rw-r--r--nt/addpm.c5
-rw-r--r--nt/addsection.c2
-rw-r--r--nt/inc/ms-w32.h16
-rw-r--r--nt/preprep.c2
-rw-r--r--src/ChangeLog6
-rw-r--r--src/w32.c6
-rw-r--r--src/w32term.c4
10 files changed, 44 insertions, 14 deletions
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 27d87dcaa2..e475b42250 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -19,8 +19,9 @@ __MSDOS__ Ditto.
__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
WINDOWSNT Compiling the native MS-Windows (W32) port.
-__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
+__MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
_MSC_VER Compiling the W32 port with the Microsoft C compiler.
+MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC.
DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
SOLARIS2
USG
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 72ce74bd62..0ec6d920ad 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-17 Oscar Fuentes <ofv@wanadoo.es>
+
+ * admin/CPP-DEFINES: Mention MINGW_W64.
+
2014-11-15 Glenn Morris <rgm@gnu.org>
* update_autogen: Auto-detect VCS in use.
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 5ffab4d015..cb2f33f947 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,13 @@
+2014-11-17 Oscar Fuentes <ofv@wanadoo.es>
+
+ * inc/ms-w32.h: Define MINGW_W64.
+
+ * nt/addpm.c: Use it.
+
+ * nt/addsection.c: Use it.
+
+ * nt/preprep.c: Use it.
+
2014-10-31 Eric S. Raymond <esr@thyrsus.com>
* Neutralize language specific to a repository type.
diff --git a/nt/addpm.c b/nt/addpm.c
index 18057b58b4..f7cfba39d0 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -38,9 +38,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <malloc.h>
-/* MinGW64 defines _W64 and barfs if _WIN32_IE is defined to anything
- below 0x500. */
-#ifndef _W64
+/* MinGW64 barfs if _WIN32_IE is defined to anything below 0x500. */
+#ifndef MINGW_W64
#define _WIN32_IE 0x400
#endif
/* Request C Object macros for COM interfaces. */
diff --git a/nt/addsection.c b/nt/addsection.c
index a897573480..832066b68c 100644
--- a/nt/addsection.c
+++ b/nt/addsection.c
@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
-#if defined(__GNUC__) && !defined(_W64)
+#if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT
#endif
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index 8f7c36ab1e..1d45df743d 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -26,6 +26,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <mingw_time.h>
+/* MinGW-w64 gcc does not automotically define a macro for
+ differentiating it fom MinGW gcc. We need to test the presence of
+ __MINGW64_VERSION_MAJOR in _mingw.h: */
+#ifdef __MINGW32__
+# include <_mingw.h>
+# ifdef __MINGW64_VERSION_MAJOR
+# define MINGW_W64
+# endif
+#endif
+
/* #undef const */
/* Number of chars of output in the buffer of a stdio stream. */
@@ -139,7 +149,7 @@ extern char *getenv ();
versions we still support. MinGW64 defines this to a higher value
in its system headers, and is not really compatible with values
lower than 0x0500, so leave it alone. */
-#ifndef _W64
+#ifndef MINGW_W64
# define _WIN32_WINNT 0x0400
#endif
@@ -165,7 +175,7 @@ extern char *getenv ();
#ifdef emacs
-#ifdef _W64
+#ifdef MINGW_W64
/* MinGW64 specific stuff. */
/* Make sure 'struct timespec' and 'struct timezone' are defined. */
#include <sys/types.h>
@@ -368,7 +378,7 @@ typedef int sigset_t;
typedef int ssize_t;
#endif
-#ifdef _W64 /* MinGW64 */
+#ifdef MINGW_W64
#ifndef _POSIX
typedef _sigset_t sigset_t;
#endif
diff --git a/nt/preprep.c b/nt/preprep.c
index fda937df0e..39a9b70e95 100644
--- a/nt/preprep.c
+++ b/nt/preprep.c
@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
-#if defined(__GNUC__) && !defined(_W64)
+#if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT
#endif
diff --git a/src/ChangeLog b/src/ChangeLog
index f9f3a0f96b..1f2a0c4c9b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-17 Oscar Fuentes <ofv@wanadoo.es>
+
+ * src/w32.c: Use MINGW_W64 instead of _W64.
+
+ * src/w32term.c: Likewise.
+
2014-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
* frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
diff --git a/src/w32.c b/src/w32.c
index aba0b5a81f..34f28d01af 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -72,8 +72,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <pwd.h>
#include <grp.h>
-/* MinGW64 (_W64) defines these in its _mingw.h. */
-#if defined(__GNUC__) && !defined(_W64)
+/* MinGW64 defines these in its _mingw.h. */
+#if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT
#endif
@@ -149,7 +149,7 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX {
#define SDDL_REVISION_1 1
#endif /* SDDL_REVISION_1 */
-#if defined(_MSC_VER) || defined(_W64)
+#if defined(_MSC_VER) || defined(MINGW_W64)
/* MSVC and MinGW64 don't provide the definition of
REPARSE_DATA_BUFFER and the associated macros, except on ntifs.h,
which cannot be included because it triggers conflicts with other
diff --git a/src/w32term.c b/src/w32term.c
index 66cdbfaecb..41ab645f31 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -100,10 +100,10 @@ extern Cursor w32_load_cursor (LPCTSTR name);
struct w32_display_info one_w32_display_info;
struct w32_display_info *x_display_list;
-#if _WIN32_WINNT < 0x0500 && !defined(_W64)
+#if _WIN32_WINNT < 0x0500 && !defined(MINGW_W64)
/* Pre Windows 2000, this was not available, but define it here so
that Emacs compiled on such a platform will run on newer versions.
- MinGW64 (_W64) defines these unconditionally, so avoid redefining. */
+ MinGW64 defines these unconditionally, so avoid redefining. */
typedef struct tagWCRANGE
{