1/* STLport configuration file
2 * It is internal STLport header - DO NOT include it directly
3 */
4
5#define _STLP_COMPILER "gcc"
6
7#define _STLP_HAS_INCLUDE_NEXT 1
8
9#if (__GNUC__ < 2) || ((__GNUC__ < 3) && ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)))
10/* We do not support neither the unofficial 2.96 gcc version. */
11#  error GNU compilers before 2.95 are not supported anymore.
12#endif
13
14/* Systems having GLIBC installed have different traits */
15#if defined (__linux__)
16#  ifndef _STLP_USE_GLIBC
17#    define _STLP_USE_GLIBC 1
18#  endif
19#  if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
20#    define _STLP_USE_UCLIBC 1
21#  endif
22#endif
23
24#if defined (__CYGWIN__) && \
25     (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
26#  define _STLP_NO_VENDOR_MATH_L
27#  define _STLP_NO_VENDOR_STDLIB_L
28#endif
29
30#if (__GNUC__ < 3)
31#  define _STLP_NO_VENDOR_STDLIB_L
32#endif
33
34#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
35/* define for gcc versions before 3.4.0. */
36#  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
37#endif
38
39#if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
40                             (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
41                             (defined (__MINGW32__) && defined (_MT)))
42#  define _REENTRANT
43#endif
44
45#if defined (__DJGPP)
46#  define _STLP_RAND48    1
47#  define _NOTHREADS    1
48#  undef  _PTHREADS
49#  define _STLP_LITTLE_ENDIAN
50#endif
51
52#if defined (__MINGW32__)
53/* Mingw32, egcs compiler using the Microsoft C runtime */
54#  if (__GNUC__ >= 3)
55/* For gcc before version 3 this macro is defined below */
56#    define _STLP_VENDOR_GLOBAL_CSTD
57#  endif
58#  undef  _STLP_NO_DRAND48
59#  define _STLP_NO_DRAND48
60#  define _STLP_CALL
61#endif /* __MINGW32__ */
62
63#if defined (__CYGWIN__) || defined (__MINGW32__)
64#  if !defined (_STLP_USE_STATIC_LIB)
65#    define _STLP_USE_DECLSPEC 1
66#    if !defined (_STLP_USE_DYNAMIC_LIB)
67#      define _STLP_USE_DYNAMIC_LIB
68#    endif
69#    define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
70#    define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
71#    define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
72#  endif
73/* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
74 * used to import symbols from PSDK under MinGW
75 */
76#  define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
77#else
78#  if (__GNUC__ >= 4)
79#    if !defined (_STLP_USE_STATIC_LIB)
80#      if !defined (_STLP_USE_DYNAMIC_LIB)
81#        define _STLP_USE_DYNAMIC_LIB
82#      endif
83#      define _STLP_USE_DECLSPEC 1
84#      define _STLP_EXPORT_DECLSPEC __attribute__((visibility("default")))
85#      define _STLP_IMPORT_DECLSPEC __attribute__((visibility("default")))
86#      define _STLP_CLASS_EXPORT_DECLSPEC __attribute__((visibility("default")))
87#      define _STLP_CLASS_IMPORT_DECLSPEC __attribute__((visibility("default")))
88#    endif
89#  endif
90#endif
91
92#if defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__))
93#  if !defined (__MINGW32__) && !defined (__CYGWIN__)
94#    define _STLP_NO_NATIVE_MBSTATE_T    1
95#  endif
96#  if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
97#    define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
98#  endif
99#  define _STLP_NO_NATIVE_WIDE_STREAMS   1
100#endif
101
102#define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
103
104/* Mac OS X is a little different with namespaces and cannot instantiate
105 * static data members in template classes */
106#if defined (__APPLE__)
107#  if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
108/* Mac OS X is missing a required typedef and standard macro */
109typedef unsigned int wint_t;
110#  endif
111
112#  define __unix
113
114#  define _STLP_NO_LONG_DOUBLE
115
116/* Mac OS X needs all "::" scope references to be "std::" */
117#  define _STLP_USE_NEW_C_HEADERS
118
119#  define _STLP_NO_VENDOR_STDLIB_L
120
121#endif /* __APPLE__ */
122
123/* g++ 2.7.x and above */
124#define _STLP_LONG_LONG long long
125
126#ifdef _STLP_USE_UCLIBC
127  /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
128#  define _STLP_NO_VENDOR_MATH_F
129  /* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
130#  define _STLP_NO_VENDOR_MATH_L
131#  define _STLP_NO_LONG_DOUBLE
132#endif
133
134#if defined (__OpenBSD__) || defined (__FreeBSD__)
135#  define _STLP_NO_VENDOR_MATH_L
136#  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
137#  ifndef __unix
138#    define __unix
139#  endif
140#endif
141
142#if defined (__alpha__)
143#  define _STLP_NO_VENDOR_MATH_L
144#endif
145
146#if defined (__hpux)
147#  define _STLP_VENDOR_GLOBAL_CSTD 1
148#  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
149  /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
150#  define _STLP_NO_VENDOR_MATH_F
151#endif
152
153#if (__GNUC__ >= 3)
154#  ifndef _STLP_HAS_NO_NEW_C_HEADERS
155/*
156#    ifndef _STLP_USE_UCLIBC
157*/
158#    define _STLP_HAS_NATIVE_FLOAT_ABS
159/*
160#    endif
161*/
162#  else
163#    ifdef _STLP_USE_GLIBC
164#      define _STLP_VENDOR_LONG_DOUBLE_MATH  1
165#    endif
166#  endif
167#endif
168
169#if (__GNUC__ < 3)
170#  define _STLP_HAS_NO_NEW_C_HEADERS     1
171#  define _STLP_VENDOR_GLOBAL_CSTD       1
172#  define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
173#  ifndef __HONOR_STD
174#    define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
175#  endif
176/* egcs fails to initialize builtin types in expr. like this : new(p) char();  */
177#  define _STLP_DEF_CONST_PLCT_NEW_BUG 1
178#endif
179
180#undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
181#undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
182
183/* strict ANSI prohibits "long long" ( gcc) */
184#if defined ( __STRICT_ANSI__ )
185#  undef _STLP_LONG_LONG
186#endif
187
188#ifndef __EXCEPTIONS
189#  undef  _STLP_DONT_USE_EXCEPTIONS
190#  define _STLP_DONT_USE_EXCEPTIONS 1
191#endif
192
193#if (__GNUC__ >= 3)
194/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
195   instantiation within library: nothing except increased library size. - ptr
196 */
197#  define _STLP_NO_FORCE_INSTANTIATE
198#endif
199