[sgen] Fix heavy binary protocol build (#17037)
[mono-project.git] / winconfig.h
blobef6317ff1379a78e514d4fca7019f660d71ff9e8
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 /* Start configure DISABLE_DEFINES picked up from cygconfig.h or other external source, if available */
26 /* @DISABLE_DEFINES@ */
27 /* End configure DISABLE_DEFINES picked up from cygconfig.h or other external source, if available */
29 /* No DISABLE_DEFINES below this point */
31 /* Some VES is available at runtime */
32 #define ENABLE_ILGEN 1
34 /* Start configure ENABLE_DEFINES picked up from cygconfig.h or other external source, if available */
35 /* @ENABLE_DEFINES@ */
36 /* End configure ENABLE_DEFINES picked up from cygconfig.h or other external source, if available */
38 #if defined(ENABLE_HYBRID_SUSPEND)
39 /* Windows MSVC builds defaults to preemptive suspend. Disable ENABLE_HYBRID_SUSPEND defines. */
40 #undef ENABLE_HYBRID_SUSPEND
41 #endif
43 /* No ENABLE_DEFINES below this point */
45 /* Have access */
46 #define HAVE_ACCESS 1
48 /* Define to 1 if you have the `system' function. */
49 #if HAVE_WINAPI_FAMILY_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT)
50 #define HAVE_SYSTEM 1
51 #endif
53 /* Define to 1 if you have the <complex.h> header file. */
54 #define HAVE_COMPLEX_H 1
56 #if defined(HAVE_SGEN_GC) && !defined(HAVE_CONC_GC_AS_DEFAULT)
57 /* Defaults to concurrent GC */
58 #define HAVE_CONC_GC_AS_DEFAULT 1
59 #endif
61 /* Have /dev/random */
62 #define HAVE_CRYPT_RNG 1
64 /* Define to 1 if you have the `getaddrinfo' function. */
65 #define HAVE_GETADDRINFO 1
67 /* Define to 1 if you have the `getnameinfo' function. */
68 #define HAVE_GETNAMEINFO 1
70 /* Define to 1 if you have the `getprotobyname' function. */
71 #define HAVE_GETPROTOBYNAME 1
73 /* Have inet_ntop */
74 #define HAVE_INET_NTOP 1
76 /* Define to 1 if you have the `inet_pton' function. */
77 #define HAVE_INET_PTON 1
79 /* Define to 1 if you have the <inttypes.h> header file. */
80 #define HAVE_INTTYPES_H 1
82 /* Define to 1 if you have the <memory.h> header file. */
83 #define HAVE_MEMORY_H 1
85 #if defined(HAVE_SGEN_GC) && !defined(HAVE_MOVING_COLLECTOR)
86 /* Moving collector */
87 #define HAVE_MOVING_COLLECTOR 1
88 #endif
90 /* Define to 1 if you have the `signal' function. */
91 #define HAVE_SIGNAL 1
93 /* Define to 1 if you have the <signal.h> header file. */
94 #define HAVE_SIGNAL_H 1
96 /* Define to 1 if you have the <stdint.h> header file. */
97 #define HAVE_STDINT_H 1
99 /* Define to 1 if you have the <stdlib.h> header file. */
100 #define HAVE_STDLIB_H 1
102 /* Define to 1 if you have the <strings.h> header file. */
103 #define HAVE_STRINGS_H 1
105 /* Define to 1 if you have the <string.h> header file. */
106 #define HAVE_STRING_H 1
108 /* Define to 1 if you have the `strtok_r' function. */
109 #define HAVE_STRTOK_R 1
111 /* Have struct ip_mreq */
112 #define HAVE_STRUCT_IP_MREQ 1
114 /* Define to 1 if the system has the type `struct sockaddr_in6'. */
115 #define HAVE_STRUCT_SOCKADDR_IN6 1
117 /* Define to 1 if you have the <sys/stat.h> header file. */
118 #define HAVE_SYS_STAT_H 1
120 /* Define to 1 if you have the <sys/types.h> header file. */
121 #define HAVE_SYS_TYPES_H 1
123 /* Define to 1 if you have the <sys/utime.h> header file. */
124 #define HAVE_SYS_UTIME_H 1
126 /* Define to 1 if you have the <wchar.h> header file. */
127 #define HAVE_WCHAR_H 1
129 /* Define to 1 if you have the <winternl.h> header file. */
130 #define HAVE_WINTERNL_H 1
132 #if defined(HAVE_SGEN_GC) && !defined(HAVE_WRITE_BARRIERS)
133 #define HAVE_WRITE_BARRIERS
134 #endif
136 /* Start configure HAVE_DEFINES picked up from cygconfig.h or other external source, if available */
137 /* @HAVE_DEFINES@ */
138 /* End configure HAVE_DEFINES picked up from cygconfig.h or other external source, if available */
140 /* No HAVE_DEFINES below this point */
142 /* This platform does not support symlinks */
143 #define HOST_NO_SYMLINKS 1
145 /* Host Platform is Win32 */
146 #define HOST_WIN32 1
148 /* The architecture this is running on */
149 #if defined(_M_IA64)
150 #define MONO_ARCHITECTURE "ia64"
151 #elif defined(_M_AMD64)
152 #define MONO_ARCHITECTURE "amd64"
153 #elif defined(_M_IX86)
154 #define MONO_ARCHITECTURE "x86"
155 #else
156 #error Unknown architecture
157 #endif
159 /* Version of the corlib-runtime interface */
160 #define MONO_CORLIB_VERSION "#MONO_CORLIB_VERSION#"
162 /* Have __thread keyword */
163 #define MONO_KEYWORD_THREAD __declspec (thread)
165 /* Length of zero length arrays */
166 #define MONO_ZERO_LEN_ARRAY 1
168 /* Name of /dev/random */
169 #define NAME_DEV_RANDOM ""
171 /* Name of package */
172 #define PACKAGE "mono"
174 /* Define to the address where bug reports for this package should be sent. */
175 #define PACKAGE_BUGREPORT "https://github.com/mono/mono/issues/new"
177 /* Define to the full name of this package. */
178 #define PACKAGE_NAME "mono"
180 /* Define to the full name and version of this package. */
181 #define PACKAGE_STRING "mono #MONO_VERSION#"
183 /* Define to the one symbol short name of this package. */
184 #define PACKAGE_TARNAME "mono"
186 /* Define to the home page for this package. */
187 #define PACKAGE_URL ""
189 /* Define to the version of this package. */
190 #define PACKAGE_VERSION "#MONO_VERSION#"
192 /* The size of `int', as computed by sizeof. */
193 #define SIZEOF_INT 4
195 /* The size of `long', as computed by sizeof. */
196 #define SIZEOF_LONG 4
198 /* The size of `long long', as computed by sizeof. */
199 #define SIZEOF_LONG_LONG 8
201 /* size of target machine integer registers */
202 #ifdef _WIN64
203 #define SIZEOF_REGISTER 8
204 #else
205 #define SIZEOF_REGISTER 4
206 #endif
208 /* The size of `void *', as computed by sizeof. */
209 #ifdef _WIN64
210 #define SIZEOF_VOID_P 8
211 #else
212 #define SIZEOF_VOID_P 4
213 #endif
215 /* Define to 1 if you have the ANSI C header files. */
216 #define STDC_HEADERS 1
218 #ifdef _WIN64
219 #define TARGET_AMD64 1
220 #define HOST_AMD64 1
221 #else
222 #define TARGET_X86 1
223 #define HOST_X86 1
224 #endif
226 /* byte order of target */
227 #define TARGET_BYTE_ORDER G_BYTE_ORDER
229 /* wordsize of target */
230 #define TARGET_SIZEOF_VOID_P SIZEOF_VOID_P
232 /* Platform is Win32 */
233 #define TARGET_WIN32 1
235 /* Version number of package */
236 #define VERSION "#MONO_VERSION#"
238 #else
240 /* Not building under MSVC, use autogen.sh generated config.h */
241 #include "cygconfig.h"
243 #endif
245 #if defined(ENABLE_LLVM) && defined(HOST_WIN32) && defined(TARGET_WIN32) && (!defined(TARGET_AMD64) || !defined(_MSC_VER))
246 #error LLVM for host=Windows and target=Windows is only supported on x64 MSVC build.
247 #endif