home *** CD-ROM | disk | FTP | other *** search
- #ifndef __SYS_CONFIG_H__
- #define __SYS_CONFIG_H__
-
- #include <machine/ieeefp.h> /* floating point macros */
-
- /* exceptions first */
- #if defined(__H8500__) || defined(__W65__)
- #define __SMALL_BITFIELDS
- /* ??? This conditional is true for the h8500 and the w65, defining H8300
- in those cases probably isn't the right thing to do. */
- #define H8300 1
- #endif
-
- /* 16 bit integer machines */
- #if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
-
- #undef INT_MAX
- #undef UINT_MAX
- #define INT_MAX 32767
- #define UINT_MAX 65535
- #endif
-
- #if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__)
- #define __SMALL_BITFIELDS
- #define H8300 1
- #undef INT_MAX
- #undef UINT_MAX
- #define INT_MAX __INT_MAX__
- #define UINT_MAX (__INT_MAX__ * 2U + 1)
- #endif
-
- #ifdef __W65__
- #define __SMALL_BITFIELDS
- #endif
-
- #if defined(__D10V__)
- #define __SMALL_BITFIELDS
- #undef INT_MAX
- #undef UINT_MAX
- #define INT_MAX __INT_MAX__
- #define UINT_MAX (__INT_MAX__ * 2U + 1)
- #define _POINTER_INT short
- #endif
-
- #if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
- #undef INT_MAX
- #undef UINT_MAX
- #define INT_MAX __INT_MAX__
- #define UINT_MAX (__INT_MAX__ * 2U + 1)
- #define _POINTER_INT short
- #endif
-
- #ifdef ___AM29K__
- #define _FLOAT_RET double
- #endif
-
- #ifdef __i386__
- #ifndef __unix__
- /* in other words, go32 */
- #define _FLOAT_RET double
- #endif
- #ifdef __linux__
- /* we want the reentrancy structure to be returned by a function */
- #define __DYNAMIC_REENT__
- #define HAVE_GETDATE
- #define _HAVE_SYSTYPES
- #define _READ_WRITE_RETURN_TYPE _ssize_t
- #define __LARGE64_FILES 1
- /* we use some glibc header files so turn on glibc large file feature */
- #define _LARGEFILE64_SOURCE 1
- #endif
- #endif
-
- #ifdef __mn10200__
- #define __SMALL_BITFIELDS
- #endif
-
- #ifdef __AVR__
- #define __SMALL_BITFIELDS
- #define _POINTER_INT short
- #endif
-
- #ifdef __v850
- #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
- #endif
-
- /* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
- #if defined(__PPC__)
- #if defined(_CALL_SYSV)
- #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
- #endif
- #ifdef __SPE__
- #define _LONG_DOUBLE double
- #endif
- #endif
-
- #ifdef __xstormy16__
- #define __SMALL_BITFIELDS
- #undef INT_MAX
- #undef UINT_MAX
- #define INT_MAX __INT_MAX__
- #define UINT_MAX (__INT_MAX__ * 2U + 1)
- #define MALLOC_ALIGNMENT 8
- #define _POINTER_INT short
- #define __BUFSIZ__ 16
- #define _REENT_SMALL
- #endif
-
- /* This block should be kept in sync with GCC's limits.h. The point
- of having these definitions here is to not include limits.h, which
- would pollute the user namespace, while still using types of the
- the correct widths when deciding how to define __int32_t and
- __int64_t. */
- #ifndef __INT_MAX__
- # ifdef INT_MAX
- # define __INT_MAX__ INT_MAX
- # else
- # define __INT_MAX__ 2147483647
- # endif
- #endif
-
- #ifndef __LONG_MAX__
- # ifdef LONG_MAX
- # define __LONG_MAX__ LONG_MAX
- # else
- # if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
- || defined (__sparcv9)
- # define __LONG_MAX__ 9223372036854775807L
- # else
- # define __LONG_MAX__ 2147483647L
- # endif /* __alpha__ || sparc64 */
- # endif
- #endif
- /* End of block that should be kept in sync with GCC's limits.h. */
-
- #ifndef _POINTER_INT
- #define _POINTER_INT long
- #endif
-
- #ifdef __frv__
- #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
- #endif
- #undef __RAND_MAX
- #if __INT_MAX__ == 32767
- #define __RAND_MAX 32767
- #else
- #define __RAND_MAX 0x7fffffff
- #endif
-
- #if defined(__CYGWIN__)
- #include <cygwin/config.h>
- #endif
-
- #if defined(__rtems__)
- #define __FILENAME_MAX__ 255
- #define _READ_WRITE_RETURN_TYPE _ssize_t
- #endif
-
- #ifndef __IMPORT
- #define __IMPORT
- #endif
-
- /* Define return type of read/write routines. In POSIX, the return type
- for read()/write() is "ssize_t" but legacy newlib code has been using
- "int" for some time. If not specified, "int" is defaulted. */
- #ifndef _READ_WRITE_RETURN_TYPE
- #define _READ_WRITE_RETURN_TYPE int
- #endif
-
- #ifndef __WCHAR_MAX__
- #if __INT_MAX__ == 32767 || defined (_WIN32)
- #define __WCHAR_MAX__ 0xffffu
- #endif
- #endif
-
- #endif /* __SYS_CONFIG_H__ */
-