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.
This commit is contained in:
Oscar Fuentes 2014-11-17 23:06:13 +01:00
parent 67a22c6062
commit 81e0cca7bb
10 changed files with 44 additions and 14 deletions

View 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

View 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.

View 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.

View 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. */

View 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

View 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

View 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

View 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).

View file

@ -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

View 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
{