Commit 81e0cca7 authored by Oscar Fuentes's avatar Oscar Fuentes
Browse files

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.
parent 67a22c60
...@@ -19,8 +19,9 @@ __MSDOS__ Ditto. ...@@ -19,8 +19,9 @@ __MSDOS__ Ditto.
__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c. __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. DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
WINDOWSNT Compiling the native MS-Windows (W32) 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. _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). DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
SOLARIS2 SOLARIS2
USG USG
......
2014-11-17 Oscar Fuentes <ofv@wanadoo.es>
* admin/CPP-DEFINES: Mention MINGW_W64.
2014-11-15 Glenn Morris <rgm@gnu.org> 2014-11-15 Glenn Morris <rgm@gnu.org>
* update_autogen: Auto-detect VCS in use. * update_autogen: Auto-detect VCS in use.
......
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> 2014-10-31 Eric S. Raymond <esr@thyrsus.com>
* Neutralize language specific to a repository type. * Neutralize language specific to a repository type.
......
...@@ -38,9 +38,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -38,9 +38,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <stdio.h> #include <stdio.h>
#include <malloc.h> #include <malloc.h>
/* MinGW64 defines _W64 and barfs if _WIN32_IE is defined to anything /* MinGW64 barfs if _WIN32_IE is defined to anything below 0x500. */
below 0x500. */ #ifndef MINGW_W64
#ifndef _W64
#define _WIN32_IE 0x400 #define _WIN32_IE 0x400
#endif #endif
/* Request C Object macros for COM interfaces. */ /* Request C Object macros for COM interfaces. */
......
...@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ...@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>
#include <time.h> #include <time.h>
#if defined(__GNUC__) && !defined(_W64) #if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION #define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT #define _ANONYMOUS_STRUCT
#endif #endif
......
...@@ -26,6 +26,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -26,6 +26,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <mingw_time.h> #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 */ /* #undef const */
/* Number of chars of output in the buffer of a stdio stream. */ /* Number of chars of output in the buffer of a stdio stream. */
...@@ -139,7 +149,7 @@ extern char *getenv (); ...@@ -139,7 +149,7 @@ extern char *getenv ();
versions we still support. MinGW64 defines this to a higher value versions we still support. MinGW64 defines this to a higher value
in its system headers, and is not really compatible with values in its system headers, and is not really compatible with values
lower than 0x0500, so leave it alone. */ lower than 0x0500, so leave it alone. */
#ifndef _W64 #ifndef MINGW_W64
# define _WIN32_WINNT 0x0400 # define _WIN32_WINNT 0x0400
#endif #endif
...@@ -165,7 +175,7 @@ extern char *getenv (); ...@@ -165,7 +175,7 @@ extern char *getenv ();
#ifdef emacs #ifdef emacs
#ifdef _W64 #ifdef MINGW_W64
/* MinGW64 specific stuff. */ /* MinGW64 specific stuff. */
/* Make sure 'struct timespec' and 'struct timezone' are defined. */ /* Make sure 'struct timespec' and 'struct timezone' are defined. */
#include <sys/types.h> #include <sys/types.h>
...@@ -368,7 +378,7 @@ typedef int sigset_t; ...@@ -368,7 +378,7 @@ typedef int sigset_t;
typedef int ssize_t; typedef int ssize_t;
#endif #endif
#ifdef _W64 /* MinGW64 */ #ifdef MINGW_W64
#ifndef _POSIX #ifndef _POSIX
typedef _sigset_t sigset_t; typedef _sigset_t sigset_t;
#endif #endif
......
...@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ...@@ -25,7 +25,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>
#include <time.h> #include <time.h>
#if defined(__GNUC__) && !defined(_W64) #if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION #define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT #define _ANONYMOUS_STRUCT
#endif #endif
......
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> 2014-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
* frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003). * 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/>. */ ...@@ -72,8 +72,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <pwd.h> #include <pwd.h>
#include <grp.h> #include <grp.h>
/* MinGW64 (_W64) defines these in its _mingw.h. */ /* MinGW64 defines these in its _mingw.h. */
#if defined(__GNUC__) && !defined(_W64) #if defined(__GNUC__) && !defined(MINGW_W64)
#define _ANONYMOUS_UNION #define _ANONYMOUS_UNION
#define _ANONYMOUS_STRUCT #define _ANONYMOUS_STRUCT
#endif #endif
...@@ -149,7 +149,7 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX { ...@@ -149,7 +149,7 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX {
#define SDDL_REVISION_1 1 #define SDDL_REVISION_1 1
#endif /* SDDL_REVISION_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 /* MSVC and MinGW64 don't provide the definition of
REPARSE_DATA_BUFFER and the associated macros, except on ntifs.h, REPARSE_DATA_BUFFER and the associated macros, except on ntifs.h,
which cannot be included because it triggers conflicts with other which cannot be included because it triggers conflicts with other
......
...@@ -100,10 +100,10 @@ extern Cursor w32_load_cursor (LPCTSTR name); ...@@ -100,10 +100,10 @@ extern Cursor w32_load_cursor (LPCTSTR name);
struct w32_display_info one_w32_display_info; struct w32_display_info one_w32_display_info;
struct w32_display_info *x_display_list; 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 /* Pre Windows 2000, this was not available, but define it here so
that Emacs compiled on such a platform will run on newer versions. 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 typedef struct tagWCRANGE
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment