]> code.delx.au - gnu-emacs/commitdiff
Define MINGW_W64 and use it instead of _W64
authorOscar Fuentes <ofv@wanadoo.es>
Mon, 17 Nov 2014 22:06:13 +0000 (23:06 +0100)
committerOscar Fuentes <ofv@wanadoo.es>
Mon, 17 Nov 2014 22:10:00 +0000 (23:10 +0100)
... 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.

admin/CPP-DEFINES
admin/ChangeLog
nt/ChangeLog
nt/addpm.c
nt/addsection.c
nt/inc/ms-w32.h
nt/preprep.c
src/ChangeLog
src/w32.c
src/w32term.c

index 27d87dcaa2aaaa920b1e83a887fc9ee71f692643..e475b42250035f535514e0e078fbab1fc42db1d8 100644 (file)
@@ -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
index 72ce74bd629c47ced7c52637cd032e0318f1c54c..0ec6d920ad0806e15ce0dfda720dce7150c0ba48 100644 (file)
@@ -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.
index 5ffab4d0151310634b1f62fd2c14fbf6225c77e2..cb2f33f947b9bff4206743ac042b3a4a8962fbb9 100644 (file)
@@ -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.
index 18057b58b49a4a4252f755a46cd4d2b375ca6e45..f7cfba39d08457694baa5eeba5a62cee48b7a37a 100644 (file)
@@ -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.  */
index a897573480dbfdcd649fb7a094c18451cec3d1cd..832066b68c01d7451c4ff702d257b530d79f10c7 100644 (file)
@@ -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
index 8f7c36ab1eef70daeae05cfae00bf8cc59bb152d..1d45df743de8f5b26c3069c55496a2aba3c9382a 100644 (file)
@@ -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
index fda937df0e0251b319a493ab26564809733c8e46..39a9b70e95354fa10b6803eec7bb69d18ce6e833 100644 (file)
@@ -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
index f9f3a0f96b7b6f1325a9caa2c5f4ff216fd90d71..1f2a0c4c9b8e3518a3025d766287de9c64864f2e 100644 (file)
@@ -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).
index aba0b5a81f9a04c4c08f86a44aa8ca850af200d9..34f28d01af362f7bd5f7a134692bb437f8344a0e 100644 (file)
--- 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
index 66cdbfaecb01b4035f07de2251a90aee324c4dd6..41ab645f31d0d3aea27b897bb8df0f053440f5e8 100644 (file)
@@ -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
 {