emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] [emacs] 01/01: Define MINGW_W64 and use it instead of _W64


From: Oscar Fuentes
Subject: [Emacs-diffs] [emacs] 01/01: Define MINGW_W64 and use it instead of _W64
Date: Mon, 17 Nov 2014 22:10:36 +0000

branch: emacs-24
commit 81e0cca7bbc99dbfda898a8aaab740ae121cf045
Author: Oscar Fuentes <address@hidden>
Date:   Mon Nov 17 23:06:13 2014 +0100

    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.
---
 admin/CPP-DEFINES |    3 ++-
 admin/ChangeLog   |    4 ++++
 nt/ChangeLog      |   10 ++++++++++
 nt/addpm.c        |    5 ++---
 nt/addsection.c   |    2 +-
 nt/inc/ms-w32.h   |   16 +++++++++++++---
 nt/preprep.c      |    2 +-
 src/ChangeLog     |    6 ++++++
 src/w32.c         |    6 +++---
 src/w32term.c     |    4 ++--
 10 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 27d87dc..e475b42 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 72ce74b..0ec6d92 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-17  Oscar Fuentes  <address@hidden>
+
+       * admin/CPP-DEFINES: Mention MINGW_W64.
+
 2014-11-15  Glenn Morris  <address@hidden>
 
        * update_autogen: Auto-detect VCS in use.
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 5ffab4d..cb2f33f 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,13 @@
+2014-11-17  Oscar Fuentes  <address@hidden>
+
+       * 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  <address@hidden>
 
        * Neutralize language specific to a repository type.
diff --git a/nt/addpm.c b/nt/addpm.c
index 18057b5..f7cfba3 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 a897573..832066b 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 8f7c36a..1d45df7 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 fda937d..39a9b70 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 f9f3a0f..1f2a0c4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-17  Oscar Fuentes  <address@hidden>
+
+       * src/w32.c: Use MINGW_W64 instead of _W64.
+
+       * src/w32term.c: Likewise.
+
 2014-11-16  Stefan Monnier  <address@hidden>
 
        * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
diff --git a/src/w32.c b/src/w32.c
index aba0b5a..34f28d0 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 66cdbfa..41ab645 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
 {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]