/home/ntakagi/work/STLport-5.1.5/stlport/stl/config/_watcom.hGo to the documentation of this file.00001 // STLport configuration file 00002 // It is internal STLport header - DO NOT include it directly 00003 00004 #define _STLP_COMPILER "Watcom" 00005 00006 # ifndef _STLP_USE_NO_IOSTREAMS 00007 # define _STLP_USE_NO_IOSTREAMS 00008 # endif 00009 00010 # define _STLP_NO_RELOPS_NAMESPACE 00011 # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 00012 00013 # define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 00014 # define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS 00015 # define _STLP_USE_OLD_HP_ITERATOR_QUERIES 00016 00017 // On QNX, headers are supposed to be found in /usr/include, 00018 // so default "../include" should work. 00019 # ifndef __QNX__ 00020 # define _STLP_NATIVE_INCLUDE_PATH ../h 00021 # endif 00022 00023 // Inline replacements for locking calls under Watcom 00024 // Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using 00025 // standard WIN32 calls 00026 // Define _STL_MULTIPROCESSOR to enable lock 00027 #if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK) 00028 00029 long __stl_InterlockedIncrement( long *var ); 00030 long __stl_InterlockedDecrement( long *var ); 00031 00032 #ifdef _STL_MULTIPROCESSOR 00033 // Multiple Processors, add lock prefix 00034 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ 00035 ".586" \ 00036 "mov eax, 1" \ 00037 "lock xadd [ecx], eax" \ 00038 "inc eax" \ 00039 value [eax]; 00040 00041 00042 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ 00043 ".586" \ 00044 "mov eax, 0FFFFFFFFh" \ 00045 "lock xadd [ecx], eax" \ 00046 "dec eax" \ 00047 value [eax]; 00048 #else 00049 // Single Processor, lock prefix not needed 00050 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ 00051 ".586" \ 00052 "mov eax, 1" \ 00053 "xadd [ecx], eax" \ 00054 "inc eax" \ 00055 value [eax]; 00056 00057 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ 00058 ".586" \ 00059 "mov eax, 0FFFFFFFFh" \ 00060 "xadd [ecx], eax" \ 00061 "dec eax" \ 00062 value [eax]; 00063 #endif // _STL_MULTIPROCESSOR 00064 00065 long __stl_InterlockedExchange( long *Destination, long Value ); 00066 00067 // xchg has auto-lock 00068 #pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \ 00069 ".586" \ 00070 "xchg eax, [ecx]" \ 00071 value [eax]; 00072 #else 00073 00074 #define __stl_InterlockedIncrement InterlockedIncrement 00075 #define __stl_InterlockedDecrement InterlockedDecrement 00076 #define __stl_InterlockedExchange InterlockedExchange 00077 #endif /* INLINE INTERLOCK */ 00078 00079 #define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x) 00080 #define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x) 00081 #define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y) 00082 00083 // boris : is this true or just the header is not in /usr/include ? 00084 # ifdef __QNX__ 00085 # define _STLP_NO_TYPEINFO 1 00086 # endif 00087 00088 # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 00089 # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 00090 # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 00091 # define _STLP_NO_MEMBER_TEMPLATES 1 00092 # define _STLP_NO_FRIEND_TEMPLATES 1 00093 # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 00094 00095 00096 # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 00097 # define _STLP_HAS_NO_NAMESPACES 1 00098 # define _STLP_NEED_TYPENAME 1 00099 00100 # if __WATCOMC__ < 1100 00101 # define _STLP_NO_WCHAR_T 1 00102 # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 00103 # endif 00104 00105 # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 00106 00107 # define _STLP_STATIC_CONST_INIT_BUG 1 00108 // # define _STLP_THROW_RETURN_BUG 1 00109 # define _STLP_NO_TEMPLATE_CONVERSIONS 1 00110 00111 # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 00112 00113 # define _STLP_HAS_NO_NEW_IOSTREAMS 1 00114 # define _STLP_HAS_NO_NEW_C_HEADERS 1 00115 # define _STLP_NO_NEW_NEW_HEADER 1 00116 # define _STLP_VENDOR_GLOBAL_STD 00117 00118 # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 00119 # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 00120 # define _STLP_NONTEMPL_BASE_MATCH_BUG 00121 # define _STLP_NO_EXCEPTION_HEADER 1 00122 # define _STLP_NO_BAD_ALLOC 1 00123 00124 # define _STLP_NESTED_TYPE_PARAM_BUG 1 00125 00126 # define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1 00127 00128 # if (__WATCOM_CPLUSPLUS__ < 1100 ) 00129 # define _STLP_NO_BOOL 1 00130 # define _STLP_NEED_EXPLICIT 1 00131 # define _STLP_NEED_MUTABLE 1 00132 # define _STLP_NO_ARROW_OPERATOR 1 00133 # endif 00134 // This one is present in 11, but apparently has bugs (with auto_ptr). 00135 # define _STLP_NO_NEW_STYLE_CASTS 1 00136 00137 // Get rid of Watcom's min and max macros 00138 #undef min 00139 #undef max 00140 00141 // for switches (-xs, -xss, -xst) 00142 // 00143 #if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST)) 00144 # define _STLP_HAS_NO_EXCEPTIONS 1 00145 # endif 00146 00147 # if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT) 00148 # define _REENTRANT 1 00149 # endif 00150 00151 00152 00153 00154
Generated on Mon Mar 10 15:32:46 2008 by ![]() |