diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2014-11-17 23:06:13 +0100 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2014-11-17 23:10:00 +0100 |
commit | 81e0cca7bbc99dbfda898a8aaab740ae121cf045 (patch) | |
tree | 7ee980226205173954792911af2d0d51686d5926 | |
parent | 67a22c6062fdaff39c27611d21cd5866661f8e15 (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-DEFINES | 3 | ||||
-rw-r--r-- | admin/ChangeLog | 4 | ||||
-rw-r--r-- | nt/ChangeLog | 10 | ||||
-rw-r--r-- | nt/addpm.c | 5 | ||||
-rw-r--r-- | nt/addsection.c | 2 | ||||
-rw-r--r-- | nt/inc/ms-w32.h | 16 | ||||
-rw-r--r-- | nt/preprep.c | 2 | ||||
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/w32.c | 6 | ||||
-rw-r--r-- | src/w32term.c | 4 |
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). @@ -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 { |