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 #ifndef _USE_32BIT_TIME_T
15 #define _USE_32BIT_TIME_T
21 #define MINGW64_VERSION 1.0
22 #define MINGW64_VERSION_MAJOR 1
23 #define MINGW64_VERSION_MINOR 0
24 #define MINGW64_VERSION_STATE "alpha"
35 /* These compilers do support __declspec */
36 # if !defined(__MINGW32__) && !defined(__MINGW64__) && !defined(__CYGWIN32__)
37 # define __declspec(x) __attribute__((x))
40 # define __attribute__(x) /* nothing */
43 #if defined (__GNUC__) && defined (__GNUC_MINOR__)
44 #define __MINGW_GNUC_PREREQ(major, minor) \
46 || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
48 #define __MINGW_GNUC_PREREQ(major, minor) 0
51 #if !defined (_MSC_VER)
52 #define __MINGW_MSC_PREREQ(major, minor) 0
55 #define USE___UUIDOF 0
58 # define __CRT_INLINE inline
60 # if ( __MINGW_GNUC_PREREQ(4, 3) && __STDC_VERSION__ >= 199901L)
61 # define __CRT_INLINE extern inline __attribute__((__gnu_inline__))
63 # define __CRT_INLINE extern __inline__
68 # define __UNUSED_PARAM(x)
71 # define __UNUSED_PARAM(x) x __attribute__ ((__unused__))
73 # define __UNUSED_PARAM(x) x
81 # define __unaligned __attribute((packed))
83 # define __UNUSED_PARAM(x) x
88 #define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
89 #define __MINGW_ATTRIB_CONST __attribute__ ((__const__))
90 #elif __MINGW_MSC_PREREQ(12, 0)
91 #define __MINGW_ATTRIB_NORETURN __declspec(noreturn)
92 #define __MINGW_ATTRIB_CONST
94 #define __MINGW_ATTRIB_NORETURN
95 #define __MINGW_ATTRIB_CONST
98 #if __MINGW_GNUC_PREREQ (3, 0)
99 #define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__))
100 #define __MINGW_ATTRIB_PURE __attribute__ ((__pure__))
102 #define __MINGW_ATTRIB_MALLOC
103 #define __MINGW_ATTRIB_PURE
106 /* Attribute `nonnull' was valid as of gcc 3.3. We don't use GCC's
107 variadiac macro facility, because variadic macros cause syntax
108 errors with --traditional-cpp. */
109 #if __MINGW_GNUC_PREREQ (3, 3)
110 #define __MINGW_ATTRIB_NONNULL(arg) __attribute__ ((__nonnull__ (arg)))
112 #define __MINGW_ATTRIB_NONNULL(arg)
113 #endif /* GNUC >= 3.3 */
115 #if __MINGW_GNUC_PREREQ (3, 1)
116 #define __MINGW_ATTRIB_DEPRECATED __attribute__ ((__deprecated__))
117 #elif __MINGW_MSC_PREREQ(12, 0)
118 #define __MINGW_ATTRIB_DEPRECATED __declspec(deprecated)
120 #define __MINGW_ATTRIB_DEPRECATED
123 #if __MINGW_GNUC_PREREQ (3, 3)
124 #define __MINGW_NOTHROW __attribute__ ((__nothrow__))
125 #elif __MINGW_MSC_PREREQ(12, 0) && defined (__cplusplus)
126 #define __MINGW_NOTHROW __declspec(nothrow)
128 #define __MINGW_NOTHROW
131 /* TODO: Mark (almost) all CRT functions as __MINGW_NOTHROW. This will
132 allow GCC to optimize away some EH unwind code, at least in DW2 case. */
134 #ifndef __MSVCRT_VERSION__
135 /* High byte is the major version, low byte is the minor. */
136 # define __MSVCRT_VERSION__ 0x0700
140 //#define WINVER 0x0502
143 //#ifndef _WIN32_WINNT
144 //#define _WIN32_WINNT 0x502
149 #define __int16 short
151 #define __int64 long long
153 typedef int __int128
__attribute__ ((mode (TI
)));
157 # define __forceinline extern __inline __attribute((always_inline))
162 #define __nothrow __declspec(nothrow)
171 #undef USE_MINGW_SETJMP_TWO_ARGS
172 #define USE_MINGW_SETJMP_TWO_ARGS
179 #ifndef __GNUC_VA_LIST
180 #define __GNUC_VA_LIST
181 typedef __builtin_va_list __gnuc_va_list
;
184 #ifndef _VA_LIST_DEFINED
185 #define _VA_LIST_DEFINED
186 typedef __gnuc_va_list
va_list;
189 /* Diable deprecation for now! */
190 #define _CRT_SECURE_NO_DEPRECATE
191 #define _CRT_SECURE_NO_DEPRECATE_CORE
193 #define _CRT_NONSTDC_NO_DEPRECATE
196 #if (defined(_MSC_VER) && __STDC__)// || !defined(__WINESRC__)
204 #define __crt_typefix(ctype)
207 #define _CRT_UNUSED(x) (void)x
210 /* These are here for intrin.h */
211 #ifndef _SIZE_T_DEFINED
212 #define _SIZE_T_DEFINED
214 typedef unsigned __int64
size_t;
216 typedef unsigned int size_t;
220 #ifndef _UINTPTR_T_DEFINED
221 #define _UINTPTR_T_DEFINED
223 typedef unsigned __int64
uintptr_t;
225 typedef unsigned int uintptr_t;
229 #include <mingw32/intrin.h>
231 #endif /* !_INC_MINGW */