williamr@2
|
1 |
/* STLport configuration file
|
williamr@2
|
2 |
* It is internal STLport header - DO NOT include it directly
|
williamr@2
|
3 |
*/
|
williamr@2
|
4 |
|
williamr@2
|
5 |
#define _STLP_COMPILER "gcc"
|
williamr@2
|
6 |
|
williamr@2
|
7 |
/* Systems having GLIBC installed have different traits */
|
williamr@2
|
8 |
#if defined (__linux__)
|
williamr@2
|
9 |
# ifndef _STLP_USE_GLIBC
|
williamr@2
|
10 |
# define _STLP_USE_GLIBC 1
|
williamr@2
|
11 |
# endif
|
williamr@2
|
12 |
# if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
|
williamr@2
|
13 |
# define _STLP_USE_UCLIBC 1
|
williamr@2
|
14 |
# endif
|
williamr@2
|
15 |
#endif
|
williamr@2
|
16 |
|
williamr@2
|
17 |
#if defined (__CYGWIN__) && \
|
williamr@2
|
18 |
(__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
|
williamr@2
|
19 |
# define _STLP_NO_VENDOR_MATH_L
|
williamr@2
|
20 |
# define _STLP_NO_VENDOR_STDLIB_L
|
williamr@2
|
21 |
#endif
|
williamr@2
|
22 |
|
williamr@2
|
23 |
#if (__GNUC__ < 3)
|
williamr@2
|
24 |
# define _STLP_NO_VENDOR_STDLIB_L
|
williamr@2
|
25 |
#endif
|
williamr@2
|
26 |
|
williamr@4
|
27 |
#if defined (__SYMBIAN32__) && !defined (_STLP_NO_VENDOR_STDLIB_L)
|
williamr@4
|
28 |
//The following macro is defined so that the vendor's APIs dont get picked. Rather the ones from PIPS are used.
|
williamr@4
|
29 |
# define _STLP_NO_VENDOR_STDLIB_L
|
williamr@4
|
30 |
#endif // (__SYMBIAN32__) && !defined (_STLP_NO_VENDOR_STDLIB_L)
|
williamr@4
|
31 |
|
williamr@2
|
32 |
/* We guess if we are using the cygwin distrib that has a special include schema.
|
williamr@2
|
33 |
* There is no way to distinguish a cygwin distrib used in no-cygwin mode from a
|
williamr@2
|
34 |
* mingw install. We are forced to use a configuration option
|
williamr@2
|
35 |
*/
|
williamr@2
|
36 |
#if !defined (_STLP_NATIVE_INCLUDE_PATH) && \
|
williamr@2
|
37 |
(defined (__CYGWIN__) || defined (__MINGW32__) && defined (_STLP_NO_CYGWIN))
|
williamr@2
|
38 |
# if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3))
|
williamr@2
|
39 |
# define _STLP_NATIVE_INCLUDE_PATH ../../../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/include/c++
|
williamr@2
|
40 |
# elif defined (_STLP_NO_CYGWIN)
|
williamr@2
|
41 |
# define _STLP_NATIVE_INCLUDE_PATH ../mingw
|
williamr@2
|
42 |
/*# else
|
williamr@2
|
43 |
* Before version gcc 3.4, the cygwin package include path was conform to the
|
williamr@2
|
44 |
* GNU convention which is set later in this file.
|
williamr@2
|
45 |
*/
|
williamr@2
|
46 |
# endif
|
williamr@2
|
47 |
#endif
|
williamr@2
|
48 |
|
williamr@2
|
49 |
#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
|
williamr@2
|
50 |
/* define for gcc versions before 3.4.0. */
|
williamr@2
|
51 |
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
|
williamr@2
|
52 |
#endif
|
williamr@2
|
53 |
|
williamr@2
|
54 |
/* azov: gcc on lynx have a bug that causes internal
|
williamr@2
|
55 |
* compiler errors when compiling STLport with namespaces turned on.
|
williamr@2
|
56 |
* When the compiler gets better - comment out _STLP_HAS_NO_NAMESPACES
|
williamr@2
|
57 |
*/
|
williamr@2
|
58 |
#if defined (__Lynx__) && (__GNUC__ < 3)
|
williamr@2
|
59 |
# define _STLP_HAS_NO_NAMESPACES 1
|
williamr@2
|
60 |
# define _STLP_NO_STATIC_TEMPLATE_DATA 1
|
williamr@2
|
61 |
/* turn off useless warning about including system headers */
|
williamr@2
|
62 |
# define __NO_INCLUDE_WARN__ 1
|
williamr@2
|
63 |
#endif
|
williamr@2
|
64 |
|
williamr@2
|
65 |
/* Tru64 Unix, AIX, HP : gcc there by default uses native ld and hence cannot auto-instantiate
|
williamr@4
|
66 |
static template data. If you are using GNU ld, please say so in user_config.h header */
|
williamr@2
|
67 |
#if (__GNUC__ < 3) && !defined(_STLP_GCC_USES_GNU_LD) && \
|
williamr@2
|
68 |
((defined (__osf__) && defined (__alpha__)) || defined (_AIX) || defined (__hpux) || defined(__amigaos__) )
|
williamr@2
|
69 |
# define _STLP_NO_STATIC_TEMPLATE_DATA
|
williamr@2
|
70 |
#endif
|
williamr@2
|
71 |
|
williamr@2
|
72 |
#if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
|
williamr@2
|
73 |
(defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
|
williamr@2
|
74 |
(defined (__MINGW32__) && defined (_MT)))
|
williamr@2
|
75 |
# define _REENTRANT
|
williamr@2
|
76 |
#endif
|
williamr@2
|
77 |
|
williamr@2
|
78 |
#if defined (__DJGPP)
|
williamr@2
|
79 |
# define _STLP_RAND48 1
|
williamr@2
|
80 |
# define _NOTHREADS 1
|
williamr@2
|
81 |
# undef _PTHREADS
|
williamr@2
|
82 |
# define _STLP_LITTLE_ENDIAN
|
williamr@2
|
83 |
#endif
|
williamr@2
|
84 |
|
williamr@4
|
85 |
#ifdef __SYMBIAN32__
|
williamr@4
|
86 |
# if !defined(_STLP_LITTLE_ENDIAN)
|
williamr@4
|
87 |
# define _STLP_LITTLE_ENDIAN
|
williamr@4
|
88 |
# endif
|
williamr@4
|
89 |
#endif
|
williamr@4
|
90 |
#if defined (__MINGW32__) && !defined (__SYMBIAN32__)
|
williamr@2
|
91 |
/* Mingw32, egcs compiler using the Microsoft C runtime */
|
williamr@4
|
92 |
# define _STLP_VENDOR_GLOBAL_CSTD
|
williamr@2
|
93 |
# undef _STLP_NO_DRAND48
|
williamr@2
|
94 |
# define _STLP_NO_DRAND48
|
williamr@2
|
95 |
# define _STLP_CALL
|
williamr@2
|
96 |
|
williamr@2
|
97 |
# if defined (_STLP_NEW_PLATFORM_SDK)
|
williamr@2
|
98 |
/* For the moment the Windows SDK coming with Mingw still mimik the old platform SDK. */
|
williamr@2
|
99 |
# undef _STLP_NEW_PLATFORM_SDK
|
williamr@2
|
100 |
# endif
|
williamr@2
|
101 |
#endif /* __MINGW32__ */
|
williamr@2
|
102 |
|
williamr@4
|
103 |
#if defined (__CYGWIN__) || defined (__MINGW32__) && !defined(__SYMBIAN32__)
|
williamr@2
|
104 |
# if !defined (_STLP_USE_STATIC_LIB)
|
williamr@2
|
105 |
# define _STLP_USE_DECLSPEC 1
|
williamr@2
|
106 |
# if !defined (_STLP_USE_DYNAMIC_LIB)
|
williamr@2
|
107 |
# define _STLP_USE_DYNAMIC_LIB
|
williamr@2
|
108 |
# endif
|
williamr@2
|
109 |
# define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
|
williamr@2
|
110 |
# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
|
williamr@2
|
111 |
# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
|
williamr@2
|
112 |
# endif
|
williamr@2
|
113 |
/* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
|
williamr@2
|
114 |
* used to import symbols from PSDK under MinGW
|
williamr@2
|
115 |
*/
|
williamr@2
|
116 |
# define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
|
williamr@2
|
117 |
#endif
|
williamr@2
|
118 |
|
williamr@4
|
119 |
#if !defined (__SYMBIAN32__) && (defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__)))
|
williamr@2
|
120 |
# if !defined (__MINGW32__) && !defined (__CYGWIN__)
|
williamr@2
|
121 |
# define _STLP_NO_NATIVE_MBSTATE_T 1
|
williamr@2
|
122 |
# endif
|
williamr@2
|
123 |
# if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
|
williamr@2
|
124 |
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
|
williamr@2
|
125 |
# endif
|
williamr@2
|
126 |
# define _STLP_NO_NATIVE_WIDE_STREAMS 1
|
williamr@2
|
127 |
#endif
|
williamr@2
|
128 |
|
williamr@2
|
129 |
#define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
|
williamr@2
|
130 |
|
williamr@2
|
131 |
/* Mac OS X is a little different with namespaces and cannot instantiate
|
williamr@2
|
132 |
* static data members in template classes */
|
williamr@2
|
133 |
#if defined (__APPLE__)
|
williamr@2
|
134 |
# if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
|
williamr@2
|
135 |
/* Mac OS X is missing a required typedef and standard macro */
|
williamr@2
|
136 |
typedef unsigned int wint_t;
|
williamr@2
|
137 |
# endif
|
williamr@2
|
138 |
|
williamr@2
|
139 |
# define __unix
|
williamr@2
|
140 |
|
williamr@2
|
141 |
# if (__GNUC__ < 3)
|
williamr@2
|
142 |
|
williamr@2
|
143 |
/* Mac OS X needs one and only one source file to initialize all static data
|
williamr@2
|
144 |
* members in template classes. Only one source file in an executable or
|
williamr@2
|
145 |
* library can declare instances for such data members, otherwise duplicate
|
williamr@2
|
146 |
* symbols will be generated. */
|
williamr@2
|
147 |
|
williamr@2
|
148 |
# define _STLP_NO_STATIC_TEMPLATE_DATA
|
williamr@2
|
149 |
# define _STLP_STATIC_CONST_INIT_BUG 1
|
williamr@2
|
150 |
# define _STLP_STATIC_TEMPLATE_DATA 0
|
williamr@2
|
151 |
# define _STLP_WEAK_ATTRIBUTE 1
|
williamr@2
|
152 |
/* Workaround for the broken Mac OS X C++ preprocessor which cannot handle
|
williamr@2
|
153 |
* parameterized macros in #include statements */
|
williamr@2
|
154 |
# define _STLP_NATIVE_HEADER(header) <../g++/##header##>
|
williamr@2
|
155 |
# define _STLP_NATIVE_C_HEADER(header) <../include/##header##>
|
williamr@2
|
156 |
# define _STLP_NATIVE_CPP_C_HEADER(header) <../g++/##header##>
|
williamr@2
|
157 |
# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../g++/##header##>
|
williamr@2
|
158 |
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../g++/##header##>
|
williamr@2
|
159 |
# endif /* __GNUC__ < 3 */
|
williamr@2
|
160 |
|
williamr@2
|
161 |
# define _STLP_NO_LONG_DOUBLE
|
williamr@2
|
162 |
|
williamr@2
|
163 |
/* Mac OS X needs all "::" scope references to be "std::" */
|
williamr@2
|
164 |
# define _STLP_USE_NEW_C_HEADERS
|
williamr@2
|
165 |
|
williamr@2
|
166 |
# define _STLP_NO_VENDOR_STDLIB_L
|
williamr@2
|
167 |
|
williamr@2
|
168 |
#endif /* __APPLE__ */
|
williamr@2
|
169 |
|
williamr@2
|
170 |
|
williamr@2
|
171 |
#if defined(__BEOS__) && defined(__INTEL__)
|
williamr@2
|
172 |
# define _STLP_NATIVE_HEADER(header) <../stlport/beos/##header##>
|
williamr@2
|
173 |
# define _STLP_NATIVE_C_HEADER(header) <../stlport/beos/##header##>
|
williamr@2
|
174 |
# define _STLP_NATIVE_CPP_C_HEADER(header) <../stlport/beos/##header##>
|
williamr@2
|
175 |
# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../stlport/beos/##header##>
|
williamr@2
|
176 |
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../stlport/beos/##header##>
|
williamr@2
|
177 |
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
|
williamr@2
|
178 |
# define _STLP_NO_NATIVE_WIDE_STREAMS 1
|
williamr@2
|
179 |
/*
|
williamr@2
|
180 |
# define _NOTHREADS 1
|
williamr@2
|
181 |
*/
|
williamr@2
|
182 |
# ifdef _PTHREADS
|
williamr@2
|
183 |
# undef _PTHREADS
|
williamr@2
|
184 |
# endif
|
williamr@2
|
185 |
# ifdef _STLP_PTHREADS
|
williamr@2
|
186 |
# undef _STLP_PTHREADS
|
williamr@2
|
187 |
# endif
|
williamr@2
|
188 |
# define _STLP_USE_STDIO_IO 1
|
williamr@2
|
189 |
# define _STLP_USE_GLIBC 1
|
williamr@2
|
190 |
#endif
|
williamr@2
|
191 |
|
williamr@2
|
192 |
/* g++ 2.7.x and above */
|
williamr@2
|
193 |
#define _STLP_LONG_LONG long long
|
williamr@2
|
194 |
|
williamr@2
|
195 |
#ifdef _STLP_USE_UCLIBC
|
williamr@2
|
196 |
/*
|
williamr@2
|
197 |
# ifndef __DO_C99_MATH__
|
williamr@2
|
198 |
*/
|
williamr@2
|
199 |
/* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
|
williamr@2
|
200 |
# define _STLP_NO_VENDOR_MATH_F
|
williamr@2
|
201 |
/* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
|
williamr@2
|
202 |
# define _STLP_NO_VENDOR_MATH_L
|
williamr@2
|
203 |
# define _STLP_NO_LONG_DOUBLE
|
williamr@2
|
204 |
/*
|
williamr@2
|
205 |
# endif
|
williamr@2
|
206 |
*/
|
williamr@2
|
207 |
#endif
|
williamr@2
|
208 |
|
williamr@2
|
209 |
#if defined (__OpenBSD__) || defined (__FreeBSD__)
|
williamr@2
|
210 |
# define _STLP_NO_VENDOR_MATH_L
|
williamr@2
|
211 |
# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
|
williamr@2
|
212 |
# ifndef __unix
|
williamr@2
|
213 |
# define __unix
|
williamr@2
|
214 |
# endif
|
williamr@2
|
215 |
#endif
|
williamr@2
|
216 |
|
williamr@2
|
217 |
#if defined (__alpha__)
|
williamr@2
|
218 |
# define _STLP_NO_VENDOR_MATH_L
|
williamr@2
|
219 |
# define _STLP_NO_IEC559_SUPPORT
|
williamr@2
|
220 |
#endif
|
williamr@2
|
221 |
|
williamr@2
|
222 |
#if defined (__hpux)
|
williamr@2
|
223 |
# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
|
williamr@2
|
224 |
/* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
|
williamr@2
|
225 |
# define _STLP_NO_VENDOR_MATH_F
|
williamr@2
|
226 |
#endif
|
williamr@2
|
227 |
|
williamr@2
|
228 |
#if (__GNUC__ >= 3)
|
williamr@2
|
229 |
# ifndef _STLP_HAS_NO_NEW_C_HEADERS
|
williamr@2
|
230 |
/*
|
williamr@2
|
231 |
# ifndef _STLP_USE_UCLIBC
|
williamr@2
|
232 |
*/
|
williamr@2
|
233 |
# define _STLP_HAS_NATIVE_FLOAT_ABS
|
williamr@2
|
234 |
/*
|
williamr@2
|
235 |
# endif
|
williamr@2
|
236 |
*/
|
williamr@2
|
237 |
# else
|
williamr@2
|
238 |
# ifdef _STLP_USE_GLIBC
|
williamr@2
|
239 |
# define _STLP_VENDOR_LONG_DOUBLE_MATH 1
|
williamr@2
|
240 |
# endif
|
williamr@2
|
241 |
# endif
|
williamr@2
|
242 |
#endif
|
williamr@2
|
243 |
|
williamr@2
|
244 |
#if (__GNUC__ < 3)
|
williamr@2
|
245 |
# define _STLP_HAS_NO_NEW_C_HEADERS 1
|
williamr@4
|
246 |
# if !defined(_STLP_VENDOR_GLOBAL_CSTD)
|
williamr@4
|
247 |
# define _STLP_VENDOR_GLOBAL_CSTD 1
|
williamr@4
|
248 |
# endif
|
williamr@2
|
249 |
# define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
|
williamr@2
|
250 |
# ifndef __HONOR_STD
|
williamr@2
|
251 |
# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
|
williamr@2
|
252 |
# endif
|
williamr@2
|
253 |
/* egcs fails to initialize builtin types in expr. like this : new(p) char(); */
|
williamr@2
|
254 |
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
|
williamr@2
|
255 |
#endif
|
williamr@2
|
256 |
|
williamr@2
|
257 |
/*
|
williamr@2
|
258 |
#define _STLP_VENDOR_GLOBAL_CSTD 1
|
williamr@2
|
259 |
*/
|
williamr@2
|
260 |
|
williamr@2
|
261 |
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
|
williamr@2
|
262 |
# define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
|
williamr@2
|
263 |
# define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
|
williamr@2
|
264 |
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
|
williamr@2
|
265 |
#else
|
williamr@2
|
266 |
# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
|
williamr@2
|
267 |
# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
|
williamr@2
|
268 |
#endif
|
williamr@2
|
269 |
|
williamr@4
|
270 |
#if (__GNUC_MINOR__ < 9) && (__GNUC__ < 3) && !(defined (__SYMBIAN32__) && defined (__GCCXML__))/* gcc 2.8 */
|
williamr@2
|
271 |
# define _STLP_NO_TEMPLATE_CONVERSIONS
|
williamr@2
|
272 |
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
|
williamr@2
|
273 |
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
|
williamr@2
|
274 |
# define _STLP_NO_FRIEND_TEMPLATES 1
|
williamr@2
|
275 |
# define _STLP_HAS_NO_NAMESPACES 1
|
williamr@2
|
276 |
# define _STLP_NO_METHOD_SPECIALIZATION 1
|
williamr@2
|
277 |
# define _STLP_NO_MEMBER_TEMPLATES 1
|
williamr@2
|
278 |
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
|
williamr@2
|
279 |
# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
|
williamr@2
|
280 |
/* DJGPP doesn't seem to implement it in 2.8.x */
|
williamr@2
|
281 |
# ifdef DJGPP
|
williamr@2
|
282 |
# define _STLP_NO_STATIC_TEMPLATE_DATA 1
|
williamr@2
|
283 |
# endif
|
williamr@2
|
284 |
#endif
|
williamr@2
|
285 |
|
williamr@4
|
286 |
#if __GNUC__ <= 2 && __GNUC_MINOR__ <= 7 && !defined (__CYGWIN32__) && !(defined (__SYMBIAN32__) && defined (__GCCXML__))
|
williamr@2
|
287 |
/* Will it work with 2.6 ? I doubt it. */
|
williamr@2
|
288 |
# if ( __GNUC_MINOR__ < 6 )
|
williamr@2
|
289 |
__GIVE_UP_WITH_STL(GCC_272);
|
williamr@2
|
290 |
# endif
|
williamr@2
|
291 |
|
williamr@2
|
292 |
# define _STLP_NO_RELOPS_NAMESPACE
|
williamr@2
|
293 |
# define _STLP_NON_TYPE_TMPL_PARAM_BUG
|
williamr@2
|
294 |
# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
|
williamr@2
|
295 |
# define _STLP_DEFAULT_TYPE_PARAM 1
|
williamr@2
|
296 |
# define _STLP_NO_BAD_ALLOC
|
williamr@2
|
297 |
# define _STLP_NO_ARROW_OPERATOR 1
|
williamr@2
|
298 |
# ifndef _STLP_NO_STATIC_TEMPLATE_DATA
|
williamr@2
|
299 |
# define _STLP_NO_STATIC_TEMPLATE_DATA
|
williamr@2
|
300 |
# endif
|
williamr@2
|
301 |
# define _STLP_STATIC_CONST_INIT_BUG 1
|
williamr@2
|
302 |
# define _STLP_NO_METHOD_SPECIALIZATION 1
|
williamr@2
|
303 |
|
williamr@2
|
304 |
# if !defined (__CYGWIN32__)
|
williamr@2
|
305 |
# define _STLP_NESTED_TYPE_PARAM_BUG 1
|
williamr@2
|
306 |
# define _STLP_BASE_MATCH_BUG 1
|
williamr@2
|
307 |
/* unused operators are required (forward) */
|
williamr@2
|
308 |
# define _STLP_CONST_CONSTRUCTOR_BUG
|
williamr@2
|
309 |
# define _STLP_NO_DEFAULT_NON_TYPE_PARAM
|
williamr@2
|
310 |
# endif
|
williamr@2
|
311 |
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
|
williamr@2
|
312 |
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
|
williamr@4
|
313 |
# if !(defined (__SYMBIAN32__) && defined (__GCCXML__))
|
williamr@4
|
314 |
# define _STLP_NO_EXCEPTION_HEADER 1
|
williamr@4
|
315 |
# endif
|
williamr@2
|
316 |
#else /* ! <= 2.7.* */
|
williamr@2
|
317 |
#endif /* ! <= 2.7.* */
|
williamr@2
|
318 |
|
williamr@2
|
319 |
/* static template data members workaround strategy for gcc tries
|
williamr@2
|
320 |
* to use weak symbols.
|
williamr@2
|
321 |
* if you don't want to use that, #define _STLP_WEAK_ATTRIBUTE=0 ( you'll
|
williamr@2
|
322 |
* have to put "#define __PUT_STATIC_DATA_MEMBERS_HERE" line in one of your
|
williamr@2
|
323 |
* compilation unit ( or CFLAGS for it ) _before_ including any STL header ).
|
williamr@2
|
324 |
*/
|
williamr@2
|
325 |
#if defined (_STLP_NO_STATIC_TEMPLATE_DATA) && ! defined (_STLP_WEAK_ATTRIBUTE )
|
williamr@2
|
326 |
/* systems using GNU ld or format that supports weak symbols
|
williamr@2
|
327 |
may use "weak" attribute
|
williamr@2
|
328 |
Linux & Solaris ( x86 & SPARC ) are being auto-recognized here */
|
williamr@2
|
329 |
# if defined(_STLP_GNU_LD) || defined(__ELF__) || defined (__CYGWIN__) || \
|
williamr@2
|
330 |
(( defined (__SVR4) || defined ( __svr4__ )) && \
|
williamr@2
|
331 |
( defined (sun) || defined ( __sun__ )))
|
williamr@2
|
332 |
# define _STLP_WEAK_ATTRIBUTE 1
|
williamr@2
|
333 |
# endif
|
williamr@2
|
334 |
#endif /* _STLP_WEAK_ATTRIBUTE */
|
williamr@2
|
335 |
|
williamr@2
|
336 |
|
williamr@2
|
337 |
/* strict ANSI prohibits "long long" ( gcc) */
|
williamr@2
|
338 |
#if defined ( __STRICT_ANSI__ )
|
williamr@2
|
339 |
# undef _STLP_LONG_LONG
|
williamr@2
|
340 |
/*
|
williamr@2
|
341 |
# define _STLP_STRICT_ANSI 1
|
williamr@2
|
342 |
*/
|
williamr@2
|
343 |
#endif
|
williamr@2
|
344 |
|
williamr@2
|
345 |
/*
|
williamr@2
|
346 |
#if !defined (__STRICT_ANSI__) || defined (__BUILDING_STLPORT)
|
williamr@2
|
347 |
# define _STLP_USE_TEMPLATE_EXPORT
|
williamr@2
|
348 |
# define _STLP_EXPORT_TEMPLATE_KEYWORD extern
|
williamr@2
|
349 |
# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
|
williamr@2
|
350 |
#endif
|
williamr@2
|
351 |
*/
|
williamr@2
|
352 |
|
williamr@2
|
353 |
#ifndef __EXCEPTIONS
|
williamr@2
|
354 |
# undef _STLP_DONT_USE_EXCEPTIONS
|
williamr@2
|
355 |
# define _STLP_DONT_USE_EXCEPTIONS 1
|
williamr@2
|
356 |
#endif
|
williamr@2
|
357 |
|
williamr@2
|
358 |
#if (__GNUC__ >= 3)
|
williamr@2
|
359 |
|
williamr@2
|
360 |
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
|
williamr@2
|
361 |
# if ( (__GNUC__ == 3 ) && ((__GNUC_MINOR__ == 0) || ((__GNUC_MINOR__ < 3) && defined(__APPLE_CC__))))
|
williamr@2
|
362 |
# define _STLP_NATIVE_INCLUDE_PATH ../g++-v3
|
williamr@2
|
363 |
# else
|
williamr@2
|
364 |
# if ( ((__GNUC__ == 4 ) || (__GNUC_MINOR__ >= 3)) && defined(__APPLE_CC__))
|
williamr@2
|
365 |
# define _STLP_NATIVE_INCLUDE_PATH ../c++
|
williamr@2
|
366 |
/*
|
williamr@2
|
367 |
* Before version 3.4.0 the 0 patch level was not part of the include path:
|
williamr@2
|
368 |
*/
|
williamr@2
|
369 |
# elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \
|
williamr@2
|
370 |
(__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
|
williamr@2
|
371 |
(__GNUC__ > 3))
|
williamr@2
|
372 |
# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
|
williamr@2
|
373 |
# else
|
williamr@2
|
374 |
# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__
|
williamr@2
|
375 |
# endif
|
williamr@2
|
376 |
# endif
|
williamr@2
|
377 |
# endif
|
williamr@2
|
378 |
|
williamr@2
|
379 |
/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
|
williamr@2
|
380 |
instantiation within library: nothing except increased library size. - ptr
|
williamr@2
|
381 |
*/
|
williamr@2
|
382 |
# define _STLP_NO_FORCE_INSTANTIATE
|
williamr@2
|
383 |
|
williamr@2
|
384 |
#elif (__GNUC_MINOR__ < 8)
|
williamr@2
|
385 |
|
williamr@2
|
386 |
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
|
williamr@4
|
387 |
# if !defined (__SYMBIAN32__)
|
williamr@4
|
388 |
# define _STLP_NATIVE_INCLUDE_PATH ../g++-include
|
williamr@4
|
389 |
# endif
|
williamr@2
|
390 |
# endif
|
williamr@2
|
391 |
|
williamr@2
|
392 |
/* tuning of static template data members workaround */
|
williamr@2
|
393 |
# if ( _STLP_STATIC_TEMPLATE_DATA < 1 )
|
williamr@2
|
394 |
# if ( _STLP_WEAK_ATTRIBUTE > 0 )
|
williamr@2
|
395 |
# define _STLP_WEAK __attribute__ (( weak ))
|
williamr@2
|
396 |
# else
|
williamr@2
|
397 |
# define _STLP_WEAK
|
williamr@2
|
398 |
# endif /* _STLP_WEAK_ATTRIBUTE */
|
williamr@2
|
399 |
|
williamr@2
|
400 |
# ifdef __PUT_STATIC_DATA_MEMBERS_HERE
|
williamr@2
|
401 |
# define __DECLARE_INSTANCE(type,item,init) type item _STLP_WEAK init
|
williamr@2
|
402 |
# else
|
williamr@2
|
403 |
# define __DECLARE_INSTANCE(type,item,init)
|
williamr@2
|
404 |
# endif /* __PUT_STATIC_DATA_MEMBERS_HERE */
|
williamr@2
|
405 |
# endif /* _STLP_STATIC_TEMPLATE_DATA */
|
williamr@2
|
406 |
|
williamr@2
|
407 |
#else
|
williamr@2
|
408 |
|
williamr@2
|
409 |
/* gcc-2.95.0 used to use "g++-3" directory which has been changed to "g++" in
|
williamr@2
|
410 |
* system-dependent "include" for 2.95.2 except for Cygwin and Mingw packages.
|
williamr@2
|
411 |
* I expect "g++-3" not being used in later releases.
|
williamr@2
|
412 |
* If your installation use "g++-3" include directory for any reason (pre-2.95.2 or Win binary kit),
|
williamr@2
|
413 |
* please change the macro below to point to your directory.
|
williamr@2
|
414 |
*/
|
williamr@2
|
415 |
|
williamr@2
|
416 |
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
|
williamr@2
|
417 |
# if defined(__DJGPP)
|
williamr@2
|
418 |
# define _STLP_NATIVE_INCLUDE_PATH ../lang/cxx
|
williamr@2
|
419 |
# elif (__GNUC__ >= 3) || (__GNUC_MINOR__ >= 97)
|
williamr@2
|
420 |
# define _STLP_NATIVE_INCLUDE_PATH ../include/g++-v3
|
williamr@2
|
421 |
# elif ((__GNUC_MINOR__ >= 95 && __GNUC_MINOR__ < 97) && \
|
williamr@2
|
422 |
!( defined (__FreeBSD__) || defined (__NetBSD__) || defined(__sgi) || defined (__OS2__) ) )
|
williamr@2
|
423 |
# define _STLP_NATIVE_INCLUDE_PATH ../g++-3
|
williamr@2
|
424 |
# elif (__GNUC_MINOR__ > 8) && (__GNUC_MINOR__ < 95) && (__GNUC__ < 3) && !defined( __Lynx__ )
|
williamr@2
|
425 |
/* this really sucks, as GNUpro does not really identifies itself, so we have to guess
|
williamr@2
|
426 |
* depending on a platform
|
williamr@2
|
427 |
*/
|
williamr@2
|
428 |
# ifdef __hpux
|
williamr@2
|
429 |
# define _STLP_NATIVE_INCLUDE_PATH ../g++-3
|
williamr@2
|
430 |
# else
|
williamr@2
|
431 |
# define _STLP_NATIVE_INCLUDE_PATH ../g++-2
|
williamr@2
|
432 |
# endif
|
williamr@2
|
433 |
# else
|
williamr@2
|
434 |
# define _STLP_NATIVE_INCLUDE_PATH g++
|
williamr@2
|
435 |
# endif
|
williamr@2
|
436 |
# endif
|
williamr@2
|
437 |
|
williamr@2
|
438 |
/* <exception> et al */
|
williamr@2
|
439 |
# ifdef __FreeBSD__
|
williamr@2
|
440 |
# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 95)
|
williamr@2
|
441 |
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
|
williamr@2
|
442 |
# endif
|
williamr@2
|
443 |
# else
|
williamr@2
|
444 |
/* azov */
|
williamr@2
|
445 |
# ifndef __Lynx__
|
williamr@2
|
446 |
# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)
|
williamr@2
|
447 |
/*
|
williamr@2
|
448 |
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../g++-v3
|
williamr@2
|
449 |
*/
|
williamr@2
|
450 |
# else
|
williamr@2
|
451 |
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
|
williamr@2
|
452 |
# endif
|
williamr@2
|
453 |
# endif
|
williamr@2
|
454 |
# endif
|
williamr@2
|
455 |
|
williamr@2
|
456 |
#endif /* GNUC_MINOR < 8 */
|
williamr@2
|
457 |
|
williamr@2
|
458 |
#if !defined (_STLP_NATIVE_C_INCLUDE_PATH)
|
williamr@2
|
459 |
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
|
williamr@2
|
460 |
#endif
|
williamr@2
|
461 |
|
williamr@2
|
462 |
/* Tune settings for the case where static template data members are not
|
williamr@2
|
463 |
* instaniated by default
|
williamr@2
|
464 |
*/
|
williamr@2
|
465 |
#if defined ( _STLP_NO_STATIC_TEMPLATE_DATA )
|
williamr@2
|
466 |
# define _STLP_STATIC_TEMPLATE_DATA 0
|
williamr@2
|
467 |
# if !defined ( _STLP_WEAK_ATTRIBUTE )
|
williamr@2
|
468 |
# define _STLP_WEAK_ATTRIBUTE 0
|
williamr@2
|
469 |
# endif
|
williamr@2
|
470 |
# ifdef __PUT_STATIC_DATA_MEMBERS_HERE
|
williamr@2
|
471 |
# define __DECLARE_INSTANCE(type,item,init) type item init
|
williamr@2
|
472 |
# else
|
williamr@2
|
473 |
# define __DECLARE_INSTANCE(type,item,init)
|
williamr@2
|
474 |
# endif
|
williamr@2
|
475 |
#else
|
williamr@2
|
476 |
# define _STLP_STATIC_TEMPLATE_DATA 1
|
williamr@2
|
477 |
#endif
|
williamr@2
|
478 |
|
williamr@4
|
479 |
|