1.1 --- a/epoc32/include/tools/stlport/stl/config/_watcom.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/tools/stlport/stl/config/_watcom.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,154 +1,154 @@
1.4 -// STLport configuration file
1.5 -// It is internal STLport header - DO NOT include it directly
1.6 -
1.7 -#define _STLP_COMPILER "Watcom"
1.8 -
1.9 -# ifndef _STLP_USE_NO_IOSTREAMS
1.10 -# define _STLP_USE_NO_IOSTREAMS
1.11 -# endif
1.12 -
1.13 -# define _STLP_NO_RELOPS_NAMESPACE
1.14 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
1.15 -
1.16 -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
1.17 -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
1.18 -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.19 -
1.20 -// On QNX, headers are supposed to be found in /usr/include,
1.21 -// so default "../include" should work.
1.22 -# ifndef __QNX__
1.23 -# define _STLP_NATIVE_INCLUDE_PATH ../h
1.24 -# endif
1.25 -
1.26 -// Inline replacements for locking calls under Watcom
1.27 -// Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using
1.28 -// standard WIN32 calls
1.29 -// Define _STL_MULTIPROCESSOR to enable lock
1.30 -#if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK)
1.31 -
1.32 -long __stl_InterlockedIncrement( long *var );
1.33 -long __stl_InterlockedDecrement( long *var );
1.34 -
1.35 -#ifdef _STL_MULTIPROCESSOR
1.36 -// Multiple Processors, add lock prefix
1.37 -#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
1.38 - ".586" \
1.39 - "mov eax, 1" \
1.40 - "lock xadd [ecx], eax" \
1.41 - "inc eax" \
1.42 - value [eax];
1.43 -
1.44 -
1.45 -#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
1.46 - ".586" \
1.47 - "mov eax, 0FFFFFFFFh" \
1.48 - "lock xadd [ecx], eax" \
1.49 - "dec eax" \
1.50 - value [eax];
1.51 -#else
1.52 -// Single Processor, lock prefix not needed
1.53 -#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
1.54 - ".586" \
1.55 - "mov eax, 1" \
1.56 - "xadd [ecx], eax" \
1.57 - "inc eax" \
1.58 - value [eax];
1.59 -
1.60 -#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
1.61 - ".586" \
1.62 - "mov eax, 0FFFFFFFFh" \
1.63 - "xadd [ecx], eax" \
1.64 - "dec eax" \
1.65 - value [eax];
1.66 -#endif // _STL_MULTIPROCESSOR
1.67 -
1.68 -long __stl_InterlockedExchange( long *Destination, long Value );
1.69 -
1.70 -// xchg has auto-lock
1.71 -#pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \
1.72 - ".586" \
1.73 - "xchg eax, [ecx]" \
1.74 - value [eax];
1.75 -#else
1.76 -
1.77 -#define __stl_InterlockedIncrement InterlockedIncrement
1.78 -#define __stl_InterlockedDecrement InterlockedDecrement
1.79 -#define __stl_InterlockedExchange InterlockedExchange
1.80 -#endif /* INLINE INTERLOCK */
1.81 -
1.82 -#define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x)
1.83 -#define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x)
1.84 -#define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
1.85 -
1.86 -// boris : is this true or just the header is not in /usr/include ?
1.87 -# ifdef __QNX__
1.88 -# define _STLP_NO_TYPEINFO 1
1.89 -# endif
1.90 -
1.91 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
1.92 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
1.93 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
1.94 -# define _STLP_NO_MEMBER_TEMPLATES 1
1.95 -# define _STLP_NO_FRIEND_TEMPLATES 1
1.96 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
1.97 -
1.98 -
1.99 -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
1.100 -# define _STLP_HAS_NO_NAMESPACES 1
1.101 -# define _STLP_NEED_TYPENAME 1
1.102 -
1.103 -# if __WATCOMC__ < 1100
1.104 -# define _STLP_NO_WCHAR_T 1
1.105 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
1.106 -# endif
1.107 -
1.108 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
1.109 -
1.110 -# define _STLP_STATIC_CONST_INIT_BUG 1
1.111 -// # define _STLP_THROW_RETURN_BUG 1
1.112 -# define _STLP_NO_TEMPLATE_CONVERSIONS 1
1.113 -
1.114 -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
1.115 -
1.116 -# define _STLP_HAS_NO_NEW_IOSTREAMS 1
1.117 -# define _STLP_HAS_NO_NEW_C_HEADERS 1
1.118 -# define _STLP_NO_NEW_NEW_HEADER 1
1.119 -# define _STLP_VENDOR_GLOBAL_STD
1.120 -
1.121 -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
1.122 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
1.123 -# define _STLP_NONTEMPL_BASE_MATCH_BUG
1.124 -# define _STLP_NO_EXCEPTION_HEADER 1
1.125 -# define _STLP_NO_BAD_ALLOC 1
1.126 -
1.127 -# define _STLP_NESTED_TYPE_PARAM_BUG 1
1.128 -
1.129 -# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
1.130 -
1.131 -# if (__WATCOM_CPLUSPLUS__ < 1100 )
1.132 -# define _STLP_NO_BOOL 1
1.133 -# define _STLP_NEED_EXPLICIT 1
1.134 -# define _STLP_NEED_MUTABLE 1
1.135 -# define _STLP_NO_ARROW_OPERATOR 1
1.136 -# endif
1.137 -// This one is present in 11, but apparently has bugs (with auto_ptr).
1.138 -# define _STLP_NO_NEW_STYLE_CASTS 1
1.139 -
1.140 -// Get rid of Watcom's min and max macros
1.141 -#undef min
1.142 -#undef max
1.143 -
1.144 -// for switches (-xs, -xss, -xst)
1.145 -//
1.146 -#if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST))
1.147 -# define _STLP_HAS_NO_EXCEPTIONS 1
1.148 -# endif
1.149 -
1.150 -# if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
1.151 -# define _REENTRANT 1
1.152 -# endif
1.153 -
1.154 -
1.155 -
1.156 -
1.157 -
1.158 +// STLport configuration file
1.159 +// It is internal STLport header - DO NOT include it directly
1.160 +
1.161 +#define _STLP_COMPILER "Watcom"
1.162 +
1.163 +# ifndef _STLP_USE_NO_IOSTREAMS
1.164 +# define _STLP_USE_NO_IOSTREAMS
1.165 +# endif
1.166 +
1.167 +# define _STLP_NO_RELOPS_NAMESPACE
1.168 +# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
1.169 +
1.170 +# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
1.171 +# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
1.172 +# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
1.173 +
1.174 +// On QNX, headers are supposed to be found in /usr/include,
1.175 +// so default "../include" should work.
1.176 +# ifndef __QNX__
1.177 +# define _STLP_NATIVE_INCLUDE_PATH ../h
1.178 +# endif
1.179 +
1.180 +// Inline replacements for locking calls under Watcom
1.181 +// Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using
1.182 +// standard WIN32 calls
1.183 +// Define _STL_MULTIPROCESSOR to enable lock
1.184 +#if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK)
1.185 +
1.186 +long __stl_InterlockedIncrement( long *var );
1.187 +long __stl_InterlockedDecrement( long *var );
1.188 +
1.189 +#ifdef _STL_MULTIPROCESSOR
1.190 +// Multiple Processors, add lock prefix
1.191 +#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
1.192 + ".586" \
1.193 + "mov eax, 1" \
1.194 + "lock xadd [ecx], eax" \
1.195 + "inc eax" \
1.196 + value [eax];
1.197 +
1.198 +
1.199 +#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
1.200 + ".586" \
1.201 + "mov eax, 0FFFFFFFFh" \
1.202 + "lock xadd [ecx], eax" \
1.203 + "dec eax" \
1.204 + value [eax];
1.205 +#else
1.206 +// Single Processor, lock prefix not needed
1.207 +#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
1.208 + ".586" \
1.209 + "mov eax, 1" \
1.210 + "xadd [ecx], eax" \
1.211 + "inc eax" \
1.212 + value [eax];
1.213 +
1.214 +#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
1.215 + ".586" \
1.216 + "mov eax, 0FFFFFFFFh" \
1.217 + "xadd [ecx], eax" \
1.218 + "dec eax" \
1.219 + value [eax];
1.220 +#endif // _STL_MULTIPROCESSOR
1.221 +
1.222 +long __stl_InterlockedExchange( long *Destination, long Value );
1.223 +
1.224 +// xchg has auto-lock
1.225 +#pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \
1.226 + ".586" \
1.227 + "xchg eax, [ecx]" \
1.228 + value [eax];
1.229 +#else
1.230 +
1.231 +#define __stl_InterlockedIncrement InterlockedIncrement
1.232 +#define __stl_InterlockedDecrement InterlockedDecrement
1.233 +#define __stl_InterlockedExchange InterlockedExchange
1.234 +#endif /* INLINE INTERLOCK */
1.235 +
1.236 +#define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x)
1.237 +#define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x)
1.238 +#define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
1.239 +
1.240 +// boris : is this true or just the header is not in /usr/include ?
1.241 +# ifdef __QNX__
1.242 +# define _STLP_NO_TYPEINFO 1
1.243 +# endif
1.244 +
1.245 +# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
1.246 +# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
1.247 +# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
1.248 +# define _STLP_NO_MEMBER_TEMPLATES 1
1.249 +# define _STLP_NO_FRIEND_TEMPLATES 1
1.250 +# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
1.251 +
1.252 +
1.253 +# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
1.254 +# define _STLP_HAS_NO_NAMESPACES 1
1.255 +# define _STLP_NEED_TYPENAME 1
1.256 +
1.257 +# if __WATCOMC__ < 1100
1.258 +# define _STLP_NO_WCHAR_T 1
1.259 +# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
1.260 +# endif
1.261 +
1.262 +# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
1.263 +
1.264 +# define _STLP_STATIC_CONST_INIT_BUG 1
1.265 +// # define _STLP_THROW_RETURN_BUG 1
1.266 +# define _STLP_NO_TEMPLATE_CONVERSIONS 1
1.267 +
1.268 +# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
1.269 +
1.270 +# define _STLP_HAS_NO_NEW_IOSTREAMS 1
1.271 +# define _STLP_HAS_NO_NEW_C_HEADERS 1
1.272 +# define _STLP_NO_NEW_NEW_HEADER 1
1.273 +# define _STLP_VENDOR_GLOBAL_STD
1.274 +
1.275 +# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
1.276 +# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
1.277 +# define _STLP_NONTEMPL_BASE_MATCH_BUG
1.278 +# define _STLP_NO_EXCEPTION_HEADER 1
1.279 +# define _STLP_NO_BAD_ALLOC 1
1.280 +
1.281 +# define _STLP_NESTED_TYPE_PARAM_BUG 1
1.282 +
1.283 +# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
1.284 +
1.285 +# if (__WATCOM_CPLUSPLUS__ < 1100 )
1.286 +# define _STLP_NO_BOOL 1
1.287 +# define _STLP_NEED_EXPLICIT 1
1.288 +# define _STLP_NEED_MUTABLE 1
1.289 +# define _STLP_NO_ARROW_OPERATOR 1
1.290 +# endif
1.291 +// This one is present in 11, but apparently has bugs (with auto_ptr).
1.292 +# define _STLP_NO_NEW_STYLE_CASTS 1
1.293 +
1.294 +// Get rid of Watcom's min and max macros
1.295 +#undef min
1.296 +#undef max
1.297 +
1.298 +// for switches (-xs, -xss, -xst)
1.299 +//
1.300 +#if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST))
1.301 +# define _STLP_HAS_NO_EXCEPTIONS 1
1.302 +# endif
1.303 +
1.304 +# if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
1.305 +# define _REENTRANT 1
1.306 +# endif
1.307 +
1.308 +
1.309 +
1.310 +
1.311 +