1 2 // STLport configuration file 3 // It is internal STLport header - DO NOT include it directly 4 5 #define _STLP_COMPILER "Comeau" 6 7 #include <stl/config/_native_headers.h> 8 9 #define _STLP_UINT32_T unsigned int 10 11 #define _STLP_HAS_NO_NEW_C_HEADERS 12 // #define _STLP_VENDOR_GLOBAL_EXCEPT_STD 13 #define _STLP_LONG_LONG long long 14 15 16 // 17 // ADDITIONS FOR COMEAU C++, made by Comeau Computing. 18 // We can be reached through comeau (at) comeaucomputing.com 19 // You shouldn't need to change anything below here for Comeau C++. 20 // If you do, please tell us at comeau (at) comeaucomputing.com 21 // 22 // Changes made here, AND THROUGH ALL FILES, based upon the __COMO__ macro 23 // (and SIMILAR NAMES INVOLVING COMO).... no doubt some of this will 24 // change as SGI integrates the changes into their code base since 25 // some changes are not really Comeau C++ specific, but required to 26 // make the SGI code compliant with Standard C++). 27 // 28 // Testing was done with Comeau C++ 4.2.44 and 4.2.45.2. Changes were made for 29 // both Comeau relaxed mode and Comeau strict mode, especially for end user code 30 // (that is, some of the .cxx files cannot compile in strict mode, because they 31 // contain extensions to Standard C++, however their object code forms can 32 // be used once compiled in relaxed mode, even if the end user code uses 33 // strict mode). 34 // 35 // These changes may also work for some earlier versions of Comeau C++, 36 // though we have not tested them. 37 // 38 // Actual mods made under RedHat 6.1 LINUX, should be ok with SuSE too and 39 // other LINUX's, and older Caldera LINUX, Solaris/SPARC, SunOS, SCO UNIX, 40 // and NetBSD. Other platforms may be added. Comeau will also perform 41 // custom ports for you. 42 // 43 // Check libcomo details at http://www.comeaucomputing.com/libcomo and 44 // http://www.comeaucomputing.com 45 // 46 // History of Comeau changes (this is rough, as work was often going on in parallel): 47 // BETA1 July 14, 2000, Initial port for RedHat 6.1 INTEL/ELF 48 // BETA2 Aug 4, 2000, Stronger RedHat support 49 // Support for Comeau strict mode for end user code 50 // BETA3 Aug 22, 2000, Support for other LINUX/INTEL/ELF's, including older ones 51 // BETA4 Sept 2, 2000, Initial support for SCO UNIX + other UNIX x86 SVR3's 52 // Stronger support for end user Comeau strict mode 53 // BETA5 Oct 5, 2000, Initial support for Solaris/SPARC 54 // More SCO support (though still incomplete) 55 // BETA6 Feb 5, 2001, Minor mods to accomodate Comeau C++ 4.2.45.1 56 // BETA7 Mar 13, 2001, Verified with Comeau C++ 4.2.45.2 57 // Minor NetBSD support 58 // BETA8 Apr 1. 2001, Initial support for SunOS/SPARC 59 // BETA9 Apr 7, 2001, Stronger SCO support + other UNIX x86 SVR3's 60 // Mods for an fpos_t problem for some LINUXes 61 // Mods since Destroy did not work in strict mode 62 // BETA10 Apr 12. 2001, Stronger NetBSD support 63 // 64 // PLANNED: 65 // BETAx TBA TBA, 2001, NetBSD, UNIXWARE, and Windows support expected 66 // 67 68 69 #ifdef __linux__ 70 71 # define _STLP_NO_NATIVE_MBSTATE_T 1 72 # define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 73 # define _STLP_NO_NATIVE_WIDE_STREAMS 1 74 # define _STLP_NO_LONG_DOUBLE 1 75 76 // Comeau C++ under LINUX/INTEL/ELF 77 // Preprocess away "long long" routines for now, even in relaxed mode 78 # define __wcstoull_internal_defined 1 79 # define __wcstoll_internal_defined 1 80 81 #endif /* __COMO__ under __linux__ */ 82 83 #ifdef __USING_x86SVR3x_WITH_COMO /* SCO et al */ 84 /* UNIX 386+ SVR3 mods made with __USING_x86SVR3x_WITH_COMO 85 in other sources, not here */ 86 # define atan2l atan2 87 # define cosl cos 88 # define sinl sin 89 # define sqrtl sqrt 90 # include <math.h> 91 inline long double expl(long double arg) { return exp(arg); } 92 inline long double logl(long double arg) { return log(arg); } 93 # define log10l log10 94 95 # define sinhl sinh 96 # define coshl cosh 97 # define fabsl fabs 98 namespace std { 99 inline int min(int a, int b) { return a>b ? b : a; } 100 } 101 #endif 102 103 #ifdef sun 104 // Comeau C++ under Solaris/SPARC or SunOS 105 106 #ifdef solarissparc 107 #define __USING_SOLARIS_SPARC_WITH_COMO /* show this in the source when grep'ing for COMO */ 108 // Note comowchar.h for Solaris/SPARC wchar stuff 109 110 #include <math.h> 111 # define sinf sin 112 # define sinl sin 113 # define sinhf sinh 114 # define sinhl sinh 115 # define cosf cos 116 # define cosl cos 117 # define coshf cosh 118 # define coshl cosh 119 # define atan2l atan2 120 # define atan2f atan2 121 inline float logf(float arg) { return log(arg); } 122 inline long double logl(long double arg) { return log(arg); } 123 # define log10f log10 124 # define log10l log10 125 # define expf exp 126 inline long double expl(long double arg) { return exp(arg); } 127 # define sqrtf sqrt 128 # define sqrtl sqrt 129 # define fabsf fabs 130 # define fabsl fabs 131 #else 132 #define __USING_SUNOS_WITH_COMO 133 134 #define __unix 1 135 #define __EXTENSIONS__ /* This might create undue noise somewhere */ 136 #endif 137 #endif /* sun */ 138 139 #if defined(__NetBSD__) 140 // From non-como #ifdef __GNUC__ above 141 #undef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE 142 #define __unix 1 143 144 #include <sys/cdefs.h> 145 // Some joker #define'd __END_DECLS as }; 146 #undef __END_DECLS 147 #define __END_DECLS } 148 149 // <sys/stat.h> prob 150 #include <sys/cdefs.h> 151 #undef __RENAME 152 #define __RENAME(x) 153 154 #define wchar_t __COMO_WCHAR_T 155 #include <stddef.h> 156 #undef wchar_t 157 158 #include <math.h> 159 # ifdef BORIS_DISABLED 160 # define atan2l atan2 161 # define cosl cos 162 # define sinl sin 163 # define sqrtl sqrt 164 inline long double expl(long double arg) { return exp(arg); } 165 inline long double logl(long double arg) { return log(arg); } 166 # define log10l log10 167 # define sinhl sinh 168 # define coshl cosh 169 # define fabsl fabs 170 # endif 171 #endif /* __NetBSD__ under __COMO__ */ 172 173 // Shouldn't need to change anything below here for Comeau C++ 174 // If so, tell us at comeau (at) comeaucomputing.com 175 176 #define _STLP_NO_DRAND48 177 178 #define _STLP_PARTIAL_SPECIALIZATION_SYNTAX 179 #define _STLP_NO_USING_CLAUSE_IN_CLASS 180 181 #if __COMO_VERSION__ < 4300 182 #if __COMO_VERSION__ >= 4245 183 #define _STLP_NO_EXCEPTION_HEADER /**/ 184 // Is this needed? 185 # include <stdexcept.stdh> 186 #endif 187 #define _STLP_NO_BAD_ALLOC /**/ 188 #define _STLP_USE_AUTO_PTR_CONVERSIONS /**/ 189 #endif 190 191 // this one is true only with MS 192 # if defined (_MSC_VER) 193 # define _STLP_WCHAR_T_IS_USHORT 1 194 # if _MSC_VER <= 1200 195 # define _STLP_VENDOR_GLOBAL_CSTD 196 # endif 197 # if _MSC_VER < 1100 198 # define _STLP_NO_BAD_ALLOC 1 199 # define _STLP_NO_EXCEPTION_HEADER 1 200 # define _STLP_NO_NEW_NEW_HEADER 1 201 # define _STLP_USE_NO_IOSTREAMS 1 202 # endif 203 # endif 204 205 // # define __EDG_SWITCHES 206 207 208