Merge pull request #13963 from Dotnet-GitSync-Bot/mirror-merge-10135517
[mono-project.git] / winconfig.h
blob7954aa84b3f94112f4adae64e882a04820012984
1 #pragma once
3 #ifdef _MSC_VER
5 /* Building Mono runtime under MSVC uses this template for it's config.h since autogen.sh can't */
6 /* generate a config.h that is suitable for MSVC builds. The below template will still get */
7 /* some dynamic configuration from autogen.sh config.h, if one exists. */
8 #include <msvc/msvc-win32-support.h>
9 #include <msvc/msvc-disabled-warnings.h>
11 #ifdef HAVE_BOEHM_GC
12 /* Only used when building using Boehm GC and only supported on x86 builds */
13 #define DEFAULT_GC_NAME "Included Boehm (with typed GC)"
14 #endif
16 /* Disable runtime state dumping */
17 #define DISABLE_CRASH_REPORTING 1
19 /* String of disabled features */
20 #define DISABLED_FEATURES "none"
22 /* Disables the IO portability layer */
23 #define DISABLE_PORTABILITY 1
25 /* DISABLE_DEFINES picked up from cygconfig.h, if available */
26 /* @DISABLE_DEFINES@ */
28 /* No DISABLE_DEFINES below this point */
30 /* Some VES is available at runtime */
31 #define ENABLE_ILGEN 1
33 /* Optional ENABLE_DEFINES */
34 /* @ENABLE_DEFINES@ */
36 /* No ENABLE_DEFINES below this point */
38 /* Have access */
39 #define HAVE_ACCESS 1
41 /* Define to 1 if you have the `system' function. */
42 #if HAVE_WINAPI_FAMILY_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
43 #define HAVE_SYSTEM 1
44 #endif
46 /* Define to 1 if you have the <complex.h> header file. */
47 #define HAVE_COMPLEX_H 1
49 #if defined(HAVE_SGEN_GC) && !defined(HAVE_CONC_GC_AS_DEFAULT)
50 /* Defaults to concurrent GC */
51 #define HAVE_CONC_GC_AS_DEFAULT 1
52 #endif
54 /* Have /dev/random */
55 #define HAVE_CRYPT_RNG 1
57 /* Define to 1 if you have the declaration of `InterlockedAdd',
58 and to 0 if you don't. */
59 #define HAVE_DECL_INTERLOCKEDADD 1
61 /* Define to 1 if you have the declaration of `InterlockedAdd64',
62 and to 0 if you don't. */
63 #define HAVE_DECL_INTERLOCKEDADD64 1
65 /* Define to 1 if you have the declaration of `InterlockedCompareExchange64',
66 and to 0 if you don't. */
67 #define HAVE_DECL_INTERLOCKEDCOMPAREEXCHANGE64 1
69 /* Define to 1 if you have the declaration of `InterlockedDecrement64',
70 and to 0 if you don't. */
71 #define HAVE_DECL_INTERLOCKEDDECREMENT64 1
73 /* Define to 1 if you have the declaration of `InterlockedExchange64',
74 and to 0 if you don't. */
75 #define HAVE_DECL_INTERLOCKEDEXCHANGE64 1
77 /* Define to 1 if you have the declaration of `InterlockedIncrement64',
78 and to 0 if you don't. */
79 #define HAVE_DECL_INTERLOCKEDINCREMENT64 1
81 /* Define to 1 if you have the declaration of `__readfsdword',
82 and to 0 if you don't. */
83 #define HAVE_DECL___READFSDWORD 1
85 /* Define to 1 if you have the `getaddrinfo' function. */
86 #define HAVE_GETADDRINFO 1
88 /* Define to 1 if you have the `getnameinfo' function. */
89 #define HAVE_GETNAMEINFO 1
91 /* Define to 1 if you have the `getprotobyname' function. */
92 #define HAVE_GETPROTOBYNAME 1
94 /* Define to 1 if you have the `GetProcessId' function. */
95 #define HAVE_GETPROCESSID 1
97 /* Have inet_ntop */
98 #define HAVE_INET_NTOP 1
100 /* Define to 1 if you have the `inet_pton' function. */
101 #define HAVE_INET_PTON 1
103 /* Define to 1 if you have the <inttypes.h> header file. */
104 #define HAVE_INTTYPES_H 1
106 /* Define to 1 if you have the <memory.h> header file. */
107 #define HAVE_MEMORY_H 1
109 #if defined(HAVE_SGEN_GC) && !defined(HAVE_MOVING_COLLECTOR)
110 /* Moving collector */
111 #define HAVE_MOVING_COLLECTOR 1
112 #endif
114 /* Define to 1 if you have the `signal' function. */
115 #define HAVE_SIGNAL 1
117 /* Define to 1 if you have the <signal.h> header file. */
118 #define HAVE_SIGNAL_H 1
120 /* Define to 1 if you have the <stdint.h> header file. */
121 #define HAVE_STDINT_H 1
123 /* Define to 1 if you have the <stdlib.h> header file. */
124 #define HAVE_STDLIB_H 1
126 /* Define to 1 if you have the <strings.h> header file. */
127 #define HAVE_STRINGS_H 1
129 /* Define to 1 if you have the <string.h> header file. */
130 #define HAVE_STRING_H 1
132 /* Define to 1 if you have the `strtok_r' function. */
133 #define HAVE_STRTOK_R 1
135 /* Have struct ip_mreq */
136 #define HAVE_STRUCT_IP_MREQ 1
138 /* Define to 1 if the system has the type `struct sockaddr_in6'. */
139 #define HAVE_STRUCT_SOCKADDR_IN6 1
141 /* Define to 1 if you have the <sys/stat.h> header file. */
142 #define HAVE_SYS_STAT_H 1
144 /* Define to 1 if you have the <sys/types.h> header file. */
145 #define HAVE_SYS_TYPES_H 1
147 /* Define to 1 if you have the <sys/utime.h> header file. */
148 #define HAVE_SYS_UTIME_H 1
150 /* Define to 1 if you have the <wchar.h> header file. */
151 #define HAVE_WCHAR_H 1
153 /* Define to 1 if you have the <winternl.h> header file. */
154 #define HAVE_WINTERNL_H 1
156 #if defined(HAVE_SGEN_GC) && !defined(HAVE_WRITE_BARRIERS)
157 #define HAVE_WRITE_BARRIERS
158 #endif
160 /* Optional HAVE_DEFINES */
161 /* @HAVE_DEFINES@ */
163 /* No HAVE_DEFINES below this point */
165 /* This platform does not support symlinks */
166 #define HOST_NO_SYMLINKS 1
168 /* Host Platform is Win32 */
169 #define HOST_WIN32 1
171 /* The architecture this is running on */
172 #if defined(_M_IA64)
173 #define MONO_ARCHITECTURE "ia64"
174 #elif defined(_M_AMD64)
175 #define MONO_ARCHITECTURE "amd64"
176 #elif defined(_M_IX86)
177 #define MONO_ARCHITECTURE "x86"
178 #else
179 #error Unknown architecture
180 #endif
182 /* Version of the corlib-runtime interface */
183 #define MONO_CORLIB_VERSION "#MONO_CORLIB_VERSION#"
185 /* Have __thread keyword */
186 #define MONO_KEYWORD_THREAD __declspec (thread)
188 /* Length of zero length arrays */
189 #define MONO_ZERO_LEN_ARRAY 1
191 /* Name of /dev/random */
192 #define NAME_DEV_RANDOM ""
194 /* Name of package */
195 #define PACKAGE "mono"
197 /* Define to the address where bug reports for this package should be sent. */
198 #define PACKAGE_BUGREPORT "https://github.com/mono/mono/issues/new"
200 /* Define to the full name of this package. */
201 #define PACKAGE_NAME "mono"
203 /* Define to the full name and version of this package. */
204 #define PACKAGE_STRING "mono #MONO_VERSION#"
206 /* Define to the one symbol short name of this package. */
207 #define PACKAGE_TARNAME "mono"
209 /* Define to the home page for this package. */
210 #define PACKAGE_URL ""
212 /* Define to the version of this package. */
213 #define PACKAGE_VERSION "#MONO_VERSION#"
215 /* The size of `int', as computed by sizeof. */
216 #define SIZEOF_INT 4
218 /* The size of `long', as computed by sizeof. */
219 #define SIZEOF_LONG 4
221 /* The size of `long long', as computed by sizeof. */
222 #define SIZEOF_LONG_LONG 8
224 /* size of target machine integer registers */
225 #ifdef _WIN64
226 #define SIZEOF_REGISTER 8
227 #else
228 #define SIZEOF_REGISTER 4
229 #endif
231 /* The size of `void *', as computed by sizeof. */
232 #ifdef _WIN64
233 #define SIZEOF_VOID_P 8
234 #else
235 #define SIZEOF_VOID_P 4
236 #endif
238 /* Define to 1 if you have the ANSI C header files. */
239 #define STDC_HEADERS 1
241 #ifdef _WIN64
242 #define TARGET_AMD64 1
243 #define HOST_AMD64 1
244 #else
245 #define TARGET_X86 1
246 #define HOST_X86 1
247 #endif
249 /* byte order of target */
250 #define TARGET_BYTE_ORDER G_BYTE_ORDER
252 /* wordsize of target */
253 #define TARGET_SIZEOF_VOID_P SIZEOF_VOID_P
255 /* Platform is Win32 */
256 #define TARGET_WIN32 1
258 /* Version number of package */
259 #define VERSION "#MONO_VERSION#"
261 #else
263 /* Not building under MSVC, use autogen.sh generated config.h */
264 #include "cygconfig.h"
266 #endif
268 #if defined(ENABLE_LLVM) && defined(HOST_WIN32) && defined(TARGET_WIN32) && (!defined(TARGET_AMD64) || !defined(_MSC_VER))
269 #error LLVM for host=Windows and target=Windows is only supported on x64 MSVC build.
270 #endif