mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
8b6e6bf04f
Separate out function and function pointer attributes, as not all versions of all compilers support both. Have macros related to function attributes auto-generated by autoheader. As a result, rename config.h.in to unconfig.h, to make it more obvious that it is really intended to be included from some C programs. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
197 lines
5.9 KiB
C
197 lines
5.9 KiB
C
/* ----------------------------------------------------------------------- *
|
|
*
|
|
* Copyright 2016 The NASM Authors - All Rights Reserved
|
|
* See the file AUTHORS included with the NASM distribution for
|
|
* the specific copyright holders.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following
|
|
* conditions are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* ----------------------------------------------------------------------- */
|
|
|
|
/*
|
|
* config/msvc.h
|
|
*
|
|
* Compiler definitions for Microsoft Visual C++;
|
|
* instead of unconfig.h. See config.h.in for the
|
|
* variables which can be defined here.
|
|
*
|
|
* MSDN seems to have information back to Visual Studio 2003, so aim
|
|
* for compatibility that far back.
|
|
*
|
|
* Relevant _MSC_VER values:
|
|
* 1310 - Visual Studio 2003
|
|
* 1400 - Visual Studio 2005
|
|
* 1500 - Visual Studio 2008
|
|
* 1600 - Visual Studio 2010
|
|
* 1700 - Visual Studio 2012
|
|
* 1800 - Visual Studio 2013
|
|
* 1900 - Visual Studio 2015
|
|
* 1910 - Visual Studio 2017
|
|
*/
|
|
|
|
#ifndef NASM_CONFIG_MSVC_H
|
|
#define NASM_CONFIG_MSVC_H
|
|
|
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
|
#define HAVE_FCNTL_H 1
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#if _MSC_VER >= 1800
|
|
# define HAVE_INTTYPES_H 1
|
|
#endif
|
|
|
|
/* Define to 1 if you have the <io.h> header file. */
|
|
#define HAVE_IO_H 1
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#define HAVE_STDLIB_H 1
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#define HAVE_STRING_H 1
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#define HAVE_SYS_STAT_H 1
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#define HAVE_SYS_TYPES_H 1
|
|
|
|
/* Define to 1 if you have the `access' function. */
|
|
#define HAVE_ACCESS 1
|
|
#if _MSC_VER < 1400
|
|
# define access _access
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `fileno' function. */
|
|
#define HAVE_FILENO 1
|
|
#if _MSC_VER < 1400
|
|
# define fileno _fileno
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `snprintf' function. */
|
|
#define HAVE_SNPRINTF 1
|
|
#if _MSC_VER < 1900
|
|
# define snprintf _snprintf
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `_chsize' function. */
|
|
#define HAVE__CHSIZE 1
|
|
|
|
/* Define to 1 if you have the `_chsize_s' function. */
|
|
#if _MSC_VER >= 1400
|
|
# define HAVE__CHSIZE_S 1
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `_filelengthi64' function. */
|
|
#define HAVE__FILELENGTHI64 1
|
|
|
|
/* Define to 1 if you have the `_fseeki64' function. */
|
|
#define HAVE__FSEEKI64 1
|
|
|
|
/* Define to 1 if you have the `_fullpath' function. */
|
|
#define HAVE__FULLPATH 1
|
|
|
|
/* Define to 1 if the system has the type `struct _stati64'. */
|
|
#define HAVE_STRUCT__STATI64
|
|
|
|
/* Define to 1 if you have the `_stati64' function. */
|
|
#define HAVE__STATI64 1
|
|
|
|
/* Define to 1 if you have the `_fstati64' function. */
|
|
#define HAVE__FSTATI64 1
|
|
|
|
/* Define to 1 if stdbool.h conforms to C99. */
|
|
#if _MSC_VER >= 1800
|
|
# define HAVE_STDBOOL_H 1
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `stricmp' function. */
|
|
#define HAVE_STRICMP 1
|
|
/* Define to 1 if you have the declaration of `stricmp', and to 0 if you
|
|
don't. */
|
|
#define HAVE_DECL_STRICMP 1
|
|
#if _MSC_VER < 1400
|
|
# define stricmp _stricmp
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `strnicmp' function. */
|
|
#define HAVE_STRNICMP 1
|
|
/* Define to 1 if you have the declaration of `strnicmp', and to 0 if you
|
|
don't. */
|
|
#define HAVE_DECL_STRNICMP 1
|
|
#if _MSC_VER < 1400
|
|
# define strnicmp _strnicmp
|
|
#endif
|
|
|
|
#if _MSC_VER >= 1400
|
|
/* Define to 1 if you have the `strnlen' function. */
|
|
# define HAVE_STRNLEN 1
|
|
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
|
don't. */
|
|
# define HAVE_DECL_STRNLEN 1
|
|
#endif
|
|
|
|
/* Define to 1 if the system has the type `uintptr_t'. */
|
|
#if _MSC_VER >= 1900
|
|
# define HAVE_UINTPTR_T 1
|
|
#else
|
|
/* Define to the type of an unsigned integer type wide enough to hold a
|
|
pointer, if such a type exists, and if the system does not define it. */
|
|
# define uintptr_t size_t
|
|
#endif
|
|
|
|
/* Define to 1 if you have the `vsnprintf' function. */
|
|
#define HAVE_VSNPRINTF 1
|
|
#if _MSC_VER < 1400
|
|
# define vsnprint _vsnprintf
|
|
#endif
|
|
|
|
/* Define to 1 if the system has the type `_Bool'. */
|
|
#if _MSC_VER >= 1900
|
|
# define HAVE__BOOL 1
|
|
#endif
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#define STDC_HEADERS 1
|
|
|
|
/* Define to 1 if your processor stores words with the least significant byte
|
|
first (like Intel and VAX, unlike Motorola and SPARC). */
|
|
#define WORDS_LITTLEENDIAN 1
|
|
|
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
#define inline __inline
|
|
|
|
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
|
nothing if this is not supported. Do not define if restrict is
|
|
supported directly. */
|
|
#if _MSC_VER >= 1700
|
|
#define restrict __restrict
|
|
#else
|
|
#define restrict
|
|
#endif
|
|
|
|
#endif /* NASM_CONFIG_MSVC_H */
|