preproc: Fix sigsegv in find_cc
[nasm.git] / config / msvc.h
blob631652efb706a9a5ceb591fb579e645770690b0c
1 /* ----------------------------------------------------------------------- *
3 * Copyright 2016 The NASM Authors - All Rights Reserved
4 * See the file AUTHORS included with the NASM distribution for
5 * the specific copyright holders.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following
9 * conditions are met:
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 * ----------------------------------------------------------------------- */
35 * config/msvc.h
37 * Compiler definitions for Microsoft Visual C++;
38 * instead of config.h.in. See config.h.in for the
39 * variables which can be defined here.
41 * MSDN seems to have information back to Visual Studio 2003, so aim
42 * for compatibility that far back.
44 * Relevant _MSC_VER values:
45 * 1310 - Visual Studio 2003
46 * 1400 - Visual Studio 2005
47 * 1500 - Visual Studio 2008
48 * 1600 - Visual Studio 2010
49 * 1700 - Visual Studio 2012
50 * 1800 - Visual Studio 2013
51 * 1900 - Visual Studio 2015
52 * 1910 - Visual Studio 2017
55 #ifndef NASM_CONFIG_MSVC_H
56 #define NASM_CONFIG_MSVC_H
58 /* Define to 1 if you have the <fcntl.h> header file. */
59 #define HAVE_FCNTL_H 1
61 /* Define to 1 if you have the <inttypes.h> header file. */
62 #if _MSC_VER >= 1800
63 # define HAVE_INTTYPES_H 1
64 #endif
66 /* Define to 1 if you have the <io.h> header file. */
67 #define HAVE_IO_H 1
69 /* Define to 1 if you have the <stdlib.h> header file. */
70 #define HAVE_STDLIB_H 1
72 /* Define to 1 if you have the <string.h> header file. */
73 #define HAVE_STRING_H 1
75 /* Define to 1 if you have the <sys/stat.h> header file. */
76 #define HAVE_SYS_STAT_H 1
78 /* Define to 1 if you have the <sys/types.h> header file. */
79 #define HAVE_SYS_TYPES_H 1
81 /* Define to 1 if you have the `access' function. */
82 #define HAVE_ACCESS 1
83 #if _MSC_VER < 1400
84 # define access _access
85 #endif
87 /* Define to 1 if you have the `fileno' function. */
88 #define HAVE_FILENO 1
89 #if _MSC_VER < 1400
90 # define fileno _fileno
91 #endif
93 /* Define to 1 if you have the `snprintf' function. */
94 #define HAVE_SNPRINTF 1
95 #if _MSC_VER < 1900
96 # define snprintf _snprinf
97 #endif
99 /* Define to 1 if you have the `_chsize' function. */
100 #define HAVE__CHSIZE 1
102 /* Define to 1 if you have the `_chsize_s' function. */
103 #if _MSC_VER >= 1400
104 # define HAVE__CHSIZE_S 1
105 #endif
107 /* Define to 1 if you have the `_filelengthi64' function. */
108 #define HAVE__FILELENGTHI64 1
110 /* Define to 1 if you have the `_fseeki64' function. */
111 #define HAVE__FSEEKI64 1
113 /* Define to 1 if you have the `_fullpath' function. */
114 #define HAVE__FULLPATH 1
116 /* Define to 1 if the system has the type `struct _stati64'. */
117 #define HAVE_STRUCT__STATI64
119 /* Define to 1 if you have the `_stati64' function. */
120 #define HAVE__STATI64 1
122 /* Define to 1 if you have the `_fstati64' function. */
123 #define HAVE__FSTATI64 1
125 /* Define to 1 if stdbool.h conforms to C99. */
126 #if _MSC_VER >= 1800
127 # define HAVE_STDBOOL_H 1
128 #endif
130 /* Define to 1 if you have the `stricmp' function. */
131 #define HAVE_STRICMP 1
132 /* Define to 1 if you have the declaration of `stricmp', and to 0 if you
133 don't. */
134 #define HAVE_DECL_STRICMP 1
135 #if _MSC_VER < 1400
136 # define stricmp _stricmp
137 #endif
139 /* Define to 1 if you have the `strnicmp' function. */
140 #define HAVE_STRNICMP 1
141 /* Define to 1 if you have the declaration of `strnicmp', and to 0 if you
142 don't. */
143 #define HAVE_DECL_STRNICMP 1
144 #if _MSC_VER < 1400
145 # define strnicmp _strnicmp
146 #endif
148 #if _MSC_VER >= 1400
149 /* Define to 1 if you have the `strnlen' function. */
150 # define HAVE_STRNLEN 1
151 /* Define to 1 if you have the declaration of `strnlen', and to 0 if you
152 don't. */
153 # define HAVE_DECL_STRNLEN 1
154 #endif
156 /* Define to 1 if the system has the type `uintptr_t'. */
157 #if _MSC_VER >= 1900
158 # define HAVE_UINTPTR_T 1
159 #else
160 /* Define to the type of an unsigned integer type wide enough to hold a
161 pointer, if such a type exists, and if the system does not define it. */
162 # define uintptr_t size_t
163 #endif
165 /* Define to 1 if you have the `vsnprintf' function. */
166 #define HAVE_VSNPRINTF 1
167 #if _MSC_VER < 1400
168 # define vsnprint _vsnprintf
169 #endif
171 /* Define to 1 if the system has the type `_Bool'. */
172 #if _MSC_VER >= 1900
173 # define HAVE__BOOL 1
174 #endif
176 /* Define to 1 if you have the ANSI C header files. */
177 #define STDC_HEADERS 1
179 /* Define to 1 if your processor stores words with the least significant byte
180 first (like Intel and VAX, unlike Motorola and SPARC). */
181 #define WORDS_LITTLEENDIAN 1
183 /* Define to `__inline__' or `__inline' if that's what the C compiler
184 calls it, or to nothing if 'inline' is not supported under any name. */
185 #define inline __inline
187 /* Define to the equivalent of the C99 'restrict' keyword, or to
188 nothing if this is not supported. Do not define if restrict is
189 supported directly. */
190 #define restrict __restrict
192 #endif /* NASM_CONFIG_MSVC_H */