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@comeaucomputing.com 19// You shouldn't need to change anything below here for Comeau C++. 20// If you do, please tell us at comeau@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 98namespace 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@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