2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
10 #define _INTEGRAL_MAX_BITS 64
14 #define MINGW64_VERSION 1.0
15 #define MINGW64_VERSION_MAJOR 1
16 #define MINGW64_VERSION_MINOR 0
17 #define MINGW64_VERSION_STATE "alpha"
28 /* These compilers do support __declspec */
29 # if !defined(__MINGW32__) && !defined(__MINGW64__) && !defined(__CYGWIN32__)
30 # define __declspec(x) __attribute__((x))
33 # define __attribute__(x) /* nothing */
36 #if defined (__GNUC__) && defined (__GNUC_MINOR__)
37 #define __MINGW_GNUC_PREREQ(major, minor) \
39 || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
41 #define __MINGW_GNUC_PREREQ(major, minor) 0
44 #if defined (_MSC_VER)
45 #define __MINGW_MSC_PREREQ(major, minor) ((major * 100 + minor * 10) >= _MSC_VER)
47 #define __MINGW_MSC_PREREQ(major, minor) 0
50 #define USE___UUIDOF 0
53 # define __CRT_INLINE inline
54 #elif defined(_MSC_VER)
55 # define __CRT_INLINE __inline
56 #elif defined(__GNUC__)
57 # if ( __MINGW_GNUC_PREREQ(4, 3) && __STDC_VERSION__ >= 199901L)
58 # define __CRT_INLINE extern inline __attribute__((__always_inline__,__gnu_inline__))
60 # define __CRT_INLINE extern __inline__ __attribute__((__always_inline__))
65 # define __UNUSED_PARAM(x)
68 # define __UNUSED_PARAM(x) x __attribute__ ((__unused__))
70 # define __UNUSED_PARAM(x) x
78 # define __unaligned __attribute((packed))
79 # elif defined(_MSC_VER) && !defined(_M_IA64) && !defined(_M_AMD64)
87 #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
88 #define __MINGW_ATTRIB_CONST __attribute__ ((__const__))
89 #elif __MINGW_MSC_PREREQ(12, 0)
90 #define __MINGW_ATTRIB_NORETURN __declspec(noreturn)
91 #define __MINGW_ATTRIB_CONST
93 #define __MINGW_ATTRIB_NORETURN
94 #define __MINGW_ATTRIB_CONST
97 #if __MINGW_GNUC_PREREQ (3, 0)
98 #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__))
99 #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__))
100 #elif __MINGW_MSC_PREREQ(14, 0)
101 #define __MINGW_ATTRIB_MALLOC __declspec(noalias) __declspec(restrict)
102 #define __MINGW_ATTRIB_PURE
104 #define __MINGW_ATTRIB_MALLOC
105 #define __MINGW_ATTRIB_PURE
108 /* Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
109 variadiac macro facility, because variadic macros cause syntax
110 errors with --traditional-cpp. */
111 #if __MINGW_GNUC_PREREQ (3, 3)
112 #define __MINGW_ATTRIB_NONNULL(arg) __attribute__ ((__nonnull__ (arg)))
114 #define __MINGW_ATTRIB_NONNULL(arg)
115 #endif /* GNUC >= 3.3 */
117 #if __MINGW_GNUC_PREREQ (3, 1)
118 #define __MINGW_ATTRIB_DEPRECATED __attribute__ ((__deprecated__))
119 #elif __MINGW_MSC_PREREQ(12, 0)
120 #define __MINGW_ATTRIB_DEPRECATED __declspec(deprecated)
122 #define __MINGW_ATTRIB_DEPRECATED
125 #if __MINGW_GNUC_PREREQ (3, 3)
126 #define __MINGW_NOTHROW __attribute__ ((__nothrow__))
127 #elif __MINGW_MSC_PREREQ(12, 0) && defined (__cplusplus)
128 #define __MINGW_NOTHROW __declspec(nothrow)
130 #define __MINGW_NOTHROW
133 /* TODO: Mark (almost) all CRT functions as __MINGW_NOTHROW. This will
134 allow GCC to optimize away some EH unwind code, at least in DW2 case. */
136 #ifndef __MSVCRT_VERSION__
137 /* High byte is the major version, low byte is the minor. */
138 # define __MSVCRT_VERSION__ 0x0700
142 //#define WINVER 0x0502
145 //#ifndef _WIN32_WINNT
146 //#define _WIN32_WINNT 0x502
151 #define __int16 short
153 #define __int64 long long
155 typedef int __int128
__attribute__ ((mode (TI
)));
159 # define __forceinline extern __inline __attribute((always_inline))
164 #define __nothrow __declspec(nothrow)
173 #undef USE_MINGW_SETJMP_TWO_ARGS
174 #define USE_MINGW_SETJMP_TWO_ARGS
177 /* Diable deprecation for now! */
178 #define _CRT_SECURE_NO_DEPRECATE
179 #define _CRT_SECURE_NO_DEPRECATE_CORE
181 #define _CRT_NONSTDC_NO_DEPRECATE
184 #define __crt_typefix(ctype)
187 #define _CRT_UNUSED(x) (void)x
190 #endif /* !_INC_MINGW */