OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / ndk / sources / cxx-stl / stlport / stlport / stl / config / _gcc.h
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 */
109 typedef 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