1 /* STLport configuration file
2 * It is internal STLport header - DO NOT include it directly
5 #define _STLP_COMPILER "gcc"
7 #define _STLP_HAS_INCLUDE_NEXT 1
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.
14 /* Systems having GLIBC installed have different traits */
15 #if defined (__linux__)
16 # ifndef _STLP_USE_GLIBC
17 # define _STLP_USE_GLIBC 1
19 # if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
20 # define _STLP_USE_UCLIBC 1
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
31 # define _STLP_NO_VENDOR_STDLIB_L
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
39 #if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
40 (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
41 (defined (__MINGW32__) && defined (_MT)))
46 # define _STLP_RAND48 1
49 # define _STLP_LITTLE_ENDIAN
52 #if defined (__MINGW32__)
53 /* Mingw32, egcs compiler using the Microsoft C runtime */
55 /* For gcc before version 3 this macro is defined below */
56 # define _STLP_VENDOR_GLOBAL_CSTD
58 # undef _STLP_NO_DRAND48
59 # define _STLP_NO_DRAND48
61 #endif /* __MINGW32__ */
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
69 # define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
70 # define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
71 # define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
73 /* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
74 * used to import symbols from PSDK under MinGW
76 # define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
79 # if !defined (_STLP_USE_STATIC_LIB)
80 # if !defined (_STLP_USE_DYNAMIC_LIB)
81 # define _STLP_USE_DYNAMIC_LIB
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")))
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
96 # if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
97 # define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
99 # define _STLP_NO_NATIVE_WIDE_STREAMS 1
102 #define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
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 */
109 typedef unsigned int wint_t;
114 # define _STLP_NO_LONG_DOUBLE
116 /* Mac OS X needs all "::" scope references to be "std::" */
117 # define _STLP_USE_NEW_C_HEADERS
119 # define _STLP_NO_VENDOR_STDLIB_L
121 #endif /* __APPLE__ */
123 /* g++ 2.7.x and above */
124 #define _STLP_LONG_LONG long long
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
134 #if defined (__OpenBSD__) || defined (__FreeBSD__)
135 # define _STLP_NO_VENDOR_MATH_L
136 # define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
142 #if defined (__alpha__)
143 # define _STLP_NO_VENDOR_MATH_L
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
154 # ifndef _STLP_HAS_NO_NEW_C_HEADERS
156 # ifndef _STLP_USE_UCLIBC
158 # define _STLP_HAS_NATIVE_FLOAT_ABS
163 # ifdef _STLP_USE_GLIBC
164 # define _STLP_VENDOR_LONG_DOUBLE_MATH 1
170 # define _STLP_HAS_NO_NEW_C_HEADERS 1
171 # define _STLP_VENDOR_GLOBAL_CSTD 1
172 # define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
174 # define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
176 /* egcs fails to initialize builtin types in expr. like this : new(p) char(); */
177 # define _STLP_DEF_CONST_PLCT_NEW_BUG 1
180 #undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
181 #undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
183 /* strict ANSI prohibits "long long" ( gcc) */
184 #if defined ( __STRICT_ANSI__ )
185 # undef _STLP_LONG_LONG
189 # undef _STLP_DONT_USE_EXCEPTIONS
190 # define _STLP_DONT_USE_EXCEPTIONS 1
194 /* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
195 instantiation within library: nothing except increased library size. - ptr
197 # define _STLP_NO_FORCE_INSTANTIATE