first commit

This commit is contained in:
Jose Caban
2025-06-07 11:34:38 -04:00
commit 0eb2d7c07d
4708 changed files with 1500614 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
#define _STLP_PLATFORM "AIX"
#define _STLP_USE_UNIX_IO

View File

@@ -0,0 +1,30 @@
// STLport config file for Apogee 4.x
#define _STLP_COMPILER "Apogee"
#define _STLP_NO_NEW_NEW_HEADER 1
#define _STLP_HAS_NO_NEW_C_HEADERS 1
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
// # define _STLP_RAND48 1
#define _STLP_LONG_LONG long long
#define _STLP_NO_BAD_ALLOC 1
#define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
#define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
// # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
#define _STLP_NO_EXCEPTION_HEADER 1
#undef _STLP_LINK_TIME_INSTANTIATION
#define _STLP_LINK_TIME_INSTANTIATION 1
#ifdef __STDLIB
# undef _STLP_NO_NEW_C_HEADERS
# undef _STLP_NO_NEW_NEW_HEADER
# undef _STLP_NO_BAD_ALLOC
# undef _STLP_LONG_LONG
#else
# undef _STLP_NO_EXCEPTION_SPEC
# define _STLP_NO_EXCEPTION_SPEC 1
#endif

View File

@@ -0,0 +1,118 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly
*/
/* common configuration settings for Apple MPW MrCpp / SCpp */
#define _STLP_COMPILER "spec me!"
#if defined(__MRC__) && __MRC__ < 0x500
# error Apple's MPW MrCpp v.5.0.0 or better compiler required
#endif
#if defined(__SC__) && __SC__ < 0x890
# error Apple's MPW SCpp v.8.9.0 or better compiler required
#endif
/* TODO: Check that this config is necessary for all compiler versions.
* It is here for historical reasons for the moment.
*/
#define _STLP_NO_CONTAINERS_EXTENSION
#ifdef qMacApp
# ifndef __CONDITIONALMACROS__ /* skip including ConditionalMacros_AC.h if ConditionalMacros.h is already included */
# include <CoreSwitches_AC.h>
# include <ConditionalMacros_AC.h>
# include <Types_AC.h>
# define _STLP_FILE__ _FILE_AC
# define _STLP_DEBUG_MESSAGE
# define __stl_debug_message ProgramBreak_AC
# include <ConditionalMacros.h>
# endif
# include <Types.h>
#else
# include <ConditionalMacros.h>
# include <Types.h>
#endif
#define _STLP_UINT32_T UInt32
typedef int wint_t;
#ifndef TYPE_BOOL
# error <ConditionalMacros.h> must be included. (TYPE_BOOL)
#endif
#if !TYPE_BOOL
# define _STLP_NO_BOOL
# define _STLP_DONT_USE_BOOL_TYPEDEF
#endif
#ifndef TYPE_LONGLONG
# error <ConditionalMacros.h> must be included. (TYPE_LONGLONG)
#endif
#if TYPE_LONGLONG
# define _STLP_LONG_LONG long long
#endif
#if !__option(exceptions)
# define _STLP_HAS_NO_EXCEPTIONS
#endif
#define _STLP_DEBUG_MESSAGE_POST DebugStr("\pSTL diagnosis issued. See 'stderr' for detail.");
#define _STLP_ASSERT_MSG_TRAILER " "
#ifdef _STLP_DEBUG
# define _STLP_THROW(x) (DebugStr("\pSTL is about to throw exception: "#x),throw x)
#endif
#if defined(__MRC__)
# ifndef __spillargs
# define __spillargs 1 // MrCpp requires this symbol to be defined as 1 to properly handle va_start; ref.[ file stdarg.h; line 26 ]
# endif
#endif
#if defined(__SC__)
#define _STLP_VENDOR_LONG_DOUBLE_MATH //*TY 12/03/2000 - SCpp's native math type is long double
#endif
#ifndef _STLP_NATIVE_INCLUDE_PATH
# if __option(unix_includes)
# define _STLP_NATIVE_INCLUDE_PATH ../CIncludes // expects the alias to {CIncludes} under the same folder as {STL}
# else
# define _STLP_NATIVE_INCLUDE_PATH ::CIncludes // expects the alias to {CIncludes} under the same folder as {STL}
# endif
#endif
#if !defined(_STLP_MAKE_HEADER)
# if !__option(unix_includes)
# define _STLP_MAKE_HEADER(path, header) <path:header> // Mac uses ":" for directory delimiter
# endif
#endif
# define _STLD _DBG // to keep the length of generated symbols within the compiler limitation
#define _STLP_USE_STDIO_IO 1 //*TY 02/24/2000 - see also ; ref.[ file _fstream.h; line 36 ]
#define _STLP_NO_THREADS //*TY 12/17/2000 - multi-thread capability not explored, yet.
#undef _REENTRANT //*ty 11/24/2001 - to make sure no thread facility is activated
#define _NOTHREADS //*ty 12/07/2001 -
// native library limitations
#define _STLP_VENDOR_GLOBAL_STD // mpw's c++ libs do not utilize namespace std yet
#define _STLP_NO_BAD_ALLOC // known limitation
#define _STLP_HAS_NO_NEW_C_HEADERS // known limitation
#define _STLP_NO_NEW_NEW_HEADER // known limitation
#define _STLP_NO_NATIVE_MBSTATE_T // known limitation
#define _STLP_NO_NATIVE_WIDE_FUNCTIONS // known limitation
#define _STLP_NO_NATIVE_WIDE_STREAMS // known limitation
#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT // known limitation
#define _STLP_BROKEN_EXCEPTION_CLASS // known limitation
// compiler limitations
# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
# define _STLP_MPWFIX_TRY try{ //*TY 06/01/2000 - exception handling bug workaround
# define _STLP_MPWFIX_CATCH }catch(...){throw;} //*TY 06/01/2000 - exception handling bug workaround
# define _STLP_MPWFIX_CATCH_ACTION(action) }catch(...){action;throw;} //*TY 06/01/2000 - exception handling bug workaround
# define _STLP_THROW_RETURN_BUG // known limitation
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION // known limitation
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX // known limitation
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER // known limitation
# define _STLP_NO_RELOPS_NAMESPACE // known limitation
// end of stl_apple.h

View File

@@ -0,0 +1,55 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
// AS/400 C++ config
# ifdef _REENTRANT
# define _PTHREADS
# endif
# define _STLP_NO_NEW_NEW_HEADER 1
# define _STLP_NO_BOOL
# define _STLP_LIMITED_DEFAULT_TEMPLATES
# define _STLP_HAS_NO_NAMESPACES
# define _STLP_NEED_TYPENAME
# define _STLP_NEED_EXPLICIT
# define _STLP_HAS_NO_EXCEPTIONS
# define _STLP_NO_EXCEPTION_SPEC
# define _STLP_NO_ARROW_OPERATOR
# define _STLP_NO_NEW_STYLE_CASTS
# define _STLP_NEED_MUTABLE
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
# define _STLP_NO_BAD_ALLOC
# define _STLP_NO_MEMBER_TEMPLATES
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
# define _STLP_NO_QUALIFIED_FRIENDS
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
# define _STLP_NO_METHOD_SPECIALIZATION
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
// # define _STLP_NO_EXCEPTION_HEADER
# define _STLP_HAS_NO_NEW_C_HEADERS
# define _STLP_STATIC_CONST_INIT_BUG
# define _STLP_THROW_RETURN_BUG
# define _STLP_LINK_TIME_INSTANTIATION
# define _STLP_NO_TEMPLATE_CONVERSIONS
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
# define _STLP_TRIVIAL_DESTRUCTOR_BUG 1
# if defined(_LONG_LONG)
# define _STLP_LONG_LONG long long
# endif
# if defined(_PTHREADS)
# define _MULTI_THREADED
# endif
// fbp : to fix __partition() problem
# define _STLP_NONTEMPL_BASE_MATCH_BUG 1

View File

@@ -0,0 +1,108 @@
/* We do not use auto link feature when:
* - user asked not to use it (_STLP_DONT_USE_AUTO_LINK)
* - STLport is used only as a STL library (_STLP_NO_IOSTREAMS || _STLP_USE_NO_IOSTREAMS)
* - we are building a C translation unit, STLport is a C++ Standard library implementation
*/
#if !defined (__BUILDING_STLPORT) && !defined (_STLP_DONT_USE_AUTO_LINK) && \
!defined (_STLP_NO_IOSTREAMS) && !defined (_STLP_USE_NO_IOSTREAMS) && \
defined (__cplusplus)
# define _STLP_STRINGIZE(X) _STLP_STRINGIZE_AUX(X)
# define _STLP_STRINGIZE_AUX(X) #X
# if defined (_STLP_DEBUG)
# define _STLP_LIB_OPTIM_MODE "stld"
# elif defined (_DEBUG)
# define _STLP_LIB_OPTIM_MODE "d"
# else
# define _STLP_LIB_OPTIM_MODE ""
# endif
# if defined (_STLP_LIB_NAME_MOTIF)
# define _STLP_LIB_MOTIF "_"_STLP_LIB_NAME_MOTIF
# else
# define _STLP_LIB_MOTIF ""
# endif
# if defined (_STLP_USE_DYNAMIC_LIB)
# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
# define _STLP_LIB_TYPE "_x"
# else
# define _STLP_LIB_TYPE ""
# endif
# else
# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
# define _STLP_LIB_TYPE "_statix"
# else
# define _STLP_LIB_TYPE "_static"
# endif
# endif
// LFH - always include version information
# if defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_VERSION_STR "."_STLP_STRINGIZE(_STLPORT_MAJOR)"."_STLP_STRINGIZE(_STLPORT_MINOR)
# else
# define _STLP_VERSION_STR ""
# endif
// Start LFH
// Put back the useful, working code from pre 5.0.0 that allows coexistance of multiple VC version builds of
// STLPort, and add a case for VC8 and VC9. Also add in _STLP_LIB_ARCHNAME so that x64 builds can co-exist.
#ifdef _M_X64
#define _STLP_LIB_ARCHNAME "_x64"
#else
#define _STLP_LIB_ARCHNAME ""
#endif
# ifdef __ICL
# define _STLP_LIB_BASENAME "stlport_icl"_STLP_LIB_ARCHNAME
# else
# if (_MSC_VER >= 1600)
# define _STLP_LIB_BASENAME "stlport_vc10"_STLP_LIB_ARCHNAME
# elif (_MSC_VER >= 1500)
# define _STLP_LIB_BASENAME "stlport_vc9"_STLP_LIB_ARCHNAME
# elif (_MSC_VER >= 1400)
# define _STLP_LIB_BASENAME "stlport_vc8"_STLP_LIB_ARCHNAME
# elif (_MSC_VER >= 1310)
# define _STLP_LIB_BASENAME "stlport_vc71"_STLP_LIB_ARCHNAME
# elif (_MSC_VER >= 1300)
# define _STLP_LIB_BASENAME "stlport_vc70"_STLP_LIB_ARCHNAME
# elif (_MSC_VER >= 1200)
//# ifdef _UNICODE
//# define _STLP_LIB_BASENAME "stlport_vc6_unicode"_STLP_LIB_ARCHNAME
//# else
# define _STLP_LIB_BASENAME "stlport_vc6"_STLP_LIB_ARCHNAME
//# endif
# elif (_MSC_VER >= 1100)
//# ifdef _UNICODE
//# define _STLP_LIB_BASENAME "stlport_vc5_unicode"_STLP_LIB_ARCHNAME
//# else
# define _STLP_LIB_BASENAME "stlport_vc5"_STLP_LIB_ARCHNAME
//# endif
# endif /* (_MSC_VER >= 1200) */
# endif /* __ICL */
// end LFH
//# define _STLP_STLPORT_LIB _STLP_LIB_BASENAME""_STLP_LIB_OPTIM_MODE""_STLP_LIB_TYPE"."_STLP_VERSION_STR".lib"
//# define _STLP_STLPORT_LIB "stlport"_STLP_LIB_OPTIM_MODE""_STLP_LIB_TYPE""_STLP_LIB_MOTIF"."_STLP_VERSION_STR".lib"
# define _STLP_STLPORT_LIB _STLP_LIB_BASENAME""_STLP_LIB_OPTIM_MODE""_STLP_LIB_TYPE""_STLP_VERSION_STR".lib"
# if defined (_STLP_VERBOSE)
# pragma message ("STLport: Auto linking to "_STLP_STLPORT_LIB)
# endif
# pragma comment (lib, _STLP_STLPORT_LIB)
# undef _STLP_STLPORT_LIB
# undef _STLP_LIB_OPTIM_MODE
# undef _STLP_LIB_TYPE
# undef _STLP_STRINGIZE_AUX
# undef _STLP_STRINGIZE
#endif /* _STLP_DONT_USE_AUTO_LINK */

View File

@@ -0,0 +1,138 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly */
#define _STLP_COMPILER "Borland"
#if (__BORLANDC__ < 0x551)
# error - Borland compilers below version 5.5.1 not supported.
#endif
#pragma defineonoption _STLP_NO_RTTI -RT-
#define _STLP_DONT_SUP_DFLT_PARAM
#if (__BORLANDC__ >= 0x580)
# define _STLP_HAS_INCLUDE_NEXT
# define _STLP_NATIVE_HEADER(header) <../include/##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/dinkumware/##header>
# define _STLP_NO_NEW_C_HEADERS
# define _STLP_NO_FORCE_INSTANTIATE
#endif
#if (__BORLANDC__ >= 0x570) && (__BORLANDC__ < 0x580)
# define _STLP_NO_NEW_C_HEADERS
# define _STLP_NO_FORCE_INSTANTIATE
# define _STLP_DEF_CONST_DEF_PARAM_BUG
# define _STLP_USE_DEFAULT_FILE_OFFSET
# if defined (__cplusplus)
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include/c++/ ## GCC_VERSION
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include/c++/ ## GCC_VERSION
# endif
# undef _SYS_CDEFS_H
# include </usr/include/sys/cdefs.h>
# ifdef __MT__
# define _PTHREADS
# if !defined (_RTLDLL)
# define _STLP_DONT_USE_PTHREAD_SPINLOCK
# endif
# else
# define _NOTHREADS
# endif
# pragma defineonoption _CPPUNWIND -xd
# define _STLP_NO_EXCEPTION_HEADER
# define _STLP_DONT_USE_EXCEPTIONS
#endif
#if (__BORLANDC__ >= 0x560) && (__BORLANDC__ < 0x570)
# define _USE_OLD_RW_STL
#endif
#if (__BORLANDC__ >= 0x560)
# if !defined (__BUILDING_STLPORT)
# define NOWINBASEINTERLOCK
# endif
# define _STLP_LANG_INVARIANT_DEFINED
#endif
#if (__BORLANDC__ < 0x590)
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION
// <bitset> problems
# define _STLP_MEMBER_SPECIALIZATION_BUG 1
# ifdef __cplusplus
# define _STLP_TR1 _STLP_STD_NAME::tr1::
# endif
#endif
#if (__BORLANDC__ < 0x564)
# define _STLP_QUALIFIED_SPECIALIZATION_BUG
# define _STLP_NO_MOVE_SEMANTIC
#endif
#define _STLP_DONT_USE_PRIV_NAMESPACE
#define _STLP_NO_TYPENAME_BEFORE_NAMESPACE
#define _STLP_NO_VENDOR_STDLIB_L
#define _STLP_NO_VENDOR_MATH_F
#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1
#if (__BORLANDC__ < 0x570) || (__BORLANDC__ >= 0x580)
#define _STLP_NO_NATIVE_MBSTATE_T
#undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
#endif
#if (__BORLANDC__ < 0x580) && !defined (_RTLDLL)
# define _UNCAUGHT_EXCEPTION 1
#endif
// <limits> problem
#define _STLP_STATIC_CONST_INIT_BUG
#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
#define _STLP_LONG_LONG __int64
// auto enable thread safety and exceptions:
#ifndef _CPPUNWIND
# define _STLP_HAS_NO_EXCEPTIONS
#endif
#if defined (__MT__) && !defined (_NOTHREADS)
# define _STLP_THREADS
#endif
#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
#if defined (_DLL)
# define _STLP_DLL
#endif
#if defined (_RTLDLL)
# define _STLP_RUNTIME_DLL
#endif
#include <stl/config/_detect_dll_or_lib.h>
#undef _STLP_RUNTIME_DLL
#undef _STLP_DLL
#if defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_USE_DECLSPEC 1
# if defined (__BUILDING_STLPORT)
# define _STLP_CALL __cdecl __export
# else
# define _STLP_CALL __cdecl
# endif
#else
# define _STLP_CALL __cdecl
#endif
#if !defined (__linux__)
# include <stl/config/_auto_link.h>
#endif
#include <stl/config/_feedback.h>

View File

@@ -0,0 +1,207 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "Comeau"
#include <stl/config/_native_headers.h>
#define _STLP_UINT32_T unsigned int
#define _STLP_HAS_NO_NEW_C_HEADERS
// #define _STLP_VENDOR_GLOBAL_EXCEPT_STD
#define _STLP_LONG_LONG long long
//
// ADDITIONS FOR COMEAU C++, made by Comeau Computing.
// We can be reached through comeau@comeaucomputing.com
// You shouldn't need to change anything below here for Comeau C++.
// If you do, please tell us at comeau@comeaucomputing.com
//
// Changes made here, AND THROUGH ALL FILES, based upon the __COMO__ macro
// (and SIMILAR NAMES INVOLVING COMO).... no doubt some of this will
// change as SGI integrates the changes into their code base since
// some changes are not really Comeau C++ specific, but required to
// make the SGI code compliant with Standard C++).
//
// Testing was done with Comeau C++ 4.2.44 and 4.2.45.2. Changes were made for
// both Comeau relaxed mode and Comeau strict mode, especially for end user code
// (that is, some of the .cxx files cannot compile in strict mode, because they
// contain extensions to Standard C++, however their object code forms can
// be used once compiled in relaxed mode, even if the end user code uses
// strict mode).
//
// These changes may also work for some earlier versions of Comeau C++,
// though we have not tested them.
//
// Actual mods made under RedHat 6.1 LINUX, should be ok with SuSE too and
// other LINUX's, and older Caldera LINUX, Solaris/SPARC, SunOS, SCO UNIX,
// and NetBSD. Other platforms may be added. Comeau will also perform
// custom ports for you.
//
// Check libcomo details at http://www.comeaucomputing.com/libcomo and
// http://www.comeaucomputing.com
//
// History of Comeau changes (this is rough, as work was often going on in parallel):
// BETA1 July 14, 2000, Initial port for RedHat 6.1 INTEL/ELF
// BETA2 Aug 4, 2000, Stronger RedHat support
// Support for Comeau strict mode for end user code
// BETA3 Aug 22, 2000, Support for other LINUX/INTEL/ELF's, including older ones
// BETA4 Sept 2, 2000, Initial support for SCO UNIX + other UNIX x86 SVR3's
// Stronger support for end user Comeau strict mode
// BETA5 Oct 5, 2000, Initial support for Solaris/SPARC
// More SCO support (though still incomplete)
// BETA6 Feb 5, 2001, Minor mods to accomodate Comeau C++ 4.2.45.1
// BETA7 Mar 13, 2001, Verified with Comeau C++ 4.2.45.2
// Minor NetBSD support
// BETA8 Apr 1. 2001, Initial support for SunOS/SPARC
// BETA9 Apr 7, 2001, Stronger SCO support + other UNIX x86 SVR3's
// Mods for an fpos_t problem for some LINUXes
// Mods since Destroy did not work in strict mode
// BETA10 Apr 12. 2001, Stronger NetBSD support
//
// PLANNED:
// BETAx TBA TBA, 2001, NetBSD, UNIXWARE, and Windows support expected
//
#ifdef __linux__
# define _STLP_NO_NATIVE_MBSTATE_T 1
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
# define _STLP_NO_NATIVE_WIDE_STREAMS 1
# define _STLP_NO_LONG_DOUBLE 1
// Comeau C++ under LINUX/INTEL/ELF
// Preprocess away "long long" routines for now, even in relaxed mode
# define __wcstoull_internal_defined 1
# define __wcstoll_internal_defined 1
#endif /* __COMO__ under __linux__ */
#ifdef __USING_x86SVR3x_WITH_COMO /* SCO et al */
/* UNIX 386+ SVR3 mods made with __USING_x86SVR3x_WITH_COMO
in other sources, not here */
# define atan2l atan2
# define cosl cos
# define sinl sin
# define sqrtl sqrt
# include <math.h>
inline long double expl(long double arg) { return exp(arg); }
inline long double logl(long double arg) { return log(arg); }
# define log10l log10
# define sinhl sinh
# define coshl cosh
# define fabsl fabs
namespace std {
inline int min(int a, int b) { return a>b ? b : a; }
}
#endif
#ifdef sun
// Comeau C++ under Solaris/SPARC or SunOS
#ifdef solarissparc
#define __USING_SOLARIS_SPARC_WITH_COMO /* show this in the source when grep'ing for COMO */
// Note comowchar.h for Solaris/SPARC wchar stuff
#include <math.h>
# define sinf sin
# define sinl sin
# define sinhf sinh
# define sinhl sinh
# define cosf cos
# define cosl cos
# define coshf cosh
# define coshl cosh
# define atan2l atan2
# define atan2f atan2
inline float logf(float arg) { return log(arg); }
inline long double logl(long double arg) { return log(arg); }
# define log10f log10
# define log10l log10
# define expf exp
inline long double expl(long double arg) { return exp(arg); }
# define sqrtf sqrt
# define sqrtl sqrt
# define fabsf fabs
# define fabsl fabs
#else
#define __USING_SUNOS_WITH_COMO
#define __unix 1
#define __EXTENSIONS__ /* This might create undue noise somewhere */
#endif
#endif /* sun */
#if defined(__NetBSD__)
// From non-como #ifdef __GNUC__ above
#undef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE
#define __unix 1
#include <sys/cdefs.h>
// Some joker #define'd __END_DECLS as };
#undef __END_DECLS
#define __END_DECLS }
// <sys/stat.h> prob
#include <sys/cdefs.h>
#undef __RENAME
#define __RENAME(x)
#define wchar_t __COMO_WCHAR_T
#include <stddef.h>
#undef wchar_t
#include <math.h>
# ifdef BORIS_DISABLED
# define atan2l atan2
# define cosl cos
# define sinl sin
# define sqrtl sqrt
inline long double expl(long double arg) { return exp(arg); }
inline long double logl(long double arg) { return log(arg); }
# define log10l log10
# define sinhl sinh
# define coshl cosh
# define fabsl fabs
# endif
#endif /* __NetBSD__ under __COMO__ */
// Shouldn't need to change anything below here for Comeau C++
// If so, tell us at comeau@comeaucomputing.com
#define _STLP_NO_DRAND48
#define _STLP_PARTIAL_SPECIALIZATION_SYNTAX
#define _STLP_NO_USING_CLAUSE_IN_CLASS
#if __COMO_VERSION__ < 4300
#if __COMO_VERSION__ >= 4245
#define _STLP_NO_EXCEPTION_HEADER /**/
// Is this needed?
# include <stdexcept.stdh>
#endif
#define _STLP_NO_BAD_ALLOC /**/
#define _STLP_USE_AUTO_PTR_CONVERSIONS /**/
#endif
// this one is true only with MS
# if defined (_MSC_VER)
# define _STLP_WCHAR_T_IS_USHORT 1
# if _MSC_VER <= 1200
# define _STLP_VENDOR_GLOBAL_CSTD
# endif
# if _MSC_VER < 1100
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_EXCEPTION_HEADER 1
# define _STLP_NO_NEW_NEW_HEADER 1
# define _STLP_USE_NO_IOSTREAMS 1
# endif
# endif
// # define __EDG_SWITCHES

View File

@@ -0,0 +1,65 @@
/*
* Copyright (c) 1997
* Moscow Center for SPARC Technology
*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
#define _STLP_COMPILER "CC"
// Mostly correct guess, change it for Alpha (and other environments
// that has 64-bit "long")
# define _STLP_UINT32_T unsigned long
// Uncomment if long long is available
# define _STLP_LONG_LONG long long
// Uncomment this if your compiler can't inline while(), for()
# define _STLP_LOOP_INLINE_PROBLEMS 1
// Uncomment this if your compiler does not support exceptions
// Cray C++ supports exceptions when '-h exceptions' option is user;
// therefore '-D_STLP_HAS_NO_EXCEPTIONS' must be used when '-h exceptions'
// is NOT used.
//# define _STLP_HAS_NO_EXCEPTIONS 1
// Delete?
// Define this if compiler lacks <exception> header
//# define _STLP_NO_EXCEPTION_HEADER 1
// Uncomment this if your C library has lrand48() function
# define _STLP_RAND48 1
// Uncomment if native new-style C library headers lile <cstddef>, etc are not available.
# define _STLP_HAS_NO_NEW_C_HEADERS 1
// uncomment if new-style headers <new> is available
# define _STLP_NO_NEW_NEW_HEADER 1
// uncomment this if <iostream> and other STD headers put their stuff in ::namespace,
// not std::
# define _STLP_VENDOR_GLOBAL_STD
// uncomment this if <cstdio> and the like put stuff in ::namespace,
// not std::
# define _STLP_VENDOR_GLOBAL_CSTD
# define _STLP_NATIVE_C_HEADER(__x) </usr/include/##__x>
// WARNING: Following is hardcoded to the system default C++ include files
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(__x) </opt/ctl/CC/CC/include/##__x>
# define _STLP_NO_NATIVE_MBSTATE_T
# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS
//# define _STLP_VENDOR_GLOBAL_EXCEPT_STD

View File

@@ -0,0 +1,9 @@
#define _STLP_PLATFORM "Cygwin"
#define _STLP_UNIX
#ifndef _STLP_USE_STDIO_IO
# define _STLP_USE_UNIX_IO
#endif
#define _STLP_LDOUBLE_96

View File

@@ -0,0 +1,113 @@
#define _STLP_COMPILER "Dec"
# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
# define _STLP_NATIVE_HEADER(header) <../cxx/##header>
# define _STLP_NATIVE_C_HEADER(x) <../include/##x>
#if (__DECCXX_VER < 60300000)
# define _STLP_NATIVE_CPP_C_HEADER(header) <../cxx/##header>
#else
# define _STLP_NATIVE_CPP_C_HEADER(header) </usr/include/cxx_cname/##header>
#endif
# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../cxx/##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../cxx/##header>
/* Alpha is little-endian */
# define _STLP_LITTLE_ENDIAN
// collisions
# define _STLP_DONT_PUT_STLPORT_IN_STD
#if (__DECCXX_VER < 60000000)
/*
automatic template instantiation does not
work with namespaces ;(
*/
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NO_NEW_NEW_HEADER 1
# define _STLP_NO_WCHAR_T 1
# define _STLP_NEED_EXPLICIT 1
# define _STLP_NO_BOOL 1
# define _STLP_NEED_TYPENAME 1
# define _STLP_NO_NEW_STYLE_CASTS 1
# define _STLP_NEED_MUTABLE 1
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# define _STLP_NO_QUALIFIED_FRIENDS 1
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
# define _STLP_BROKEN_USING_DIRECTIVE 1
# define _STLP_NO_EXCEPTION_HEADER 1
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
#endif
#ifndef __NO_USE_STD_IOSTREAM
/* default is to use new iostreams, anyway */
# ifndef __USE_STD_IOSTREAM
# define __USE_STD_IOSTREAM
# endif
#endif
/*
# ifndef __STD_STRICT_ANSI_ERRORS
# endif
*/
#ifndef __EXCEPTIONS
# define _STLP_HAS_NO_EXCEPTIONS 1
#endif
# ifdef __IMPLICIT_INCLUDE_ENABLED
/* but, works with ours ;). */
# define _STLP_LINK_TIME_INSTANTIATION 1
# else
# undef _STLP_LINK_TIME_INSTANTIATION
# endif
# if defined (__IMPLICIT_USING_STD) && !defined (__NO_USE_STD_IOSTREAM)
/*
we should ban that !
# error "STLport won't work with new iostreams and std:: being implicitly included. Please use -std strict_ansi[_errors] or specify __NO_USE_STD_IOSTREAM"
*/
# endif
# if (defined (__STD_STRICT_ANSI) || defined (__STD_STRICT_ANSI_ERRORS))
# define _STLP_STRICT_ANSI 1
# else
/* we want to enforce it */
# define _STLP_LONG_LONG long long
# endif
/* unsigned 32-bit integer type */
# define _STLP_UINT32_T unsigned int
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
/* # define _STLP_RAND48 1 */
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
# if (__DECCXX_VER <= 60600000)
# define _STLP_HAS_NO_NEW_C_HEADERS 1
# endif
#if !defined (_NOTHREADS) && !defined (_STLP_THREADS_DEFINED)
# define _STLP_DEC_THREADS
#endif

View File

@@ -0,0 +1,89 @@
// OpenVMS version
#define _STLP_COMPILER "Dec Vms"
# define _STLP_NATIVE_HEADER(header) <sys$library:##header>
# define _STLP_NATIVE_C_HEADER(x) <sys$library:##x>
# define _STLP_NATIVE_CPP_C_HEADER(header) <sys$library:##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <sys$library:##header>
#if (__DECCXX_VER < 60000000)
// automatic template instantiation does not
// work with namespaces ;(
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NO_WCHAR_T 1
# define _STLP_NEED_EXPLICIT 1
# define _STLP_NO_BOOL 1
# define _STLP_NEED_TYPENAME 1
# define _STLP_NO_NEW_STYLE_CASTS 1
# define _STLP_NEED_MUTABLE 1
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_NEW_NEW_HEADER 1
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# define _STLP_NO_QUALIFIED_FRIENDS 1
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
# define _STLP_BROKEN_USING_DIRECTIVE 1
# define _STLP_NO_EXCEPTION_HEADER 1
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
#endif
#ifdef __NO_USE_STD_IOSTREAM
# define _STLP_USE_NO_IOSTREAMS 1
# else
// default is to use new iostreams, anyway
# ifndef __USE_STD_IOSTREAM
# define __USE_STD_IOSTREAM
# endif
#endif
#ifndef __EXCEPTIONS
# define _STLP_HAS_NO_EXCEPTIONS 1
#endif
# ifdef __IMPLICIT_INCLUDE_ENABLED
#ifdef _STLP_USE_NO_IOSTREAMS
// implicit include introduces conflicts
// between stlport and native lib.
# undef __IMPLICIT_INCLUDE_ENABLED
#endif
// but, works with ours ;).
# define _STLP_LINK_TIME_INSTANTIATION 1
# endif
# if defined (__IMPLICIT_USING_STD) && !defined (__NO_USE_STD_IOSTREAM)
// we should ban that !
# error "STLport won't work with new iostreams and std:: being implicitly included. Please use -std strict_ansi[_errors] or specify __NO_USE_STD_IOSTREAM"
# endif
# if !(defined (__STD_STRICT_ANSI) || defined (__STD_STRICT_ANSI_ERRORS))
// we want to enforce it
# define _STLP_LONG_LONG long long
# endif
// unsigned 32-bit integer type
# define _STLP_UINT32_T unsigned int
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
// # define _STLP_RAND48 1
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
#define _STLP_HAS_NO_NEW_C_HEADERS 1

View File

@@ -0,0 +1,74 @@
/* File used to define macros:
* _STLP_USE_DYNAMIC_LIB: To signal use STLport as a dll or build of the
* STLport dlls.
* _STLP_USE_STATIC_LIB: To signal use of STLport as a static lib or build of
* the STLport static libs.
* _STLP_USING_CROSS_NATIVE_RUNTIME_LIB: Signal that we are using a native runtime
* in a version different from the STLport one.
* If _STLP_USE_DYNAMIC_LIB or _STLP_USE_STATIC_LIB is alreday defined it means that
* user forces use of a specific version. In this case _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
* will surely be defined otherwise there is no need to force macro defines.
*
* Before including this file the compiler must define:
* _STLP_DLL: If we are building a dll
* _STLP_RUNTIME_DLL: If we are using native runtime as a dll
*/
#if defined (__BUILDING_STLPORT)
# undef _STLP_USE_DYNAMIC_LIB
# undef _STLP_USE_STATIC_LIB
# if defined (_STLP_DLL)
/* We are building the STLport dll */
# define _STLP_USE_DYNAMIC_LIB
# if !defined (_STLP_RUNTIME_DLL)
# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
# endif
# else
# define _STLP_USE_STATIC_LIB
# if defined (_STLP_RUNTIME_DLL)
# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
# endif
# endif
#else
# if !defined (_STLP_NO_IOSTREAMS)
/* STLport use only depend on _STLP_RUNTIME_DLL as we are replacing
* the native runtime.
*/
# if defined (_STLP_RUNTIME_DLL)
# if !defined (_STLP_USE_STATIC_LIB)
# if !defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_USE_DYNAMIC_LIB
# endif
# else
/* The user is forcing use of STLport as a dynamic library. We signal it so
* that the STLport namespace will be modify to report such a combination
* and force the user to link with the rebuilt STLport library.
*/
# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
# endif
# else
# if !defined(_STLP_USE_DYNAMIC_LIB)
# if !defined (_STLP_USE_STATIC_LIB)
# define _STLP_USE_STATIC_LIB
# endif
# else
/* Idem previous remark but the user forces use of the static native runtime.
*/
# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
# endif
# endif
# else
/* If we do not build and use STLport libs we consider that we are in a static lib
* mode as only dynamic lib needs additional export/import specifier.
*/
# define _STLP_USE_STATIC_LIB
# endif
#endif
/* we don't have a static native runtime library on evc3/evc4 */
#ifdef _STLP_WCE
# undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
#endif
#if !defined (_STLP_USE_DYNAMIC_LIB) && !defined (_STLP_USE_STATIC_LIB)
# error Unknown STLport usage config (dll/lib?)
#endif

View File

@@ -0,0 +1,121 @@
// STLport configuration file for Digital Mars C++
#define _STLP_COMPILER __DMC_VERSION_STRING__
#if (__DMC__ < 0x849)
# error "Digital Mars C++ compilers before version 8.49 are not supported!"
#endif
/* DMC goes too far in template instanciation and tries to fully instanciate
* slist<pair<const int, string> > for instance. The generation of assignment
* operator fails of course so we are force to use mutable key for this compiler.
*/
#define _STLP_NO_CONST_IN_PAIR
#define _STLP_DONT_SUP_DFLT_PARAM
#ifndef _CPPUNWIND
# define _STLP_NO_EXCEPTIONS
#endif
#ifndef _CPPRTTI
# define _STLP_NO_RTTI
#endif
#define _STLP_VENDOR_GLOBAL_CSTD
//DMC prefer enum to real static const variable because it do not consider
//static const as const enough to be used in switch declaration...
#define _STLP_STATIC_CONST_INIT_BUG
#if !defined (_WIN32)
// it's not fully supported on non-Win32 platforms
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS
#endif
/* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian
appear to have problems with STLport namespaces. Summary of the issues:
STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error
if _STLP_DEBUG is defined. This is because Digital Mars' librarian uses
Microsoft OMF format, which limits identifier length to about 512 bytes.
With STLport namespaces, some identifiers such as Category_Map in
src/locale_catalog.cpp may exceed the maximum OMF identifier length.
DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp.
Exports in Digital Mars 'def' file must match mangled names in iostream.cpp.
With STLport namespaces, the mangled names in the intermediate files no
longer match these pre-defined exports. To use STLport dynamic libraries
and STLport namespaces with Digital Mars, the pre-defined exports in
src/iostream.cpp and the related Digital Mars 'def' files would need to be
revised. */
#define _STLP_NO_OWN_NAMESPACE 1
// select threads strategy
#if defined (_MT) && !defined (_STLP_NO_THREADS)
# define _STLP_THREADS
#endif
#ifndef _BOOL_DEFINED
# define _STLP_NO_BOOL
#else
# define _STLP_DONT_USE_BOOL_TYPEDEF
#endif
#if _INTEGRAL_MAX_BITS >= 64
# define _STLP_LONG_LONG long long
#endif
#define _STLP_MARK_PARAMETER_AS_UNUSED(X)
#define _STLP_DONT_USE_PRIV_NAMESPACE
#define _STLP_PRIV
#define _STLP_THROW_RETURN_BUG
#if !defined (_DLL)
# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
#endif
#if (__DMC__ < 0x849)
# define _STLP_NO_BAD_ALLOC
#endif
#define _STLP_USE_ABBREVS
#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
#define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND
#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
#define _STLP_NEED_ADDITIONAL_STATIC_DECLSPEC
//#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport)
//#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport)
#if defined (_WINDLL)
# define _STLP_DLL
#endif
#if defined (_DLL)
# define _STLP_RUNTIME_DLL
#endif
#include <stl/config/_detect_dll_or_lib.h>
#undef _STLP_RUNTIME_DLL
#undef _STLP_DLL
#if defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_USE_DECLSPEC 1
# if defined (__BUILDING_STLPORT)
# define _STLP_CALL __export
# else
# define _STLP_CALL
# endif
#else
# define _STLP_CALL
#endif
#include <stl/config/_auto_link.h>
#undef __SC__
#include <stl/config/_feedback.h>

View File

@@ -0,0 +1,29 @@
#if defined (_STLP_MSVC) || defined (__ICL)
# pragma warning (pop)
# pragma pack (pop)
#elif defined (__BORLANDC__)
# pragma option pop
# pragma option -w-pow // -w-8062 Previous options and warnings not restored
#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
# pragma reset woff 1174
# pragma reset woff 1375
# pragma reset woff 1209
/* from iterator_base.h */
# pragma reset woff 1183
#elif defined (__DECCXX)
# ifdef __PRAGMA_ENVIRONMENT
# pragma __environment __restore
# endif
#elif defined (__IBMCPP__)
# pragma info(restore)
#endif

View File

@@ -0,0 +1,333 @@
/*
* File to have Microsoft eMbedded Visual C++ 3.0 and .NET working with STLport
* May 2004
* Origin : Zdenek Nemec - zero@mapfactor.com
* Michael Fink - vividos@users.sourceforge.net
*/
#ifndef _STLP_EVC_H
#define _STLP_EVC_H
#define _STLP_COMPILER "eMbedded Visual C++"
// This flag is being used by STLport to support
// old-fashioned Windows CE SDK (see stl_wince.h)
// do not use with eMebedded Visual C++ 3 or 4!
#ifdef _STLP_WINCE
# undef _STLP_WINCE
#endif
/* Compiler dependent define. The following defines may be available:
* _STLP_WCE_EVC3 when compiling under eMbedded Visual C++ 3
* _STLP_WCE_NET when compiling under eMbedded Visual C++ .NET
* _STLP_WCE always defined when compiling with one of the above
*/
#undef _STLP_WCE_EVC3
#undef _STLP_WCE_NET
#if (_WIN32_WCE > 300)
# define _STLP_WCE_NET UNDER_CE
#elif (_WIN32_WCE == 300)
# define _STLP_WCE_EVC3 UNDER_CE
#else
# error No support for Windows CE below 3.0!
#endif
// This is defined for all platforms using Windows CE
#define _STLP_WCE
/* All Windows CE versions up to at least version 5 are little-endian, even
* if the hardware (like e.g. MIPS) can be configured for big-endian, too. */
#define _STLP_LITTLE_ENDIAN
// Ensure _DEBUG is defined.
#if defined (DEBUG) && !defined (_DEBUG)
# define _DEBUG
#endif
// inherit all msvc6 options
#include <stl/config/_msvc.h>
// CE up to at least version 5 has no C locale support
#define _STLP_NO_LOCALE_SUPPORT
#if _WIN32_WCE >= 420
// SDKs built with PB5 have terminate&co in namespace std...
# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_STD
# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_STD
// ...and new_handler/set_new_handler in the global namespace.
# define _STLP_GLOBAL_NEW_HANDLER 1
#endif
// Always threaded in eMbedded Visual C++ 3.0 and .NET
#ifndef _MT
# define _MT
#endif
// we don't have a static native runtime library
#undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
#if _WIN32_WCE < 400
// no long double under CE3 and older
# define _STLP_NO_LONG_DOUBLE
#endif
// no *f and *l math functions available
#define _STLP_NO_VENDOR_MATH_F
#define _STLP_NO_VENDOR_MATH_L
/*
* Redirect cout, cerr and clog:
* If defined redirect cout, cerr and clog to
* files stdout.txt, stderr.txt and stdlog.txt
*/
//# define _STLP_REDIRECT_STDSTREAMS
/*
* Static class members may generate LNK1179:
* Wrong COMDAT packing may cause LNK1179 error.
* For details see http://groups.google.com/groups?th=8a05c82c4ffee280
* example P78. This define is not used/needed at this moment
* but may came handy in future...
*/
//# define _STLP_STATIC_MEMBERS_BUG
// Use wide-string interface of windows native functions (CreateFile...).
// Note that this should be defined all the time while under CE.
#if defined (UNICODE)
# define _STLP_USE_WIDE_INTERFACE
#endif
// Force exception std to std instead of __std_alias.
#if defined (__cplusplus) && !defined (_STLP_HAS_NO_NAMESPACES)
# ifdef _STLP_VENDOR_EXCEPT_STD
# undef _STLP_VENDOR_EXCEPT_STD
# endif
# define _STLP_VENDOR_EXCEPT_STD std
#endif
// short string optimization bug under evc3, evc4 using ARM compiler
#if _MSC_VER < 1400 && (defined (ARM) || defined (_ARM_))
# define _STLP_DONT_USE_SHORT_STRING_OPTIM
#endif
// when using MFC, disable another placement new declaration, since there is one in wcealt.h
#if !defined (__BUILDING_STLPORT) && defined (_MFC_VER)
# define __PLACEMENT_NEW_INLINE
#endif
// threads
#undef _REENTRANT
#define _REENTRANT
#undef _NOTHREADS
// Use old fashioned headers (ctime vs. time.h).
#undef _STLP_NO_NEW_C_HEADERS
#define _STLP_NO_NEW_C_HEADERS
// exception handling support: only on evc4 and user added /GX to project settings
#if defined (_STLP_WCE_EVC3) || !defined (_CPPUNWIND)
# define _STLP_NO_EXCEPTION_HEADER
# define _STLP_NO_EXCEPTIONS
# undef _STLP_USE_EXCEPTIONS
# ifndef _STLP_THROW_BAD_ALLOC
# define _STLP_THROW_BAD_ALLOC { _STLP_WINCE_TRACE(L"out of memory"); ExitThread(1); }
# endif
#endif
#define _STLP_WINCE_TRACE(msg) OutputDebugString(msg)
/*
* eMbedded Visual C++ .NET specific settings
*/
#if defined (_STLP_WCE_NET)
// evc4 has no locale and time support
# define _STLP_NO_LOCALE_SUPPORT
# define _STLP_NO_TIME_SUPPORT
// ptrdiff_t is not defined in evc4 headers
# ifndef _PTRDIFF_T_DEFINED
typedef int ptrdiff_t;
# define _PTRDIFF_T_DEFINED
# endif
/*
* Helper macros for including the native headers in cases where a file with
* the same name also exists in the STLport include folder. The idea behind
* this is that we first go up one directory and then down into a dir that
* is only present in the native install but not in STLport.
*
*/
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
# if defined (_X86_)
# if defined (_STLP_WCE_TARGET_PROC_SUBTYPE_EMULATOR)
# define _STLP_NATIVE_INCLUDE_PATH ../Emulator
# else
# define _STLP_NATIVE_INCLUDE_PATH ../X86
# endif
# elif defined (_ARM_)
# if _MSC_VER < 1400
// eVC3/4
# if defined (ARMV4)
# define _STLP_NATIVE_INCLUDE_PATH ../Armv4
# elif defined (ARMV4I)
# define _STLP_NATIVE_INCLUDE_PATH ../Armv4i
# elif defined (ARMV4T)
# define _STLP_NATIVE_INCLUDE_PATH ../Armv4t
# else
# error Unknown ARM SDK.
# endif
# else
// VC8 crosscompiling for CE
# if defined (ARMV4)
// VC8 bundled Pocket PC 2003 SDK don't have a target CPU subfolder.
# if defined(WIN32_PLATFORM_PSPC)
# define _STLP_NATIVE_INCLUDE_PATH ../Include
# else
# define _STLP_NATIVE_INCLUDE_PATH ../Armv4
# endif
# elif defined(ARMV4I) || defined(ARMV4T)
# define _STLP_NATIVE_INCLUDE_PATH ../Armv4i
# else
# error Unknown ARM SDK.
# endif
# endif
# elif defined (_MIPS_)
# if defined (MIPS16)
# define _STLP_NATIVE_INCLUDE_PATH ../mips16
# elif defined (MIPSII)
# define _STLP_NATIVE_INCLUDE_PATH ../mipsII
# elif defined (MIPSII_FP)
# define _STLP_NATIVE_INCLUDE_PATH ../mipsII_fp
# elif defined (MIPSIV)
# define _STLP_NATIVE_INCLUDE_PATH ../mipsIV
# elif defined (MIPSIV_FP)
# define _STLP_NATIVE_INCLUDE_PATH ../mipsIV_fp
# else
# error Unknown MIPS SDK.
# endif
# elif defined (SHx)
# if defined (SH3)
# define _STLP_NATIVE_INCLUDE_PATH ../sh3
# elif defined (SH4)
# define _STLP_NATIVE_INCLUDE_PATH ../sh4
# else
# error Unknown SHx SDK.
# endif
# else
# error Unknown SDK.
# endif
# endif /* !_STLP_NATIVE_INCLUDE_PATH */
/* Workaround when using MFCCE and using <new> together: MFCCE's wcealt.h doesn't
* check for __PLACEMENT_NEW_INLINE before defining operator new, so when <new>
* defines the operatore before, there will be an error C2084:
* "function 'void *__cdecl operator new(unsigned int,void *)' already has a body".
*/
# ifdef _STLP_USE_MFC
# define __PLACEMENT_NEW_INLINE
# endif
#endif /* _STLP_WCE_NET */
/*
* eMbedded Visual C++ 3.0 specific settings
*/
#if defined (_STLP_WCE_EVC3)
# define _STLP_NO_NATIVE_MBSTATE_T
// evc3 has no locale and time support
# define _STLP_NO_LOCALE_SUPPORT
# define _STLP_NO_TIME_SUPPORT
// evc3 has new, but no explicit header
# define _STLP_NO_NEW_HEADER
# define _STLP_NO_NEW_NEW_HEADER
// evc3 has no bad_alloc and no typeinfo
# undef _STLP_NO_BAD_ALLOC
# define _STLP_NO_BAD_ALLOC
# undef _STLP_NO_TYPEINFO
# define _STLP_NO_TYPEINFO
// missing things in eMbedded Visual C++ 3.0 headers
# ifndef _SIZE_T_DEFINED
typedef unsigned int size_t;
# define _SIZE_T_DEFINED
# endif
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# define _WCHAR_T_DEFINED
# endif
// ptrdiff_t is not defined in evc3 headers
# ifndef _PTRDIFF_T_DEFINED
typedef int ptrdiff_t;
# define _PTRDIFF_T_DEFINED
# endif
// clock_t is not defined in evc3 headers
# ifndef _CLOCK_T_DEFINED
typedef long clock_t;
# define _CLOCK_T_DEFINED
# endif
// Struct tm is not defined in evc3 headers
# ifndef _TM_DEFINED
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
int tm_isdst; /* daylight savings time flag */
};
# define _TM_DEFINED
# endif
// define placement new and delete operator
// note: when MFCCE headers are included first, don't define the new operator,
// since it was already defined in wcealt.h
# ifdef __cplusplus
# ifndef __PLACEMENT_NEW_INLINE
# ifndef _MFC_VER
inline void *__cdecl operator new(size_t, void *_P) { return (_P); }
# endif /* _MFC_VER */
inline void __cdecl operator delete(void *, void *) { return; }
# define __PLACEMENT_NEW_INLINE
# endif
# endif /* __cplusplus */
// evc3 doesn't have native wide functions, e.g. fgetwc, wmemmove
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS
// evc3 doesn't have assert.h
# ifndef _ASSERT_DEFINED
# define assert(expr) _STLP_ASSERT(expr)
# define _ASSERT_DEFINED
# endif
#endif /* _STLP_WCE_EVC3 */
/*
* original call: TerminateProcess(GetCurrentProcess(), 0);
* we substitute the GetCurrentProcess() with the result of the inline function
* defined in kfuncs.h, since we then can avoid including <windows.h> at all.
* all needed Win32 API functions are defined in <stl/_windows.h>
*/
#ifndef _ABORT_DEFINED
# define _STLP_ABORT() TerminateProcess(reinterpret_cast<HANDLE>(66), 0)
# define _ABORT_DEFINED
#endif
// Notice: windows.h isn't included here anymore; all needed defines are in
// stl/_windows.h now
#endif /* _STLP_EVC_H */

View File

@@ -0,0 +1,43 @@
/* Helper header to give feedback about build environment configuration
* thanks to #pragma message directives.
*/
#if defined (_STLP_VERBOSE)
# define _STLP_VERBOSE_MODE_SUPPORTED
# if defined (_STLP_COMPILER)
# pragma message (_STLP_COMPILER)
# endif
# if defined (_STLP_NO_RTTI)
# pragma message ("STLport: RTTI support -> Disabled")
# else
# pragma message ("STLport: RTTI support -> Enabled")
# endif
# if defined (_STLP_HAS_NO_EXCEPTIONS)
# pragma message ("STLport: Exception support -> Disabled")
# else
# pragma message ("STLport: Exception support -> Enabled")
# endif
# if defined (_STLP_THREADS)
# pragma message ("STLport: Threading model -> Multi")
# else
# pragma message ("STLport: Threading model -> Mono")
# endif
# if defined (_STLP_USE_DYNAMIC_LIB)
# pragma message ("STLport: Library model -> Dynamic")
# else
# pragma message ("STLport: Library model -> Static")
# endif
# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
# if defined (_STLP_USE_DYNAMIC_LIB)
# pragma message ("STLport: Native library model -> Static")
# else
# pragma message ("STLport: Native library model -> Dynamic")
# endif
# endif
#endif

View File

@@ -0,0 +1,3 @@
#define _STLP_PLATFORM "Free BSD"
#define _STLP_USE_UNIX_IO

View File

@@ -0,0 +1,7 @@
/* STLport configuration for Fujitsu compiler : looks like a perfect one ! */
#define _STLP_COMPILER "Fujitsu"
#define _STLP_NATIVE_INCLUDE_PATH ../std
#define _STLP_UINT32_T unsigned int
#define _STLP_LONG_LONG long long
#define _STLP_WCHAR_SUNPRO_EXCLUDE 1

View File

@@ -0,0 +1,198 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly
*/
#define _STLP_COMPILER "gcc"
#define _STLP_HAS_INCLUDE_NEXT 1
#if (__GNUC__ < 2) || ((__GNUC__ < 3) && ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)))
/* We do not support neither the unofficial 2.96 gcc version. */
# error GNU compilers before 2.95 are not supported anymore.
#endif
/* Systems having GLIBC installed have different traits */
#if defined (__linux__)
# ifndef _STLP_USE_GLIBC
# define _STLP_USE_GLIBC 1
# endif
# if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
# define _STLP_USE_UCLIBC 1
# endif
#endif
#if defined (__CYGWIN__) && \
(__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
# define _STLP_NO_VENDOR_MATH_L
# define _STLP_NO_VENDOR_STDLIB_L
#endif
#if (__GNUC__ < 3)
# define _STLP_NO_VENDOR_STDLIB_L
#endif
#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
/* define for gcc versions before 3.4.0. */
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
#endif
#if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
(defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
(defined (__MINGW32__) && defined (_MT)))
# define _REENTRANT
#endif
#if defined (__DJGPP)
# define _STLP_RAND48 1
# define _NOTHREADS 1
# undef _PTHREADS
# define _STLP_LITTLE_ENDIAN
#endif
#if defined (__MINGW32__)
/* Mingw32, egcs compiler using the Microsoft C runtime */
# if (__GNUC__ >= 3)
/* For gcc before version 3 this macro is defined below */
# define _STLP_VENDOR_GLOBAL_CSTD
# endif
# undef _STLP_NO_DRAND48
# define _STLP_NO_DRAND48
# define _STLP_CALL
#endif /* __MINGW32__ */
#if defined (__CYGWIN__) || defined (__MINGW32__)
# if !defined (_STLP_USE_STATIC_LIB)
# define _STLP_USE_DECLSPEC 1
# if !defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_USE_DYNAMIC_LIB
# endif
# define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
# endif
/* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
* used to import symbols from PSDK under MinGW
*/
# define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
#else
# if (__GNUC__ >= 4)
# if !defined (_STLP_USE_STATIC_LIB)
# if !defined (_STLP_USE_DYNAMIC_LIB)
# define _STLP_USE_DYNAMIC_LIB
# endif
# define _STLP_USE_DECLSPEC 1
# define _STLP_EXPORT_DECLSPEC __attribute__((visibility("default")))
# define _STLP_IMPORT_DECLSPEC __attribute__((visibility("default")))
# define _STLP_CLASS_EXPORT_DECLSPEC __attribute__((visibility("default")))
# define _STLP_CLASS_IMPORT_DECLSPEC __attribute__((visibility("default")))
# endif
# endif
#endif
#if defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__))
# if !defined (__MINGW32__) && !defined (__CYGWIN__)
# define _STLP_NO_NATIVE_MBSTATE_T 1
# endif
# if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
# endif
# define _STLP_NO_NATIVE_WIDE_STREAMS 1
#endif
#define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
/* Mac OS X is a little different with namespaces and cannot instantiate
* static data members in template classes */
#if defined (__APPLE__)
# if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
/* Mac OS X is missing a required typedef and standard macro */
typedef unsigned int wint_t;
# endif
# define __unix
# define _STLP_NO_LONG_DOUBLE
/* Mac OS X needs all "::" scope references to be "std::" */
# define _STLP_USE_NEW_C_HEADERS
# define _STLP_NO_VENDOR_STDLIB_L
#endif /* __APPLE__ */
/* g++ 2.7.x and above */
#define _STLP_LONG_LONG long long
#ifdef _STLP_USE_UCLIBC
/* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
# define _STLP_NO_VENDOR_MATH_F
/* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
# define _STLP_NO_VENDOR_MATH_L
# define _STLP_NO_LONG_DOUBLE
#endif
#if defined (__OpenBSD__) || defined (__FreeBSD__)
# define _STLP_NO_VENDOR_MATH_L
# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
# ifndef __unix
# define __unix
# endif
#endif
#if defined (__alpha__)
# define _STLP_NO_VENDOR_MATH_L
#endif
#if defined (__hpux)
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
/* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
# define _STLP_NO_VENDOR_MATH_F
#endif
#if (__GNUC__ >= 3)
# ifndef _STLP_HAS_NO_NEW_C_HEADERS
/*
# ifndef _STLP_USE_UCLIBC
*/
# define _STLP_HAS_NATIVE_FLOAT_ABS
/*
# endif
*/
# else
# ifdef _STLP_USE_GLIBC
# define _STLP_VENDOR_LONG_DOUBLE_MATH 1
# endif
# endif
#endif
#if (__GNUC__ < 3)
# define _STLP_HAS_NO_NEW_C_HEADERS 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
# ifndef __HONOR_STD
# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
# endif
/* egcs fails to initialize builtin types in expr. like this : new(p) char(); */
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
#endif
#undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
#undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
/* strict ANSI prohibits "long long" ( gcc) */
#if defined ( __STRICT_ANSI__ )
# undef _STLP_LONG_LONG
#endif
#ifndef __EXCEPTIONS
# undef _STLP_DONT_USE_EXCEPTIONS
# define _STLP_DONT_USE_EXCEPTIONS 1
#endif
#if (__GNUC__ >= 3)
/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
instantiation within library: nothing except increased library size. - ptr
*/
# define _STLP_NO_FORCE_INSTANTIATE
#endif

View File

@@ -0,0 +1,129 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly
*/
#define _STLP_COMPILER "aCC"
/* system C-library dependent */
#if defined (_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
/* # define _STLP_RAND48 1 */
/* #define _STLP_NO_NATIVE_MBSTATE_T 1 */
#define _STLP_HPACC_BROKEN_BUFEND 1
#define _STLP_WCHAR_HPACC_EXCLUDE 1
/* this was reported to help, just as with SUN CC 4.2 */
#define _STLP_INLINE_STRING_LITERAL_BUG
/* specific prolog is needed to select correct threads impl */
#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
/* HP aCC with +noeh */
#ifdef __HPACC_NOEH
# define _STLP_HAS_NO_EXCEPTIONS 1
#endif
#define _STLP_NO_FORCE_INSTANTIATE
#define _STLP_LONG_LONG long long
#define _STLP_NO_VENDOR_STDLIB_L
/* The aCC6 compiler is using the EDG Front End. Unfortunately, prior to
* version A.06.12, defining the __EDG__ and __EDG_VERSION__ macros was
* disabled. It was corrected in A.06.12.
*/
#if ((__HP_aCC > 60000) && (__HP_aCC < 61200))
# define __EDG__
# define __EDG_VERSION__ 306
#endif
#if (__HP_aCC >= 32500 )
# define _STLP_USE_NEW_C_HEADERS
# define _STLP_FORCE_ALLOCATORS(t,a) \
typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
# if defined (_HP_NAMESPACE_STD) // option -AA
/* from now, we have a full standard lib in namespace std
*
* -AA indicates that we are compiling against Rogue Wave 2.2.1
* STL shipped with the HP aCC compiler. -AA tells the compiler
* to use the STL defined in the include_std directory.
*/
# define _STLP_NATIVE_INCLUDE_PATH ../include_std
# else // option -Aa
# define _STLP_VENDOR_GLOBAL_STD 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_DONT_THROW_RANGE_ERRORS 1
# endif
#endif
#if (__HP_aCC >= 31400 && __HP_aCC < 32500)
# define _STLP_FORCE_ALLOCATORS(t,a) \
typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
# define _STLP_NO_CWCHAR
# if defined (_NAMESPACE_STD) // option -AA
/* from now, we have a full standard lib in namespace std */
# define _STLP_NATIVE_INCLUDE_PATH ../include_std
# else /* kind of compatibility mode */
# define _STLP_VENDOR_GLOBAL_STD 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_DONT_THROW_RANGE_ERRORS 1
# define _STLP_NO_ROPE 1
# endif
#endif /* 314 */
#if ((__HP_aCC >= 30000 && __HP_aCC < 31400) || (__HP_aCC == 1)) // A.03.13: __HP_aCC == 1
# if (__HP_aCC != 1)
# define _STLP_HAS_NO_NEW_C_HEADERS 1
# endif
# define _STLP_NO_QUALIFIED_FRIENDS 1
/* aCC bug ? need explicit args on constructors of partial specialized
* classes
*/
# define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 1
/* ?? fbp : maybe present in some versions ? */
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
/* <exception> and stuff is in global namespace */
# define _STLP_VENDOR_GLOBAL_EXCEPT_STD
/* fbp : moved here */
# define _STLP_VENDOR_GLOBAL_CSTD 1
/* # define _INCLUDE_HPUX_SOURCE */
# define _XPG4
# define _INCLUDE_XOPEN_SOURCE
# define _INCLUDE_AES_SOURCE
#endif
#if (__HP_aCC <= 30000 && __HP_aCC >= 12100)
/* Special kludge to workaround bug in aCC A.01.23, CR JAGac40634 */
# ifdef _STLP_DEBUG
static void _STLP_dummy_literal() { const char *p = "x";}
static void _STLP_dummy_literal_2() { const char *p = "123456789"; }
static void _STLP_dummy_literal_3() { const char *p = "123456700000000000000089";}
# endif
# define _STLP_VENDOR_GLOBAL_STD 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_DONT_THROW_RANGE_ERRORS 1
# define _STLP_STATIC_CONST_INIT_BUG 1
# if (__HP_aCC < 12700)
/* new flag: on most HP compilers cwchar is missing */
# define _STLP_NO_CWCHAR
# endif
# define _STLP_FORCE_ALLOCATORS(t,a) \
typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\
typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2;
#endif
#if __HP_aCC == 1
# define _STLP_BROKEN_USING_IN_CLASS
# define _STLP_USING_BASE_MEMBER
# define _STLP_NO_CWCHAR
/* # define _STLP_NO_WCHAR_T 1 */
#endif

View File

@@ -0,0 +1,17 @@
#ifndef __stl_config__hpux_h
#define __stl_config__hpux_h
#define _STLP_PLATFORM "HP Unix"
#define _STLP_USE_UNIX_IO
#ifdef __GNUC__
# define _STLP_NO_WCHAR_T
# define _STLP_NO_CWCHAR
# define _STLP_NO_LONG_DOUBLE
# ifndef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 199506
# endif
#endif
#endif /* __stl_config__hpux_h */

View File

@@ -0,0 +1,144 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly
*/
#if defined (__IBMCPP__) || defined (__IBMC__)
# define _STLP_COMPILER "Visual Age C++"
#elif defined (__xlC__)
# define _STLP_COMPILER "xlc"
#else
# error "Unknown compiler"
#endif
#if !defined(__IBMCPP__) || (__IBMCPP__ < 500)
# define _STLP_HAS_NO_NEW_C_HEADERS 1
#endif
/* string literal problem, same as with SUN and aCC */
# define _STLP_INLINE_STRING_LITERAL_BUG 1
# define _STLP_HAS_NATIVE_FLOAT_ABS
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
# ifdef __IBMCPP__
# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
# endif
/* # if ( defined (__MULTI__) && defined (__WINDOWS__))
* # define _STLP_WIN32THREADS 1 Only Visual Age 3.5 for Windows
* # endif
*/
# if ( defined (__MULTI__) && defined (__OS2__))
# define _STLP_OS2THREADS 1
# endif
/* __TEMPINC__ is set when /Ft+ option is used */
# ifdef __TEMPINC__
# define _STLP_LINK_TIME_INSTANTIATION 1
# endif
# if defined (__MVS__)
/* long long support is buggy - reported by Tinny Ng
* # if __EXTENDED__ && __COMPILER_VER__ >= 0x22060000
* # define _STLP_LONG_LONG long long
* # endif
*/
/* boris : hstash reported it can be treated like UNIX */
# define _STLP_NO_TYPEINFO 1
# undef _STLP_NATIVE_INCLUDE_PATH
# define _STLP_NATIVE_INCLUDE_PATH /usr/lpp/ioclib/include
/* same for C headers like <string.h> */
# undef _STLP_NATIVE_C_INCLUDE_PATH
# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH /usr/include
# elif (defined (__WINDOWS__) || defined (_AIX) || defined (__OS2__) ) && (__IBMCPP__ >= 350)
# define _STLP_LONG_LONG long long
#endif
#if !( defined( __xlC__ ) && __xlC__ >= 0x500 )
/* AIX xlC 3.1 , 3.0.1 ==0x301
* Visual Age C++ 3.x
* OS-390 C++
* fbp : should be more version-specific!
*/
# define _STLP_NO_BOOL 1
# define _STLP_DONT_USE_BOOL_TYPEDEF 1
# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NEED_TYPENAME 1
# define _STLP_NEED_EXPLICIT 1
# define _STLP_NO_ARROW_OPERATOR 1
# define _STLP_NO_NEW_STYLE_CASTS 1
# define _STLP_NO_WCHAR_T 1
# define _STLP_NEED_MUTABLE 1
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# define _STLP_NO_QUALIFIED_FRIENDS 1
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
# define _STLP_NO_METHOD_SPECIALIZATION 1
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
# define _STLP_NO_EXCEPTION_HEADER 1
# define _STLP_NO_NEW_NEW_HEADER 1
# if defined (__OS2__) && (__IBMCPP__ <= 350)
# define _STLP_NO_TYPEINFO 1
# endif
# define _STLP_NO_NEW_NEW_HEADER 1
# define _STLP_STATIC_CONST_INIT_BUG 1
/* # define _STLP_THROW_RETURN_BUG 1 */
# define _STLP_NO_TEMPLATE_CONVERSIONS 1
# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
/* AIX xlC, Visual Age 3.0 for OS/2 and MS */
# define _STLP_TRIVIAL_DESTRUCTOR_BUG
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
#if __IBMCPP__ <= 350
# define _STLP_NEED_UNREACHABLE_RETURN 1
#endif
#if __IBMCPP__ < 350
# define _STLP_NO_LONG_DOUBLE 1
#endif
#if __IBMCPP__ >= 365
/* does not have new C headers, but has div() */
# define _STLP_LDIV
#endif
#endif /* xlC 5 */
/* detect xlC5 by: */
#if defined(__IBMCPP__) && (500 <= __IBMCPP__) && (__IBMCPP__ < 700)
# define _STLP_USE_EXCEPTIONS 1
# define _STLP_STATIC_CONST_INIT_BUG 1
/* #pragma report(disable,CPPC1500029)
* unsigned 32-bit integer type
*/
# define _STLP_UINT32_T unsigned int
# if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
# endif
/* # define _STLP_RAND48 1 */
#endif /* __IBMCPP__ == 500 */

View File

@@ -0,0 +1,44 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
// A list of Intel compiler for Linux portion of STLport settings.
#define _STLP_COMPILER "Intel ICC"
#define _STLP_LONG_LONG long long
// Edit relative path below (or put full path) to get native
// compiler headers included. Default is "../include".
// C headers may reside in different directory, so separate macro is provided.
#if (__INTEL_COMPILER < 800)
# define _STLP_NATIVE_INCLUDE_PATH ../include
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include
#endif
#if (__INTEL_COMPILER >= 800)
# define _STLP_NATIVE_INCLUDE_PATH ../include/c++
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include
#endif /* __INTEL_COMPILER >= 800 */
#define _STLP_HAS_NO_NEW_C_HEADERS 1
#define _STLP_VENDOR_GLOBAL_CSTD 1
/* Systems having GLIBC installed have different traits */
#if !defined (_STLP_USE_GLIBC) && defined (__linux__)
# define _STLP_USE_GLIBC
# define _XOPEN_SOURCE 600
#endif
#undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
#ifndef __GNUC__
# define __GNUC__ 3
#endif
//#define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
#define _STLP_NO_FORCE_INSTANTIATE
//#define _REENTRANT

View File

@@ -0,0 +1,72 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "Intel ICL"
#define _STLP_IMPORT_TEMPLATE_KEYWORD extern
/* You need to undef following macro if your icl install is binded to MSVC 6
* native lib and you are building with /Qvc7 or /Qvc7.1 or /Qvc8 option.
*/
/* #define _STLP_MSVC_LIB 1200 */
/* You need to undef following macro if your icl install is binded to MSVC .Net 2002
* native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7.1
* or /Qvc8 option.
*/
/* #define _STLP_MSVC_LIB 1300 */
/* You need to undef following macro if your icl install is binded to MSVC .Net 2003
* native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7
* or /Qvc8 option.
*/
/* #define _STLP_MSVC_LIB 1310 */
/* You need to undef following macro if your icl install is binded to MSVC 2005
* native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7
* or /Qvc7.1 option.
*/
/* #define _STLP_MSVC_LIB 1400 */
#include <stl/config/_msvc.h>
#if defined (_STLP_DONT_RETURN_VOID)
# undef _STLP_DONT_RETURN_VOID
#endif
#if (__ICL < 900)
# define _STLP_NOTHROW
#endif
#if (__ICL <= 810)
/* If method specialization is activated, compiler do not export some
* symbols anymore.
*/
# define _STLP_NO_METHOD_SPECIALIZATION 1
#endif
#if (__ICL >= 800 && __ICL < 900)
# define _STLP_STATIC_CONST_INIT_BUG 1
#endif
#if (__ICL >= 450)
# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
#endif
#if (__ICL < 450)
/* only static STLport lib works for ICL */
# undef _STLP_USE_STATIC_LIB
# undef _STLP_USE_DYNAMIC_LIB
# define _STLP_USE_STATIC_LIB
/* disable hook which makes template symbols to be searched for in the library */
# undef _STLP_NO_CUSTOM_IO
#endif
#undef _STLP_LONG_LONG
#define _STLP_LONG_LONG long long
#if defined (__cplusplus) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300)
namespace std
{
void _STLP_CALL unexpected();
}
#endif
#include <stl/config/_feedback.h>

View File

@@ -0,0 +1,43 @@
// STLport config file for KAI C++ compiler
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
# ifndef __KAI_STRICT /* _NO_LONGLONG */
# define _STLP_LONG_LONG long long
# endif
# if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS)
# define _STLP_HAS_NO_EXCEPTIONS
# endif
# ifndef __BUILDING_STLPORT
# define _STLP_LINK_TIME_INSTANTIATION 1
# endif
// two levels of macros do not work good with kcc.
# define _STLP_NATIVE_HEADER(header) <../include/##header>
# define _STLP_NATIVE_C_HEADER(header) <../include/##header>
# define _STLP_NATIVE_CPP_C_HEADER(header) <../include/##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
// KAI C++ uses EDG front-end, but apparently different switches
// # define __EDG_SWITCHES 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_VENDOR_MB_NAMESPACE std
// boris : some of those may also apply to KCC 3.4
# if __KCC_VERSION < 4000
# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
# endif
# if defined (__sgi)
// this requires some discrimination on whether we are actually on
// a system officially supported by KAI.
# define _STLP_HAS_NO_NEW_C_HEADERS 1
# include <standards.h>
# endif

View File

@@ -0,0 +1,125 @@
#ifndef __stl_config__linux_h
#define __stl_config__linux_h
#define _STLP_PLATFORM "Linux"
#include <features.h>
/* This is defined wether library in use is glibc or not.
This may be treated as presence of GNU libc compatible
header files (these define is not really intended to check
for the presence of a particular library, but rather is used
to define an INTERFACE.) */
#ifndef _STLP_USE_GLIBC
# define _STLP_USE_GLIBC 1
#endif
#ifndef _STLP_USE_STDIO_IO
# define _STLP_USE_UNIX_IO
#endif
/* #define _STLP_USE_STDIO_IO */
/* If not explicitly specified otherwise, work with threads
*/
#if !defined(_STLP_NO_THREADS) && !defined(_REENTRANT)
# define _REENTRANT
#endif
#if defined(_REENTRANT) && !defined(_PTHREADS)
# define _PTHREADS
#endif
#ifdef __UCLIBC__ /* uClibc 0.9.27 */
# define _STLP_USE_UCLIBC 1
# if !defined(__UCLIBC_HAS_WCHAR__)
# ifndef _STLP_NO_WCHAR_T
# define _STLP_NO_WCHAR_T
# endif
# ifndef _STLP_NO_NATIVE_MBSTATE_T
# define _STLP_NO_NATIVE_MBSTATE_T
# endif
# ifndef _STLP_NO_NATIVE_WIDE_STREAMS
# define _STLP_NO_NATIVE_WIDE_STREAMS
# endif
# endif /* __UCLIBC_HAS_WCHAR__ */
/* Hmm, bogus _GLIBCPP_USE_NAMESPACES seems undefined... */
# define _STLP_VENDOR_GLOBAL_CSTD 1
#endif
#if defined(_PTHREADS)
# define _STLP_THREADS
# define _STLP_PTHREADS
/*
# ifndef __USE_UNIX98
# define __USE_UNIX98
# endif
*/
/* This feature exist at least since glibc 2.2.4 */
/* # define __FIT_XSI_THR */ /* Unix 98 or X/Open System Interfaces Extention */
# ifdef __USE_XOPEN2K
/* The IEEE Std. 1003.1j-2000 introduces functions to implement spinlocks. */
# ifndef __UCLIBC__ /* There are no spinlocks in uClibc 0.9.27 */
# define _STLP_USE_PTHREAD_SPINLOCK
# else
# ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK
/* in uClibc (0.9.26) pthread_spinlock* declared in headers
* but absent in library */
# define _STLP_DONT_USE_PTHREAD_SPINLOCK
# endif
# endif
# ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK
# define _STLP_USE_PTHREAD_SPINLOCK
# define _STLP_STATIC_MUTEX _STLP_mutex
# endif
/* # define __FIT_PSHARED_MUTEX */
# endif
#endif
/* Endiannes */
#include <endian.h>
#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) || !defined(__BIG_ENDIAN)
# error "One of __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN undefined; Fix me!"
#endif
#if ( __BYTE_ORDER == __LITTLE_ENDIAN )
# define _STLP_LITTLE_ENDIAN 1
#elif ( __BYTE_ORDER == __BIG_ENDIAN )
# define _STLP_BIG_ENDIAN 1
#else
# error "__BYTE_ORDER neither __BIG_ENDIAN nor __LITTLE_ENDIAN; Fix me!"
#endif
#if defined(__GNUC__) && (__GNUC__ < 3)
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
#endif
#ifdef __GLIBC__
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || (__GLIBC__ > 2)
/* From glibc 2.3.x default allocator is malloc_alloc, if was not defined other */
# if !defined(_STLP_USE_MALLOC) && !defined(_STLP_USE_NEWALLOC) && !defined(_STLP_USE_PERTHREAD_ALLOC) && !defined(_STLP_USE_NODE_ALLOC)
# define _STLP_USE_MALLOC 1
# endif
# endif
/* Following platforms has no long double:
* - Alpha
* - PowerPC
* - SPARC, 32-bits (64-bits platform has long double)
* - MIPS, 32-bits
* - ARM
* - SH4
*/
# if defined(__alpha__) || \
defined(__ppc__) || defined(PPC) || defined(__powerpc__) || \
((defined(__sparc) || defined(__sparcv9) || defined(__sparcv8plus)) && !defined ( __WORD64 ) && !defined(__arch64__)) /* ? */ || \
(defined(_MIPS_SIM) && (_MIPS_SIM == _ABIO32)) || \
defined(__arm__) || \
defined(__sh__)
/* # if defined(__NO_LONG_DOUBLE_MATH) */
# define _STLP_NO_LONG_DOUBLE
# endif
#endif
#endif /* __stl_config__linux_h */

View File

@@ -0,0 +1,6 @@
#define _STLP_PLATFORM "Mac"
#define _STLP_MAC 1
#error Looks like unsupported platform
#define _STLP_USE_UNIX_EMULATION_IO

View File

@@ -0,0 +1,9 @@
#define _STLP_PLATFORM "Mac OS X"
#if defined (__BIG_ENDIAN__)
# define _STLP_BIG_ENDIAN 1
#elif defined (__LITTLE_ENDIAN__)
# define _STLP_LITTLE_ENDIAN 1
#endif
#define _STLP_USE_UNIX_IO

View File

@@ -0,0 +1,7 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_NO_MEMBER_TEMPLATES // Compiler does not support member templates
#define _STLP_NO_MEMBER_TEMPLATE_CLASSES // Compiler does not support member template classes
#define _STLP_HAS_NEW_NEW_HEADER

View File

@@ -0,0 +1,265 @@
/* STLport configuration file
* It is internal STLport header - DO NOT include it directly
* Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL
*/
#if !defined (_STLP_COMPILER)
# define _STLP_COMPILER "Microsoft Visual Studio C++"
#endif
#if !defined (__ICL) && !defined (_STLP_MSVC)
# define _STLP_MSVC _MSC_VER
#endif
#if !defined (_STLP_MSVC_LIB)
# define _STLP_MSVC_LIB _MSC_VER
#endif
#if defined (__BUILDING_STLPORT) && defined (_MANAGED)
/* Building a managed version of STLport is not supported because we haven't
* found a good reason to support it. However, building a managed translation
* unit using STLport _is_ supported.
*/
# error Sorry but building a managed version of STLport is not supported.
#endif
#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
/* This is a specific section for compilers coming with platform SDKs. Native
* library coming with it is different from the one coming with commercial
* MSVC compilers so there is some specific settings.
*/
# define _STLP_NATIVE_INCLUDE_PATH ../crt
# define _STLP_VENDOR_GLOBAL_CSTD
# define _STLP_VENDOR_TERMINATE_STD
# define _STLP_GLOBAL_NEW_HANDLER
# if (_STLP_MSVC_LIB <= 1400)
/* We hope this bug will be fixed in future versions. */
# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
# endif
#endif
#define _STLP_CALL __cdecl
#ifndef _STLP_LONG_LONG
# define _STLP_LONG_LONG __int64
#endif
#define _STLP_PRAGMA_ONCE
/* These switches depend on compiler flags. We are hoping here that compilers
* simulating MSVC behavior use identical macros to report compilation context.
* Otherwise those macros will have to be undef in specific compiler configuration
* files.
*/
#ifndef _CPPUNWIND
# define _STLP_DONT_USE_EXCEPTIONS 1
#endif
#ifndef _CPPRTTI
# define _STLP_NO_RTTI 1
#endif
#if defined (_MT) && !defined (_STLP_NO_THREADS)
# define _STLP_THREADS 1
#endif
#if !defined (_NATIVE_WCHAR_T_DEFINED)
# define _STLP_WCHAR_T_IS_USHORT 1
#endif
#define _STLP_NO_VENDOR_STDLIB_L 1
#if defined (_STLP_MSVC)
# if (_STLP_MSVC < 1200)
# error Microsoft Visual C++ compilers before version 6 (SP5) are not supported.
# endif
# define _STLP_NORETURN_FUNCTION __declspec(noreturn)
/* Full compiler version comes from boost library intrinsics.hpp header. */
# if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
# define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
# define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
# define _STLP_IS_POD(T) __is_pod(T)
# define _STLP_HAS_TYPE_TRAITS_INTRINSICS
# endif
# ifndef _STLP_MSVC50_COMPATIBILITY
# define _STLP_MSVC50_COMPATIBILITY 1
# endif
# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
# define _STLP_NO_STATIC_CONST_DEFINITION 1
/* # ifndef __BUILDING_STLPORT
* # define _STLP_USE_TEMPLATE_EXPORT 1
* # endif
*/
/** Note: the macro _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT is defined
unconditionally and undef'ed here when applicable. */
# if defined (UNDER_CE)
/* eVCx:
uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is
unknown) and they all reside in namespace 'std' there. However, they are not
part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on
an ARMV4I, the uncaught_exception test fails, the function returns the wrong
value. */
/* All eVCs up to at least VC8/CE5 have a broken new operator that
returns null instead of throwing bad_alloc. */
# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
# else
/* VCx:
These are present at least since VC6, but the uncaught_exception() of VC6 is
broken, it returns the wrong value in the unittests. 7.1 and later seem to
work, 7.0 is still unknown (we assume it works until negative report). */
# if (_STLP_MSVC >= 1300)// VC7 and later
# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
# endif
# if (_STLP_MSVC < 1300)
# define _STLP_NOTHROW
# endif
# endif
# if (_STLP_MSVC <= 1300)
# define _STLP_STATIC_CONST_INIT_BUG 1
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
/* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */
# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
# define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
# define _STLP_NO_METHOD_SPECIALIZATION 1
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
/* VC++ cannot handle default allocator argument in template constructors */
# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
# define _STLP_NO_QUALIFIED_FRIENDS 1
# endif
# if (_STLP_MSVC < 1300) /* including MSVC 6.0 */
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
# endif
# define _STLP_HAS_NATIVE_FLOAT_ABS 1
// TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to?
# if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310)
# define _STLP_NO_MOVE_SEMANTIC
# endif
# if (_STLP_MSVC < 1300)
/* TODO: remove this if it is handled and documented elsewhere
* dums: VC6 do not handle correctly member templates of class that are explicitely
* instanciated to be exported. There is a workaround, seperate the non template methods
* from the template ones within 2 different classes and only export the non template one.
* It is implemented for basic_string and locale at the writing of this note.
* However this problem hos not been considered as important enough to remove template member
* methods for other classes. Moreover Boost (www.boost.org) required it to be granted.
* The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined
* later in this config file.
*/
/*
# if defined (_DLL)
# define _STLP_NO_MEMBER_TEMPLATES 1
# endif
*/
/* Boris : not defining this macro for SP5 causes other problems */
/*# if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */
# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
/*# endif */
# define _STLP_DONT_USE_BOOL_TYPEDEF 1
# define _STLP_DONT_RETURN_VOID 1
# endif
# if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
/* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */
# define _STLP_USE_ABBREVS
# endif
#endif /* _STLP_MSVC */
/* The desktop variants starting with VC8 have a set of more secure replacements
* for the error-prone string handling functions of the C standard lib. */
/* When user do not consider 'unsafe' string functions as deprecated using _CRT_SECURE_NO_DEPRECATE
* macro we use 'unsafe' functions for performance reasons. */
#if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined (UNDER_CE) && \
!defined (_CRT_SECURE_NO_DEPRECATE)
# define _STLP_USE_SAFE_STRING_FUNCTIONS 1
#endif
#if (_STLP_MSVC_LIB <= 1310)
# define _STLP_VENDOR_GLOBAL_CSTD
#endif
#if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE)
/* Starting with MSVC 7.0 and compilers simulating it,
* we assume that the new SDK is granted:
*/
# define _STLP_NEW_PLATFORM_SDK 1
#endif
#if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */
# define _STLP_GLOBAL_NEW_HANDLER 1
# define _STLP_VENDOR_UNEXPECTED_STD
# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
#endif
#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
#if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL)
# define _STLP_RUNTIME_DLL
#endif
#if defined (__BUILDING_STLPORT) && \
(defined (_STLP_USE_DYNAMIC_LIB) || \
defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB))
# define _STLP_DLL
#endif
#include <stl/config/_detect_dll_or_lib.h>
#undef _STLP_RUNTIME_DLL
#undef _STLP_DLL
#if defined (_STLP_USE_DYNAMIC_LIB)
# undef _STLP_USE_DECLSPEC
# define _STLP_USE_DECLSPEC 1
# if defined (_STLP_MSVC) && (_STLP_MSVC < 1300)
# define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1
# endif
#endif
#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD)
# if !defined (_MSC_EXTENSIONS) || defined (_STLP_MSVC) && (_STLP_MSVC >= 1300)
# define _STLP_IMPORT_TEMPLATE_KEYWORD
# else
# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
# endif
#endif
#define _STLP_EXPORT_TEMPLATE_KEYWORD
#include <stl/config/_auto_link.h>
#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
/* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for
* additional buffer overrun checks. Rather than require the STLport build system and
* users to explicitely link with it we use the MSVC auto link feature.
*/
# if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT)
# pragma comment (lib, "bufferoverflowU.lib")
# if defined (_STLP_VERBOSE)
# pragma message ("STLport: Auto linking to bufferoverflowU.lib")
# endif
# endif
#endif
#if defined (_STLP_MSVC)
# include <stl/config/_feedback.h>
#endif

View File

@@ -0,0 +1,159 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "Metrowerk Codewarrior"
// Bring in definition of __MSL__ and related items
#include <mslGlobals.h>
#include <ansi_parms.h>
//
// Compiler features
//
// *** CodeWarrior Compiler Common Features ***
# if __option(longlong)
# define _STLP_LONG_LONG long long
# endif
# define _STLP_USE_UNIX_EMULATION_IO 1
# define _STLP_USE_AUTO_PTR_CONVERSIONS 1
# ifdef __INTEL__
# define _STLP_LITTLE_ENDIAN
# else
# define _STLP_BIG_ENDIAN
# endif
#if defined(_MSL_NO_LOCALE)
#define _STLP_NO_IMPORT_LOCALE
#endif
#if !__option( wchar_type )
# define _STLP_WCHAR_T_IS_USHORT
#endif
# if __MWERKS__ < 0x3000
// *** CodeWarrior Compiler Common Bugs ***
# define __MSL_FIX_ITERATORS__(myType) // Some MSL headers rely on this
# define _STLP_THROW_RETURN_BUG 1
# endif
// *** Version-specific settings ***
# if __MWERKS__ >= 0x2405
# define _STLP_HAS_NATIVE_FLOAT_ABS
# endif
# if __MWERKS__ < 0x2405
# define _STLP_STATIC_CONST_INIT_BUG
# endif
# if __MWERKS__ <= 0x2303
# define _STLP_NO_TEMPLATE_CONVERSIONS 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# endif
# if __MWERKS__ < 0x2301
# define _STLP_MEMBER_SPECIALIZATION_BUG 1
# endif
# if __MWERKS__ < 0x2300 // CW Pro5 features
# define _STLP_INLINE_MEMBER_TEMPLATES 1
# define _STLP_RELOPS_IN_STD_BUG 1
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
# define _STLP_NO_TYPENAME_ON_RETURN_TYPE
# endif
# if __MWERKS__ < 0x2200 // CW Pro4 features
# define _STLP_BROKEN_USING_DIRECTIVE 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# define _STLP_NO_QUALIFIED_FRIENDS 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# endif
# if __MWERKS__ < 0x2100 // CW Pro3 features
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
# define _STLP_NEED_TYPENAME 1
# define _STLP_NO_ARROW_OPERATOR 1
# define _STLP_TEMPLATE_PARAM_SUBTYPE_BUG 1
# define _STLP_FORCED_INLINE_INSTANTIATION_BUG 1
# define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 1
# define _STLP_INLINE_NAME_RESOLUTION_BUG 1
// *** Metrowerks Standard Library Bug ***
# define _STLP_MSVC50_COMPATIBILITY 1
# endif
# if __MWERKS__ < 0x2000 // v. 2.0 features
# define _STLP_NO_WCHAR_T 1
# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 // dwa 8/21/97 - this bug fixed for CWPro2
# endif
# if __MWERKS__ < 0x1900 // dwa 8/19/97 - 1.9 Compiler feature defines
# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
# define _STLP_BASE_TYPEDEF_BUG 1
# define _STLP_BASE_MATCH_BUG 1
# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
# define _STLP_DEFAULT_TYPE_PARAM 1 // More limited template parameters
# if __MWERKS__ < 0x1800
__GIVE_UP_WITH_STL(CW_18)
# endif
# endif
// fixes to native inclusion wrappers.
# if __MWERKS__ >= 0x2300 // CWPro5 changes paths - dwa 2/28/99
# define _STLP_NATIVE_INCLUDE_PATH ../include
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
# define _STLP_NATIVE_HEADER(header) <../include/##header>
# define _STLP_NATIVE_CPP_C_HEADER(header) <../include/##header>
# define _STLP_NATIVE_C_HEADER(header) <../include/##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
# else
# define _STLP_NATIVE_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include
# define _STLP_NATIVE_C_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes
# define _STLP_NATIVE_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
# define _STLP_NATIVE_CPP_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
# define _STLP_NATIVE_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
# endif
//Following block come from boost intrinsics.hpp file:
#if defined (__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
// Metrowerks compiler is acquiring intrinsic type traits support
// post version 8. We hook into the published interface to pick up
// user defined specializations as well as compiler intrinsics as
// and when they become available:
# include <msl_utility>
# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) Metrowerks::has_trivial_default_ctor<T>::value
# define _STLP_HAS_TRIVIAL_COPY(T) Metrowerks::has_trivial_copy_ctor<T>::value
# define _STLP_HAS_TRIVIAL_ASSIGN(T) Metrowerks::has_trivial_assignment<T>::value
# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) Metrowerks::has_trivial_dtor<T>::value
# define _STLP_IS_POD(T) Metrowerks::is_POD<T>::value
# define _STLP_HAS_TYPE_TRAITS_INTRINSICS
#endif
// fbp
# if !defined( __MSL_CPP__ ) || __MSL_CPP__ <= 0x4105
# define _STLP_NO_NATIVE_WIDE_STREAMS 1
# endif
# if defined(__MACH__)
# define _STLP_MAC
# define O_BINARY 0
# elif defined(macintosh)
# define _NOTHREADS
# endif
# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1

View File

@@ -0,0 +1,50 @@
/*
*
* Copyright (c) 2006
* Francois Dumont
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
#if !defined (_STLP_MAKE_HEADER)
# define _STLP_MAKE_HEADER(path, header) <path/header>
#endif
#if !defined (_STLP_NATIVE_HEADER)
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
# define _STLP_NATIVE_INCLUDE_PATH ../include
# endif
# define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
#endif
/* For some compilers, C headers like <stdio.h> are located in separate directory */
#if !defined (_STLP_NATIVE_C_HEADER)
# if !defined (_STLP_NATIVE_C_INCLUDE_PATH)
# define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
# endif
# define _STLP_NATIVE_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_C_INCLUDE_PATH,header)
#endif
/* For some compilers, C-library headers like <cstdio> are located in separate directory */
#if !defined (_STLP_NATIVE_CPP_C_HEADER)
# if !defined (_STLP_NATIVE_CPP_C_INCLUDE_PATH)
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
# endif
# define _STLP_NATIVE_CPP_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_C_INCLUDE_PATH,header)
#endif
/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */
#if !defined ( _STLP_NATIVE_CPP_RUNTIME_HEADER )
# if !defined (_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH)
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
# endif
# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH,header)
#endif

View File

@@ -0,0 +1,12 @@
#define _STLP_PLATFORM "Open BSD"
#define _STLP_USE_UNIX_IO
#if defined (_POSIX_THREADS) && !defined (_STLP_THREADS)
# define _STLP_THREADS
#endif
#if defined (_POSIX_THREADS) && !defined (_STLP_DONT_USE_PTHREAD_SPINLOCK)
# define _STLP_USE_PTHREAD_SPINLOCK
# define _STLP_STATIC_MUTEX _STLP_mutex
#endif

View File

@@ -0,0 +1,43 @@
#if defined (_STLP_MSVC) || defined (__ICL)
# pragma warning (push)
# include <stl/config/_warnings_off.h>
/* We are forcing the alignment to guaranty that libraries are use
* with the same alignment as the one use to build them.
*/
# if !defined (_WIN64)
# pragma pack(push, 8)
# else
# pragma pack(push, 16)
# endif
#elif defined (__BORLANDC__)
# pragma option push
# pragma option -Vx- -Ve- -a8 -b -pc
# include <stl/config/_warnings_off.h>
#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
# pragma set woff 1209
# pragma set woff 1174
# pragma set woff 1375
/* from iterator_base.h */
# pragma set woff 1183
#elif defined (__DECCXX)
# ifdef __PRAGMA_ENVIRONMENT
# pragma __environment __save
# pragma __environment __header_defaults
# endif
#elif defined (__IBMCPP__)
/* supress EDC3130: A constant is being used as a conditional expression */
# pragma info(nocnd)
#elif defined (__WATCOMCPLUSPLUS__)
# pragma warning 604 10 /* must lookahead to determine... */
# pragma warning 594 10 /* resolved as declaration/type */
# pragma warning 595 10 /* resolved as an expression */
#endif

View File

@@ -0,0 +1,94 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "CC"
#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
// define native include path before trying to include anything
#define _STLP_NATIVE_HEADER(__x) </usr/include/CC/##__x>
#define _STLP_NATIVE_C_HEADER(__x) </usr/include/##__x>
#define _STLP_NATIVE_OLD_STREAMS_HEADER(__x) </usr/include/CC/##__x>
#define _STLP_NATIVE_CPP_C_HEADER(__x) </usr/include/CC/##__x>
#define _STLP_NATIVE_CPP_RUNTIME_HEADER(__x) </usr/include/CC/##__x>
#define _STLP_NO_NATIVE_MBSTATE_T
#define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS
#define _STLP_NO_NATIVE_WIDE_FUNCTIONS
#define _STLP_NO_MEMBER_TEMPLATE_CLASSES
// #define _STLP_NO_BAD_ALLOC
#define _STL_HAS_NAMESPACES
#if ! defined (__EXCEPTIONS) && ! defined (_STLP_NO_EXCEPTIONS)
# define _STLP_NO_EXCEPTIONS
#endif
#define __EDG_SWITCHES
#define _STLP_USE_SGI_STRING 1
#define _STLP_HAS_NO_NEW_C_HEADERS 1
// # define _STLP_VENDOR_GLOBAL_EXCEPT_STD
#define _STLP_NO_POST_COMPATIBLE_SECTION
#include <standards.h>
#if !(_COMPILER_VERSION >= 730)
# define _STLP_NO_NEW_NEW_HEADER 1
#endif
#if (_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS))
# define _STLP_EXTERN_RANGE_ERRORS
#endif
#if !defined(_BOOL)
# define _STLP_NO_BOOL
#endif
#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32
# define _STLP_STATIC_CONST_INIT_BUG
#endif
#if (_COMPILER_VERSION < 720) || (defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32)
# define _STLP_DEF_CONST_PLCT_NEW_BUG
# define _STLP_DEF_CONST_DEF_PARAM_BUG
#endif
#if !((_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABIO32)
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
#endif
#if !defined(_STANDARD_C_PLUS_PLUS)
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
#endif
#if !((_COMPILER_VERSION >= 721) && defined(_NAMESPACES))
# define _STLP_HAS_NO_NAMESPACES
#endif
#if (_COMPILER_VERSION < 721) || !defined(_STL_HAS_NAMESPACES) || defined(_STLP_NO_NAMESPACES)
# define _STLP_NO_EXCEPTION_HEADER
#endif
#if _COMPILER_VERSION < 730 || !defined(_STANDARD_C_PLUS_PLUS) || !defined(_NAMESPACES)
# define _STLP_NO_BAD_ALLOC
#endif
#if defined(_LONGLONG) && defined(_SGIAPI) && _SGIAPI
# define _STLP_LONG_LONG long long
#endif
#if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS))
# define _STLP_USE_NO_IOSTREAMS
#endif
#if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS))
# define _STLP_NO_AT_MEMBER_FUNCTION
#endif
// # if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS))
#if !(_COMPILER_VERSION >= 721 && defined(_STANDARD_C_PLUS_PLUS))
# define _STLP_NO_TEMPLATE_CONVERSIONS
#endif
#if !((_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABIO32)
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
#endif
#if !defined (_NOTHREADS) && !defined (_STLP_THREADS_DEFINED) && !defined (__GNUC__)
# define _STLP_SGI_THREADS
#endif

View File

@@ -0,0 +1,77 @@
#ifndef __stl_config__solaris_h
#define __stl_config__solaris_h
#define _STLP_PLATFORM "Sun Solaris"
/* include system features file */
#include <sys/feature_tests.h>
/* system-dependent defines */
#define _STLP_USE_UNIX_IO
#ifdef __GNUC__
/*
* See comments (and configuration defines) in the host.h
*/
# if !(defined(__SunOS_5_5_1) || defined(__SunOS_5_6) || defined(__SunOS_5_7) || \
defined(__SunOS_5_8) || defined(__SunOS_5_9) || defined(__SunOS_5_10))
# error Uncomment one of the defines (__SunOS_5_x) in the file stlport/stl/config/host.h
# endif
#endif
#if defined (__SunOS_5_8) && ! defined (_STLP_HAS_NO_NEW_C_HEADERS) && ( __cplusplus >= 199711L)
# define _STLP_HAS_NATIVE_FLOAT_ABS
#endif
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
# define _STLP_RAND48 1
#endif
#if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4)) || defined (__SunOS_5_6)
# define _STLP_WCHAR_SUNPRO_EXCLUDE 1
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
#endif
/* boris : this should always be defined for Solaris 5 & 6. Any ideas how to do it? */
#if !(defined ( __KCC ) && __KCC_VERSION > 3400 ) && \
((defined(__SunOS_5_5_1) || defined(__SunOS_5_6) ))
# ifndef _STLP_NO_NATIVE_MBSTATE_T
# define _STLP_NO_NATIVE_MBSTATE_T 1
# endif
#endif /* KCC */
/* For SPARC we use lightweight synchronization */
#if defined (__sparc) /* && (defined (_REENTRANT) || defined (_PTHREADS)) */
# if ( (defined (__GNUC__) && defined (__sparc_v9__)) || \
defined (__sparcv9) ) \
&& !defined(_NOTHREADS) && !defined (_STLP_NO_SPARC_SOLARIS_THREADS)
# define _STLP_SPARC_SOLARIS_THREADS
# define _STLP_THREADS_DEFINED
# endif
#endif
/* gcc does not support ELF64 yet ; however; it supports ultrasparc + v8plus.
* limits.h contains invalid values for this combination
*/
#ifdef __GNUC__
# if (defined (__sparc_v9__) || defined (__sparcv9)) && !defined ( __WORD64 ) && !defined(__arch64__)
# define __LONG_MAX__ 2147483647L
# endif
#endif
/*
* Attention! See comments (and configuration defines) in the host.h
* (you host may has MATH_F and MATH_L functions)
*
*/
#if !defined(__SunOS_5_10) && !defined(_STLP_SOLARIS_MATH_PATCH)
# define _STLP_NO_VENDOR_MATH_F
# define _STLP_NO_VENDOR_MATH_L
#endif
#ifdef __GNUC__
# define _STLP_WCHAR_BORLAND_EXCLUDE
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
#endif
#endif /* __stl_config__solaris_h */

View File

@@ -0,0 +1,166 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "Sunpro CC"
#define _STLP_LONG_LONG long long
// GAB: 11/09/05
// Starting with 5.0 the STLport code expects to be
// instantiated during compile time. This is due to undefing
// a number of defines that are also used in the c versions
// of the file. When they are undefed the c version fails to
// compile.
// # define _STLP_LINK_TIME_INSTANTIATION 1
#if ! defined(_BOOL)
# define _STLP_NO_BOOL 1
#endif
// compatibility mode stuff
#if (__SUNPRO_CC >= 0x510) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 ))
# define _STLP_NATIVE_INCLUDE_PATH ../CC/Cstd
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../CC
#elif (__SUNPRO_CC >= 0x500) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 ))
# define _STLP_NATIVE_INCLUDE_PATH ../CC
#elif (defined (__SUNPRO_CC_COMPAT) && __SUNPRO_CC_COMPAT == 4)
# define _STLP_NATIVE_INCLUDE_PATH ../CC4
#else
# define _STLP_NATIVE_INCLUDE_PATH ../CC
#endif
#define _STLP_STATIC_CONST_INIT_BUG 1
#if (__SUNPRO_CC < 0x530)
// those are tested and proved not to work...
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
#endif
#ifdef _STLP_USE_NO_IOSTREAMS
# define _STLP_HAS_NO_NEW_C_HEADERS 1
#endif
// those do not depend on compatibility
#if (__SUNPRO_CC < 0x510)
# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
#endif
#if (__SUNPRO_CC < 0x510) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5))
# define _STLP_NO_QUALIFIED_FRIENDS 1
// no partial , just for explicit one
# define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
#endif
// Features that depend on compatibility switch
#if ( __SUNPRO_CC < 0x500 ) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5))
# ifndef _STLP_USE_NO_IOSTREAMS
# define _STLP_USE_NO_IOSTREAMS 1
# endif
# define _STLP_NO_NEW_NEW_HEADER 1
// # define _STLP_NO_RELOPS_NAMESPACE
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NEED_MUTABLE 1
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_EXCEPTION_HEADER 1
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
#elif (__SUNPRO_CC < 0x510)
// # define _STLP_NATIVE_C_HEADER(header) <../CC/##header##.SUNWCCh>
# define _STLP_NATIVE_CPP_C_HEADER(header) <../CC/##header##.SUNWCCh>
# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include
#elif defined( __SunOS_5_5_1 ) || defined( __SunOS_5_6 ) || defined( __SunOS_5_7 )
# define _STLP_NATIVE_C_INCLUDE_PATH ../CC/std
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std
#else
# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include
# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std
#endif
#if ( __SUNPRO_CC < 0x500 )
# undef _STLP_NATIVE_C_HEADER
# undef _STLP_NATIVE_CPP_C_HEADER
# define wint_t __wint_t
// famous CC 4.2 bug
# define _STLP_INLINE_STRING_LITERAL_BUG 1
// /usr/include
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
// 4.2 cannot handle iterator_traits<_Tp>::iterator_category as a return type ;(
# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
// 4.2 does not like it
# undef _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
# define _STLP_NEED_TYPENAME 1
# define _STLP_NEED_EXPLICIT 1
# define _STLP_NO_BAD_ALLOC 1
# define _STLP_NO_ARROW_OPERATOR 1
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
# define _STLP_GLOBAL_NESTED_RETURN_TYPE_PARAM_BUG 1
# undef _STLP_HAS_NO_NEW_C_HEADERS
# define _STLP_HAS_NO_NEW_C_HEADERS 1
// # define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
# if ( __SUNPRO_CC < 0x420 )
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
# define _STLP_NO_NEW_STYLE_CASTS 1
# define _STLP_NO_METHOD_SPECIALIZATION 1
# if ( __SUNPRO_CC > 0x401 )
# if (__SUNPRO_CC==0x410)
# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
# endif
# else
// SUNPro C++ 4.0.1
# define _STLP_BASE_MATCH_BUG 1
# define _STLP_BASE_TYPEDEF_BUG 1
# if (( __SUNPRO_CC < 0x401 ) && !defined(__SUNPRO_C))
__GIVE_UP_WITH_STL(SUNPRO_401)
# endif
# endif /* 4.0.1 */
# endif /* 4.2 */
#endif /* < 5.0 */
#ifndef _MBSTATET_H
# define _MBSTATET_H
# undef _MBSTATE_T
# define _MBSTATE_T
typedef struct __mbstate_t {
# if defined(_LP64)
long __filler[4];
# else
int __filler[6];
# endif
} __mbstate_t;
# ifndef _STLP_HAS_NO_NAMESPACES
namespace std {
typedef __mbstate_t mbstate_t;
}
using std::mbstate_t;
# else
typedef __mbstate_t mbstate_t;
# endif
#endif /* __MBSTATET_H */
#if !defined(_STLP_HAS_NO_NEW_C_HEADERS) && !defined(_STLP_NO_NEW_C_HEADERS)
/* Since Sun Studio uses <iso/stdlib_iso.h>, we are at its
* mercy. GCC is built on top of <stdlib.h>. */
#define _STLP_NO_VENDOR_STDLIB_L
#endif

View File

@@ -0,0 +1,171 @@
/*
* Copyright (c) 1997
* Moscow Center for SPARC Technology
*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
/*
* Purpose of this file :
*
* To hold COMPILER-SPECIFIC portion of STLport settings.
* In general, user should not edit this file unless
* using the compiler not recognized below.
*
* If your compiler is not being recognized yet,
* please look for definitions of macros in stl_mycomp.h,
* copy stl_mycomp.h to stl_YOUR_COMPILER_NAME,
* adjust flags for your compiler, and add <include config/stl_YOUR_COMPILER_NAME>
* to the secton controlled by unique macro defined internaly by your compiler.
*
* To change user-definable settings, please edit <user_config.h>
*
*/
#ifndef __stl_config__system_h
#define __stl_config__system_h
#if defined (__sun)
# include <stl/config/_solaris.h>
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# elif defined (__SUNPRO_CC) || defined (__SUNPRO_C)
# include <stl/config/_sunprocc.h>
/*
# ifdef __KCC
# include <stl/config/_kai.h>
# endif
*/
# elif defined (__APOGEE__) /* Apogee 4.x */
# include <stl/config/_apcc.h>
# elif defined (__FCC_VERSION) /* Fujitsu Compiler, v4.0 assumed */
# include <stl/config/_fujitsu.h>
# endif
#elif defined (__hpux)
# include <stl/config/_hpux.h>
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# elif defined (__HP_aCC)
# include <stl/config/_hpacc.h>
# endif
#elif defined (linux) || defined (__linux__)
# include <stl/config/_linux.h>
# if defined (__BORLANDC__)
# include <stl/config/_bc.h> /* Borland C++ 0x570 */
/* Intel's icc define __GNUC__! */
# elif defined (__INTEL_COMPILER)
# include <stl/config/_icc.h>
# elif defined (__GNUC__)
# include <stl/config/_gcc.h>
# endif
/*
# ifdef __KCC
# include <stl/config/_kai.h>
# endif
*/
#elif defined (__FreeBSD__)
# include <stl/config/_freebsd.h>
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# endif
#elif defined (__OpenBSD__)
# include <stl/config/_openbsd.h>
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# endif
#elif defined (__sgi) /* IRIX? */
# define _STLP_PLATFORM "SGI Irix"
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# else
# include <stl/config/_sgi.h>
# endif
#elif defined (__OS400__) /* AS/400 C++ */
# define _STLP_PLATFORM "OS 400"
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# else
# include <stl/config/_as400.h>
# endif
#elif defined (_AIX)
# include <stl/config/_aix.h>
# if defined (__xlC__) || defined (__IBMC__) || defined ( __IBMCPP__ )
/* AIX xlC, Visual Age C++ , OS-390 C++ */
# include <stl/config/_ibm.h>
# endif
#elif defined (_CRAY) /* Cray C++ 3.4 or 3.5 */
# define _STLP_PLATFORM "Cray"
# include <config/_cray.h>
#elif defined (__DECCXX) || defined (__DECC)
# define _STLP_PLATFORM "DECC"
# ifdef __vms
# include <stl/config/_dec_vms.h>
# else
# include <stl/config/_dec.h>
# endif
#elif defined (macintosh) || defined (_MAC)
# include <stl/config/_mac.h>
# if defined (__MWERKS__)
# include <stl/config/_mwerks.h>
# endif
#elif defined (__APPLE__)
# include <stl/config/_macosx.h>
# ifdef __GNUC__
# include <stl/config/_gcc.h>
# endif
#elif defined (__CYGWIN__)
# include <stl/config/_cygwin.h>
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# endif
#elif defined (__MINGW32__)
# define _STLP_PLATFORM "MinGW"
# if defined (__GNUC__)
# include <stl/config/_gcc.h>
# endif
# include <stl/config/_windows.h>
#elif defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__) || \
defined (__WIN16) || defined (WIN16) || defined (_WIN16)
# if defined ( __BORLANDC__ ) /* Borland C++ / CodeGear C++ */
# include <stl/config/_bc.h>
# elif defined (__WATCOM_CPLUSPLUS__) || defined (__WATCOMC__) /* Watcom C++ */
# include <stl/config/_watcom.h>
# elif defined (__COMO__) || defined (__COMO_VERSION_)
# include <stl/config/_como.h>
# elif defined (__DMC__) /* Digital Mars C++ */
# include <stl/config/_dm.h>
# elif defined (__ICL) /* Intel reference compiler for Win */
# include <stl/config/_intel.h>
# elif defined (__MWERKS__)
# include <stl/config/_mwerks.h>
# elif defined (_MSC_VER) && (_MSC_VER >= 1200) && defined (UNDER_CE)
/* Microsoft eMbedded Visual C++ 3.0, 4.0 (.NET) */
# include <stl/config/_evc.h>
# elif defined (_MSC_VER)
/* Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0 */
# include <stl/config/_msvc.h>
# endif
# include <stl/config/_windows.h>
#else
# error Unknown platform !!
#endif
#if !defined (_STLP_COMPILER)
/* Unable to identify the compiler, issue error diagnostic.
* Edit <config/stl_mycomp.h> to set STLport up for your compiler. */
# include <stl/config/stl_mycomp.h>
#endif
#endif /* __stl_config__system_h */

View File

@@ -0,0 +1,51 @@
/* This header turns off warnings that STLport headers generate for compiled
* user code.
*/
#if defined (_STLP_MSVC)
# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) || \
defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY) || defined (_STLP_CHECK_RUNTIME_COMPATIBILITY)
/*
* 31/07/2004: dums - now that we do not export the basic_string class anymore but only a base class
* we have to disable this warning as the string are used as data members type of many iostream classes.
*/
# pragma warning ( disable : 4251 ) // ignore template classes being exported in .dll's
# endif
# if (_STLP_MSVC < 1300) // VC6, eVC3, eVC4
# pragma warning( disable : 4097 ) // typedef-name used as based class of (...)
# pragma warning( disable : 4231 ) // non standard extension : 'extern' before template instanciation
# pragma warning( disable : 4244 ) // implicit conversion: possible loss of data
# pragma warning( disable : 4284 ) // for -> operator
//This warning is necessary because of the native platform headers:
# pragma warning( disable : 4290 ) // c++ exception specification ignored
# pragma warning( disable : 4514 ) // unreferenced inline function has been removed
# pragma warning( disable : 4660 ) // template-class specialization '...' is already instantiated
# pragma warning( disable : 4701 ) // local variable '...' may be used without having been initialized
# pragma warning( disable : 4710 ) // function (...) not inlined
# pragma warning( disable : 4786 ) // identifier truncated to 255 characters
# endif
# if (_STLP_MSVC < 1400)
# pragma warning( disable : 4511 ) // copy constructor cannot be generated
# endif
//Pool of common warnings for all MSVC supported versions:
//Many are only useful if warning level is set to 4.
# pragma warning( disable : 4100 ) // unreferenced formal parameter
# pragma warning( disable : 4127 ) // conditional expression is constant
# pragma warning( disable : 4146 ) // unary minus operator applied to unsigned type, result still unsigned
# pragma warning( disable : 4245 ) // conversion from 'enum ' to 'unsigned int', signed/unsigned mismatch
# pragma warning( disable : 4355 ) // this used in base member initializer list (used in rope implementation)
# pragma warning( disable : 4510 ) // default constructor cannot be generated
# pragma warning( disable : 4512 ) // assignment operator could not be generated
# pragma warning( disable : 4571 ) // catch(...) blocks compiled with /EHs do not catch or re-throw Structured Exceptions
# pragma warning( disable : 4610 ) // struct '...' can never be instantiated - user defined construtor required
#elif defined (__BORLANDC__)
# pragma option -w-ccc // -w-8008 Condition is always true OR Condition is always false
# pragma option -w-inl // -w-8027 Functions containing reserved words are not expanded inline
# pragma option -w-ngu // -w-8041 Negating unsigned value
# pragma option -w-pow // -w-8062 Previous options and warnings not restored
# pragma option -w-rch // -w-8066 Unreachable code
# pragma option -w-par // -w-8057 Parameter 'parameter' is never used
#endif

View File

@@ -0,0 +1,151 @@
// STLport configuration file
// It is internal STLport header - DO NOT include it directly
#define _STLP_COMPILER "Watcom"
#if (__WATCOMC__ < 1250)
# error Not supported!
#endif
#ifndef _CPPRTTI
# define _STLP_NO_RTTI 1
#endif
// for switches (-xs, -xss, -xst)
#if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST))
# define _STLP_HAS_NO_EXCEPTIONS 1
#endif
#if defined (_MT) && !defined (_NOTHREADS)
# define _STLP_THREADS 1
#endif
#define _STLP_NO_VENDOR_STDLIB_L
#define _STLP_NO_VENDOR_MATH_F
#define _STLP_NO_VENDOR_MATH_L
#define _STLP_LONG_LONG long long
#define _STLP_CALL __cdecl
#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
#define _STLP_NO_CONST_IN_PAIR
//#define _STLP_DONT_USE_PRIV_NAMESPACE
//#define _STLP_NO_MOVE_SEMANTIC
//#define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
#define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE
#define _STLP_NO_RELOPS_NAMESPACE
#define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
#define _STLP_NO_STATIC_CONST_DEFINITION
//#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
#define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
//#define _STLP_USE_OLD_HP_ITERATOR_QUERIES
#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
#define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
//#define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
//#define _STLP_NO_MEMBER_TEMPLATES 1
//#define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
//#define _STLP_LIMITED_DEFAULT_TEMPLATES 1
//#define _STLP_HAS_NO_NAMESPACES 1
//#define _STLP_NEED_TYPENAME 1
#define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
//#define _STLP_STATIC_CONST_INIT_BUG 1
// #define _STLP_THROW_RETURN_BUG 1
//#define _STLP_NO_TEMPLATE_CONVERSIONS 1
#define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
#define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
#define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
//#define _STLP_NONTEMPL_BASE_MATCH_BUG
//#define _STLP_NO_EXCEPTION_HEADER 1
#define _STLP_NO_BAD_ALLOC 1
//#define _STLP_NO_TYPENAME_ON_RETURN_TYPE
//#define _STLP_NESTED_TYPE_PARAM_BUG 1
//#define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
#define _STLP_NO_ARROW_OPERATOR 1
// This one is present in 11, but apparently has bugs (with auto_ptr).
//#define _STLP_NO_NEW_STYLE_CASTS 1
// Get rid of Watcom's min and max macros
#undef min
#undef max
// On QNX, headers are supposed to be found in /usr/include,
// so default "../include" should work.
#ifndef __QNX__
# define _STLP_NATIVE_INCLUDE_PATH ../h
#else
// boris : is this true or just the header is not in /usr/include ?
# define _STLP_NO_TYPEINFO 1
#endif
// Inline replacements for locking calls under Watcom
// Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using
// standard WIN32 calls
// Define _STL_MULTIPROCESSOR to enable lock
#define _STLP_NO_WATCOM_INLINE_INTERLOCK
#if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK)
long __stl_InterlockedIncrement( long *var );
long __stl_InterlockedDecrement( long *var );
#ifdef _STL_MULTIPROCESSOR
// Multiple Processors, add lock prefix
#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
".586" \
"mov eax, 1" \
"lock xadd [ecx], eax" \
"inc eax" \
value [eax];
#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
".586" \
"mov eax, 0FFFFFFFFh" \
"lock xadd [ecx], eax" \
"dec eax" \
value [eax];
#else
// Single Processor, lock prefix not needed
#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
".586" \
"mov eax, 1" \
"xadd [ecx], eax" \
"inc eax" \
value [eax];
#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
".586" \
"mov eax, 0FFFFFFFFh" \
"xadd [ecx], eax" \
"dec eax" \
value [eax];
#endif // _STL_MULTIPROCESSOR
long __stl_InterlockedExchange( long *Destination, long Value );
// xchg has auto-lock
#pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \
".586" \
"xchg eax, [ecx]" \
value [eax];
# define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x)
# define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x)
# define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
# define _STLP_ATOMIC_EXCHANGE_PTR(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
#endif /* INLINE INTERLOCK */

View File

@@ -0,0 +1,291 @@
/*
* Copyright (c) 1997-1999
* Silicon Graphics Computer Systems, Inc.
*
* Copyright (c) 1999
* Boris Fomitchev
*
* Copyright (c) 2003
* Francois Dumont
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
#ifndef _STLP_INTERNAL_WINDOWS_H
#define _STLP_INTERNAL_WINDOWS_H
#if !defined (_STLP_PLATFORM)
# define _STLP_PLATFORM "Windows"
#endif
#if !defined (_STLP_BIG_ENDIAN) && !defined (_STLP_LITTLE_ENDIAN)
# if defined (_MIPSEB)
# define _STLP_BIG_ENDIAN 1
# endif
# if defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \
defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \
defined (__alpha__)
# define _STLP_LITTLE_ENDIAN 1
# endif
# if defined (__ia64__)
/* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */
# if defined (__BIG_ENDIAN__)
# define _STLP_BIG_ENDIAN 1
# else
# define _STLP_LITTLE_ENDIAN 1
# endif
# endif
#endif /* _STLP_BIG_ENDIAN */
#if !defined (_STLP_WINDOWS_H_INCLUDED)
# define _STLP_WINDOWS_H_INCLUDED
# if defined (__BUILDING_STLPORT)
# include <stl/config/_native_headers.h>
/* Here we define _STLP_OUTERMOST_HEADER_ID to avoid indirect inclusion
* of STLport stuffs from C/C++ Standard headers exposed by STLport
* as configuration is not yet completed. */
# if !defined (_STLP_OUTERMOST_HEADER_ID)
# define _STLP_OUTERMOST_HEADER_ID 0x100
# endif
# if !defined (WIN32_LEAN_AND_MEAN)
# define WIN32_LEAN_AND_MEAN
# endif
# if !defined (VC_EXTRALEAN)
# define VC_EXTRALEAN
# endif
/* Don't let windows.h define its min and max macros. */
# if !defined (NOMINMAX)
# define NOMINMAX
# endif
# if !defined (STRICT)
# define STRICT
# endif
# if defined (_STLP_USE_MFC)
# include <afx.h>
# else
# include <windows.h>
# endif
# if (_STLP_OUTERMOST_HEADER_ID == 0x100)
# undef _STLP_OUTERMOST_HEADER_ID
# endif
# else
/* This section serves as a replacement for windows.h header. */
# if defined (__cplusplus)
extern "C" {
# endif
# if (defined (_M_AMD64) || defined (_M_IA64) || (!defined (_STLP_WCE) && defined (_M_MRX000)) || defined (_M_ALPHA) || \
(defined (_M_PPC) && (_STLP_MSVC_LIB >= 1000))) && !defined (RC_INVOKED)
# define InterlockedIncrement _InterlockedIncrement
# define InterlockedDecrement _InterlockedDecrement
# define InterlockedExchange _InterlockedExchange
# define _STLP_STDCALL
# else
# if defined (_MAC)
# define _STLP_STDCALL _cdecl
# else
# define _STLP_STDCALL __stdcall
# endif
# endif
# if defined (_STLP_NEW_PLATFORM_SDK)
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long);
# if defined (_WIN64)
_STLP_IMPORT_DECLSPEC void* _STLP_STDCALL _InterlockedExchangePointer(void* volatile *, void*);
# endif
# elif !defined (_STLP_WCE)
/* boris : for the latest SDK, you may actually need the other version of the declaration (above)
* even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ...
*/
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long);
# else
/* start of eMbedded Visual C++ specific section */
# include <stl/config/_native_headers.h>
/* Don't let windef.h define its min and max macros. */
# if !defined (NOMINMAX)
# define NOMINMAX
# endif
# include <windef.h> /* needed for basic windows types */
/** in SDKs generated with PB5, windef.h somehow includes headers which then
define setjmp. */
# if (_WIN32_WCE >= 0x500)
# define _STLP_NATIVE_SETJMP_H_INCLUDED
# endif
# ifndef _WINBASE_ /* winbase.h already included? */
long WINAPI InterlockedIncrement(long*);
long WINAPI InterlockedDecrement(long*);
long WINAPI InterlockedExchange(long*, long);
# endif
# ifndef __WINDOWS__ /* windows.h already included? */
# if defined (x86)
# include <winbase.h> /* needed for inline versions of Interlocked* functions */
# endif
# ifndef _MFC_VER
# define MessageBox MessageBoxW
int WINAPI MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
# define wvsprintf wvsprintfW
int WINAPI wvsprintfW(LPWSTR, LPCWSTR, va_list ArgList);
void WINAPI ExitThread(DWORD dwExitCode);
# if !defined (COREDLL)
# define _STLP_WCE_WINBASEAPI DECLSPEC_IMPORT
# else
# define _STLP_WCE_WINBASEAPI
# endif
_STLP_WCE_WINBASEAPI int WINAPI
MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr,
int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
_STLP_WCE_WINBASEAPI UINT WINAPI GetACP();
_STLP_WCE_WINBASEAPI BOOL WINAPI TerminateProcess(HANDLE hProcess, DWORD uExitCode);
# define OutputDebugString OutputDebugStringW
void WINAPI OutputDebugStringW(LPCWSTR);
_STLP_WCE_WINBASEAPI void WINAPI Sleep(DWORD);
# undef _STLP_WCE_WINBASEAPI
# endif /* !_MFC_VER */
# endif /* !__WINDOWS__ */
/* end of eMbedded Visual C++ specific section */
# endif
# if !defined (_STLP_WCE)
_STLP_IMPORT_DECLSPEC void _STLP_STDCALL Sleep(unsigned long);
_STLP_IMPORT_DECLSPEC void _STLP_STDCALL OutputDebugStringA(const char* lpOutputString);
# endif
# if defined (InterlockedIncrement)
# pragma intrinsic(_InterlockedIncrement)
# pragma intrinsic(_InterlockedDecrement)
# pragma intrinsic(_InterlockedExchange)
# if defined (_WIN64)
# pragma intrinsic(_InterlockedExchangePointer)
# endif
# endif
# if defined (__cplusplus)
} /* extern "C" */
# endif
# endif
/* Here we use a macro different than the InterlockedExchangePointer SDK one
* to avoid macro definition conflict. */
# if !defined (_WIN64)
/* Under 32 bits platform we rely on a simple InterlockedExchange call. */
# if defined (__cplusplus)
/* We do not define this function if we are not in a C++ translation unit just
* because of the 'inline' keyword portability issue it would introduce. We will
* have to fix it the day we need this function for a C translation unit.
*/
inline
void* _STLP_CALL STLPInterlockedExchangePointer(void* volatile* __a, void* __b) {
# if defined (_STLP_MSVC)
/* Here MSVC produces warning if 64 bits portability issue is activated.
* MSVC do not see that _STLP_ATOMIC_EXCHANGE_PTR is a macro which content
* is based on the platform, Win32 or Win64
*/
# pragma warning (push)
# pragma warning (disable : 4311) // pointer truncation from void* to long
# pragma warning (disable : 4312) // conversion from long to void* of greater size
# endif
# if !defined (_STLP_NO_NEW_STYLE_CASTS)
return reinterpret_cast<void*>(InterlockedExchange(reinterpret_cast<long*>(const_cast<void**>(__a)),
reinterpret_cast<long>(__b)));
# else
return (void*)InterlockedExchange((long*)__a, (long)__b);
# endif
# if defined (_STLP_MSVC)
# pragma warning (pop)
# endif
}
# endif
# else
# define STLPInterlockedExchangePointer _InterlockedExchangePointer
# endif
#endif /* _STLP_WINDOWS_H_INCLUDED */
/* _STLP_WIN95_LIKE signal the Windows 95 OS or assimilated Windows OS version that
* has Interlockeded[Increment, Decrement] Win32 API functions not returning modified
* value.
*/
#if (defined (WINVER) && (WINVER < 0x0410) && (!defined (_WIN32_WINNT) || (_WIN32_WINNT < 0x400))) || \
(!defined (WINVER) && (defined (_WIN32_WINDOWS) && (_WIN32_WINDOWS < 0x0410) || \
(defined (_WIN32_WINNT) && (_WIN32_WINNT < 0x400))))
# define _STLP_WIN95_LIKE
#endif
/* Between Windows 95 (0x400) and later Windows OSes an API enhancement forces us
* to change _Refcount_Base internal struct. As _Refcount_base member methods might
* be partially inlined we need to check that STLport build/use are coherent. To do
* so we try to generate a link time error thanks to the following macro.
* This additional check is limited to old compilers that might still be used with
* Windows 95. */
#if (defined (_DEBUG) || defined (_STLP_DEBUG)) && \
(defined (_STLP_MSVC) && (_STLP_MSVC < 1310) || \
defined (__GNUC__) && (__GNUC__ < 3))
/* We invert symbol names based on macro detection, when building for Windows
* 95 we expose a
* building_for_windows95_or_previous_but_library_built_for_windows98_or_later
* function in order to have a more obvious link error message signaling how
* the lib has been built and how it is used. */
# if defined (__BUILDING_STLPORT)
# if defined (_STLP_WIN95_LIKE)
# define _STLP_SIGNAL_RUNTIME_COMPATIBILITY building_for_windows95_but_library_built_for_at_least_windows98
# else
# define _STLP_SIGNAL_RUNTIME_COMPATIBILITY building_for_at_least_windows98_but_library_built_for_windows95
# endif
# else
# if defined (_STLP_WIN95_LIKE)
# define _STLP_CHECK_RUNTIME_COMPATIBILITY building_for_windows95_but_library_built_for_at_least_windows98
# else
# define _STLP_CHECK_RUNTIME_COMPATIBILITY building_for_at_least_windows98_but_library_built_for_windows95
# endif
# endif
#endif
#if defined (__WIN16) || defined (WIN16) || defined (_WIN16)
# define _STLP_WIN16
#else
# define _STLP_WIN32
#endif
#if defined(_STLP_WIN32)
# define _STLP_USE_WIN32_IO /* CreateFile/ReadFile/WriteFile */
#endif
#if defined(__MINGW32__) && !defined(_STLP_USE_STDIO_IO)
# define _STLP_USE_WIN32_IO /* CreateFile/ReadFile/WriteFile */
#endif /* __MINGW32__ */
#ifdef _STLP_WIN16
# define _STLP_USE_UNIX_EMULATION_IO /* _open/_read/_write */
# define _STLP_LDOUBLE_80
#endif
#endif /* _STLP_INTERNAL_WINDOWS_H */

View File

@@ -0,0 +1,80 @@
/*
* Compatibility section
* This section sets new-style macros based on old-style ones, for compatibility
*/
#if defined (__STL_DEBUG) && !defined (_STLP_DEBUG)
# define _STLP_DEBUG __STL_DEBUG
#endif
#if defined (__STL_NO_ANACHRONISMS) && !defined (_STLP_NO_ANACHRONISMS)
# define _STLP_NO_ANACHRONISMS __STL_NO_ANACHRONISMS
#endif
#if defined (__STL_NO_EXTENSIONS) && !defined (_STLP_NO_EXTENSIONS)
# define _STLP_NO_EXTENSIONS __STL_NO_EXTENSIONS
#endif
#if defined (__STL_NO_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTIONS)
# define _STLP_NO_EXCEPTIONS __STL_NO_EXCEPTIONS
#endif
#if defined (__STL_NO_NAMESPACES) && !defined (_STLP_NO_NAMESPACES)
# define _STLP_NO_NAMESPACES __STL_NO_NAMESPACES
#endif
#if defined (__STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS)
# define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS __STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS
#endif
#if defined (__STL_NO_OWN_NAMESPACE) && !defined (_STLP_NO_OWN_NAMESPACE)
# define _STLP_NO_OWN_NAMESPACE __STL_NO_OWN_NAMESPACE
#endif
#if defined (__STL_NO_RELOPS_NAMESPACE) && !defined (_STLP_NO_RELOPS_NAMESPACE)
# define _STLP_NO_RELOPS_NAMESPACE __STL_NO_RELOPS_NAMESPACE
#endif
#if defined (__STL_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_UNINITIALIZED)
# define _STLP_DEBUG_UNINITIALIZED __STL_DEBUG_UNINITIALIZED
#endif
#if defined (__STL_SHRED_BYTE) && !defined (_STLP_SHRED_BYTE)
# define _STLP_SHRED_BYTE __STL_SHRED_BYTE
#endif
#if defined (__STL_USE_MFC) && !defined (_STLP_USE_MFC)
# define _STLP_USE_MFC __STL_USE_MFC
#endif
#if defined (__STL_USE_NEWALLOC) && !defined (_STLP_USE_NEWALLOC)
# define _STLP_USE_NEWALLOC __STL_USE_NEWALLOC
#endif
#if defined (__STL_USE_MALLOC) && !defined (_STLP_USE_MALLOC)
# define _STLP_USE_MALLOC __STL_USE_MALLOC
#endif
#if defined (__STL_DEBUG_ALLOC) && !defined (_STLP_DEBUG_ALLOC)
# define _STLP_DEBUG_ALLOC __STL_DEBUG_ALLOC
#endif
#if defined (__STL_DEBUG_MESSAGE) && !defined (_STLP_DEBUG_MESSAGE)
# define _STLP_DEBUG_MESSAGE __STL_DEBUG_MESSAGE
#endif
#if defined (__STL_DEBUG_TERMINATE) && !defined (_STLP_DEBUG_TERMINATE)
# define _STLP_DEBUG_TERMINATE __STL_DEBUG_TERMINATE
#endif
#if defined (__STL_USE_ABBREVS) && !defined (_STLP_USE_ABBREVS)
# define _STLP_USE_ABBREVS __STL_USE_ABBREVS
#endif
#if defined (__STL_NO_MSVC50_COMPATIBILITY) && !defined (_STLP_NO_MSVC50_COMPATIBILITY)
# define _STLP_NO_MSVC50_COMPATIBILITY __STL_NO_MSVC50_COMPATIBILITY
#endif
/* STLport do not support anymore the iostream wrapper mode so this macro should
* always been define for other libraries that was using it:
*/
#if !defined (_STLP_OWN_IOSTREAMS)
# define _STLP_OWN_IOSTREAMS
#endif
#if defined (_STLP_NO_OWN_IOSTREAMS)
# error STLport do not support anymore the wrapper mode. If you want to use STLport \
use its iostreams implementation or no iostreams at all.
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,342 @@
/*
* This file defines site configuration.
*/
/*
* _STLP_NO_THREADS: if defined, STLport don't use any
* multithreading support. Synonym is _NOTHREADS
*/
/*
#define _NOTHREADS
#define _STLP_NO_THREADS
*/
/* _PTHREADS: if defined, use POSIX threads for multithreading support. */
/*
#define _PTHREADS
*/
/* compatibility section
*/
#if (defined (_STLP_NOTHREADS) || defined (_STLP_NO_THREADS) || defined (NOTHREADS))
# if !defined (_NOTHREADS)
# define _NOTHREADS
# endif
# if !defined (_STLP_NO_THREADS)
# define _STLP_NO_THREADS
# endif
#endif
#if !defined(_STLP_USE_DYNAMIC_LIB) && !defined(_STLP_USE_STATIC_LIB)
/*
* Turn _STLP_USE_DYNAMIC_LIB to enforce use of .dll version of STLport library.
* NOTE: please do that only if you know what you are doing!
* Changing default will require you to change makefiles in "build" accordingly
* and to rebuild STLPort library!
* On UNIX, this has no effect, see build/lib/README for make tags.
* See STLport configuration file (build/lib/configure.bat) for help in building
* the require library versions.
*/
/*
#define _STLP_USE_DYNAMIC_LIB
*/
/*
* Turn _STLP_USE_STATIC_LIB to enforce use of static version of STLport library.
* NOTE: please do that only if you know what you are doing!
* Changing default will require you to change makefile in "build" accordingly
* and to rebuild STLPort library!
* On UNIX, this has no effect, see build/lib/README for make tags.
* See STLport configuration file (build/lib/configure.bat) for help in building
* the require library versions.
*/
/*
#define _STLP_USE_STATIC_LIB
*/
#endif
/*
* Edit relative path below (or put full path) to get native
* compiler vendor's headers included. Default is "../include"
* for _STLP_NATIVE_INCLUDE_PATH, default for other macros is
* _STLP_NATIVE_INCLUDE_PATH.
* Hint: never install STLport in the directory that ends with "include"
*/
/*
#undef _STLP_NATIVE_INCLUDE_PATH
#define _STLP_NATIVE_INCLUDE_PATH ../include
*/
/* same for C library headers like <cstring> */
/*
#undef _STLP_NATIVE_CPP_C_INCLUDE_PATH
#define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
*/
/* same for C headers like <string.h> */
/*
#undef _STLP_NATIVE_C_INCLUDE_PATH
#define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
*/
/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */
/*
#undef _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH
#define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
*/
/*
* If namespases available, STLport use own namespace (and masquerade
* it as std). Disable own namespace may cause undefined behaviour.
*/
/*
#define _STLP_NO_OWN_NAMESPACE 1
*/
/*
* Uncomment _STLP_LEAKS_PEDANTIC to force deallocation of ALL allocated
* memory chunks. Normally not required. But if you worry about quazi-leaks
* (may be reported by some leaks detection tools), use
* _STLP_LEAKS_PEDANTIC. It should be used with _STLP_USE_NEWALLOC or
* _STLP_USE_MALLOC (see below), the default node_alloc allocator also clean
* its internal memory pool but only if STLport is used as a dynamic library
* under Win32 (using MSVC like compilers).
*/
/*
#define _STLP_LEAKS_PEDANTIC 1
*/
/*
* Uncomment _STLP_USE_NEWALLOC to force allocator<T> to use plain "new"
* instead of STLport optimized node allocator engine.
*/
/*
#define _STLP_USE_NEWALLOC 1
*/
/*
* Uncomment _STLP_USE_MALLOC to force allocator<T> to use plain "malloc"
* instead of STLport optimized node allocator engine.
*
* This is default allocator for glibc 2.3.x and later, if not mentioned other
*/
/*
#define _STLP_USE_MALLOC 1
*/
/*
* Uncomment _STLP_USE_PERTHREAD_ALLOC to force allocator<T> to use
* a specific implementation targetting the massively multi-threaded
* environment. The implementation is based on the POSIX pthread
* interface.
*/
/*
#define _STLP_USE_PERTHREAD_ALLOC 1
*/
/*
* Uncomment _STLP_USE_NODE_ALLOC if you want to force allocator<T> to use
* "node_alloc" allocator (this is default allocator for STLport, if not
* used other above, except glibc 2.3.x and later, where default is
* "malloc", due to better results)
*/
/*
#define _STLP_USE_NODE_ALLOC 1
*/
/*
* Set _STLP_DEBUG_ALLOC to use allocators that perform memory debugging,
* such as padding/checking for memory consistency
*/
/*
#define _STLP_DEBUG_ALLOC 1
*/
/*
* For compiler not supporting partial template specialization or ordering of
* template functions STLport implement a workaround based on inheritance
* detection. This inheritance can introduce trouble in client code when
* a user class derived a STL container (which is not advised as STL containers
* do not have virtual destructors). To disable this workaround turn this macro on:
*/
/*
#define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1
*/
/*
* Uncomment this to force all debug diagnostic to be directed through a
* user-defined global function:
* void __stl_debug_message(const char * format_str, ...)
* instead of predefined STLport routine.
* This allows you to take control of debug message output.
* Default routine calls fprintf(stderr,...)
* Note : If you set this macro, you must supply __stl_debug_message
* function definition somewhere.
*/
/*
#define _STLP_DEBUG_MESSAGE 1
*/
/*
* Uncomment this to force all failed assertions to be executed through
* user-defined global function:
* void __stl_debug_terminate(void). This allows
* you to take control of assertion behaviour for debugging purposes.
* Default routine calls _STLP_ABORT().
* Note : If you set this macro, you must supply __stl_debug_terminate
* function definition somewhere.
*/
/*
#define _STLP_DEBUG_TERMINATE 1
*/
/*
* Uncomment that to disable exception handling code
*/
/*
#define _STLP_DONT_USE_EXCEPTIONS 1
*/
/*
* _STLP_NO_NAMESPACES: if defined, don't put the library in namespace
* stlport:: or std::, even if the compiler supports namespaces
*/
/*
#define _STLP_NO_NAMESPACES 1
*/
/*==========================================================
* Compatibility section
*==========================================================*/
/*
* Use abbreviated class names for linker benefit (don't affect interface).
* This option is obsolete, but should work in this release.
*
*/
/*
#define _STLP_USE_ABBREVS
*/
/*
* This definition precludes STLport reverse_iterator to be compatible with
* other parts of MSVC library. (With partial specialization, it just
* has no effect).
* Use it _ONLY_ if you use SGI-style reverse_iterator<> template explicitly
*/
/*
#define _STLP_NO_MSVC50_COMPATIBILITY 1
*/
/*
* Use obsolete overloaded template functions iterator_category(), value_type(), distance_type()
* for querying iterator properties. Please note those names are non-standard and are not guaranteed
* to be used by every implementation. However, this setting is on by default when partial specialization
* is not implemented in the compiler and cannot be simulated (only if _STLP_NO_ANACHRONISMS is not set).
* Use of those interfaces for user-defined iterators is strongly discouraged:
* please use public inheritance from iterator<> template to achieve desired effect.
* Second form is to disable old-style queries in any case.
*/
/*
#define _STLP_USE_OLD_HP_ITERATOR_QUERIES
#define _STLP_NO_OLD_HP_ITERATOR_QUERIES
*/
/*
* On systems with support of large files (_LARGEFILE_SOURCE,
* _LARGEFILE64_SOURCE defined) we will use 64-bit file offset, even if
* __USE_FILE_OFFSET64 or _FILE_OFFSET_BITS not defined or _FILE_OFFSET_BITS
* less than 64. In the last case sizeof(std::streamoff) may not be equal to
* sizeof(off_t); if you want to force equal size of off_t and streamoff,
* uncomment macro below. But pay attention, this has influence on libstlport
* and in future usage it may cause conflict with defined _FILE_OFFSET_BITS macro.
*/
/*
#define _STLP_USE_DEFAULT_FILE_OFFSET
*/
/*
* _STLP_USE_STDIO_IO, _STLP_USE_UNIX_IO: force selection of stdio calls
* (fopen/flose/fread/fwrite) under fstream buffers or unistd calls
* (open/close/read/write + mmap). On systems that have both (i.e. most Unixes)
* _STLP_USE_UNIX_IO is used.
*
* There is a third variant for Windows: _STLP_USE_WIN32_IO, that based
* on Windows calls (CreateFile/CloseHandle/ReadFile/WriteFile + CreateFileMapping,
* MapViewOfFile)
*
* Uncomment only one define here!
*/
/*
#define _STLP_USE_UNIX_IO
*/
/*
#define _STLP_USE_STDIO_IO
*/
/*
#define _STLP_USE_WIN32_IO
*/
/*==========================================================================*/
/* This section contains swithes which should be off by default,
* but so few compilers would have it undefined, so that we set them here,
* with the option to be turned off later in compiler-specific file
*/
#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
/*==========================================================================*/
#if defined(__sun) && defined(__GNUC__)
/* __SunOS_5_x is not defined in headers, and there is no way to derive it from headers only;
* nevertheless this macro defined automagically by SunPro compilers family;
*
* gcc know nothing about it, but defining it with -D on compiler command line
* is a bad idea from one side, and this info still useful when we want to use
* (or don't use) some Solaris version-specific features from other side.
* Of course, the best way is to define it in spec file, but this is beyond our scope.
*
* Uncomment ONE of the following, depends on what Solaris version you use.
*/
/*
#define __SunOS_5_5_1
*/
/*
#define __SunOS_5_6
*/
/*
#define __SunOS_5_7
*/
/*
#define __SunOS_5_8
*/
/*
#define __SunOS_5_9
*/
/*
#define __SunOS_5_10
*/
#endif
#if defined(__sun)
/* With following patches Solaris 8 and 9 will have *l and *f (long double and float)
* variants of math functions:
* SunOS 5.8 patch 111721-04 (May/08/2003)
* <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111721-04-1>
* SunOS 5.9 patch 111722-04 (May/08/2003)
* <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111722-04-1>
* Solaris 10 has this functions from box.
*/
/*
#define _STLP_SOLARIS_MATH_PATCH
*/
#endif
/*
Local Variables:
mode:C++
End:
*/

View File

@@ -0,0 +1,97 @@
/*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
/*
* STLport configuration file
* It is internal STLport header - DO NOT include it directly
* Purpose of this file : to define STLport settings that depend on
* compiler flags or can be otherwise missed
*
*/
#ifndef _STLP_CONFIX_H
#define _STLP_CONFIX_H
/* If, by any chance, C compiler gets there, try to help it to pass smoothly */
#if ! defined (__cplusplus) && ! defined (_STLP_HAS_NO_NAMESPACES)
# define _STLP_HAS_NO_NAMESPACES
#endif
#if defined (__MINGW32__)
# define _STLP_NO_DRAND48
#endif
/* Modena C++ library */
#if defined (__MWERKS__) && __MWERKS__ <= 0x2303 || (defined (__KCC) && __KCC_VERSION < 3400)
# include <mcompile.h>
# define _STLP_USE_MSIPL 1
# if defined (__KCC) || (defined(__MSL_CPP__) && \
( (__MSL_CPP__ >= 0x5000 && defined( _MSL_NO_MESSAGE_FACET )) || \
(__MSL_CPP__ < 0x5000 && defined( MSIPL_NL_TYPES ))))
# define _STLP_NO_NATIVE_MESSAGE_FACET 1
# endif
#endif
/* common switches for EDG front-end */
/* __EDG_SWITCHES do not seem to be an official EDG macro.
* We keep it for historical reason. */
#if defined (__EDG_SWITCHES)
# if !(defined(_TYPENAME) || defined (_TYPENAME_IS_KEYWORD))
# undef _STLP_NEED_TYPENAME
# define _STLP_NEED_TYPENAME 1
# endif
# ifndef _WCHAR_T_IS_KEYWORD
# undef _STLP_NO_WCHAR_T
# define _STLP_NO_WCHAR_T 1
# endif
# ifndef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
# undef _STLP_NO_CLASS_PARTIAL_SPECIALIZATION
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# endif
# ifndef _MEMBER_TEMPLATES
# undef _STLP_NO_MEMBER_TEMPLATES
# define _STLP_NO_MEMBER_TEMPLATES 1
# undef _STLP_NO_MEMBER_TEMPLATE_CLASSES
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# endif
# ifndef _MEMBER_TEMPLATE_KEYWORD
# undef _STLP_NO_MEMBER_TEMPLATE_KEYWORD
# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
# endif
# if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS)
# undef _STLP_HAS_NO_EXCEPTIONS
# define _STLP_HAS_NO_EXCEPTIONS
# endif
# undef __EDG_SWITCHES
#endif /* EDG */
/* __EDG_VERSION__ is an official EDG macro, compilers based
* on EDG have to define it. */
#if defined (__EDG_VERSION__)
# if (__EDG_VERSION__ >= 244) && !defined (_STLP_HAS_INCLUDE_NEXT)
# define _STLP_HAS_INCLUDE_NEXT
# endif
# if (__EDG_VERSION__ <= 240) && !defined (_STLP_DONT_RETURN_VOID)
# define _STLP_DONT_RETURN_VOID
# endif
# if !defined (__EXCEPTIONS) && !defined (_STLP_HAS_NO_EXCEPTIONS)
# define _STLP_HAS_NO_EXCEPTIONS
# endif
# if !defined (__NO_LONG_LONG) && !defined (_STLP_LONG_LONG)
# define _STLP_LONG_LONG long long
# endif
#endif
#endif

View File

@@ -0,0 +1,282 @@
/*
* Copyright (c) 1997
* Moscow Center for SPARC Technology
*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
/*
* Purpose of this file :
*
* A list of COMPILER-SPECIFIC portion of STLport settings.
* This file is provided to help in manual configuration
* of STLport. This file is being included by stlcomp.h
* when STLport is unable to identify your compiler.
* Please remove the error diagnostic below before adjusting
* macros.
*
*/
#ifndef _STLP_MYCOMP_H
#define _STLP_MYCOMP_H
#error "Your compiler version is not recognized by STLport. Please edit <stlport/stl/config/stl_mycomp.h>"
//==========================================================
// the values choosen here as defaults try to give
// maximum functionality on the most conservative settings
// Mostly correct guess, change it for Alpha (and other environments
// that has 64-bit "long")
// # define _STLP_UINT32_T unsigned long
// Disables wchar_t functionality
// # define _STLP_NO_WCHAR_T 1
// Define if wchar_t is not an intrinsic type, and is actually a typedef to unsigned short.
// # define _STLP_WCHAR_T_IS_USHORT 1
// Uncomment if long long is available
// # define _STLP_LONG_LONG long long
// Uncomment if long double is not available
// # define _STLP_NO_LONG_DOUBLE 1
// Uncomment this if your compiler does not support "typename" keyword
// # define _STLP_NEED_TYPENAME 1
// Uncomment this if your compiler does not support "mutable" keyword
// # define _STLP_NEED_MUTABLE 1
// Uncomment this if your compiler does not support "explicit" keyword
// # define _STLP_NEED_EXPLICIT 1
// Uncomment if new-style-casts like const_cast<> are not available
// # define _STLP_NO_NEW_STYLE_CASTS 1
// Uncomment this if your compiler does not have "bool" type
// # define _STLP_NO_BOOL 1
// Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved
// # define _STLP_DONT_USE_BOOL_TYPEDEF 1
// Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h>
// # define _STLP_YVALS_H 1
// Uncomment this if your compiler has limited or no default template arguments for classes
// # define _STLP_LIMITED_DEFAULT_TEMPLATES 1
// Uncomment this if your compiler support only complete (not dependent on other parameters)
// types as default parameters for class templates
// # define _STLP_DEFAULT_TYPE_PARAM 1
// Uncomment this if your compiler do not support default parameters in template class methods
// # define _STLP_DONT_SUP_DFLT_PARAM 1
// Uncomment this if your compiler has problem with not-type
// default template parameters
// # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
// Define if compiler has
// trouble with functions getting non-type-parameterized classes as parameters
// # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
// Uncomment this if your compiler does not support namespaces
// # define _STLP_HAS_NO_NAMESPACES 1
// Uncomment if "using" keyword does not work with template types
// # define _STLP_BROKEN_USING_DIRECTIVE 1
// Uncomment this if your compiler does not support exceptions
// # define _STLP_HAS_NO_EXCEPTIONS 1
// Uncomment this when you are able to detect that the user do not
// want to use the exceptions feature.
// # define _STLP_DONT_USE_EXCEPTIONS 1
// Uncomment this if your compiler does not support exception specifications
// # define _STLP_NO_EXCEPTION_SPEC
// Define this if your compiler requires return statement after throw()
// # define _STLP_THROW_RETURN_BUG 1
// Define this if your compiler do not support return of void
// # define _STLP_DONT_RETURN_VOID 1
// Header <new> that comes with the compiler
// does not define bad_alloc exception
// # define _STLP_NO_BAD_ALLOC 1
// Define this if your compiler do not throw bad_alloc from the new operator
// # define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
// Define this if your compiler has no rtti support or if it has been disabled
// # define _STLP_NO_RTTI 1
// Define this if there is no native type_info definition
// # define _STLP_NO_TYPEINFO 1
// Uncomment if member template methods are not available
// # define _STLP_NO_MEMBER_TEMPLATES 1
// Uncomment if member template classes are not available
// # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
// Uncomment if your compiler do not support the std::allocator rebind technique
// This is a special case of bad member template classes support, it is automatically
// defined if _STLP_NO_MEMBER_TEMPLATE_CLASSES is defined.
// # define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
// Uncomment if no "template" keyword should be used with member template classes
// # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
// Compiler does not accept friend declaration qualified with namespace name.
// # define _STLP_NO_QUALIFIED_FRIENDS 1
// Uncomment if partial specialization is not available
// # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
// Define if class being partially specialized require full name (template parameters)
// of itself for method declarations
// # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
// Compiler has problem with qualified specializations (cont int, volatile int...)
// # define _STLP_QUALIFIED_SPECIALIZATION_BUG
// Compiler has problems specializing members of partially
// specialized class
// # define _STLP_MEMBER_SPECIALIZATION_BUG
// Uncomment if partial order of template functions is not available
// # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
// Uncomment if specialization of methods is not allowed
// # define _STLP_NO_METHOD_SPECIALIZATION 1
// Uncomment if full specialization does not use partial spec. syntax : template <> struct ....
// # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
// Uncomment if compiler does not support explicit template arguments for functions
// # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
// Uncomment this if your compiler can't inline while(), for()
// # define _STLP_LOOP_INLINE_PROBLEMS 1
// Define if the compiler fails to match a template function argument of base
// # define _STLP_BASE_MATCH_BUG 1
// Define if the compiler fails to match a template function argument of base
// (non-template)
//# define _STLP_NONTEMPL_BASE_MATCH_BUG 1
// Define if the compiler rejects outline method definition
// explicitly taking nested types/typedefs
// # define _STLP_NESTED_TYPE_PARAM_BUG 1
// Compiler requires typename keyword on outline method definition
// explicitly taking nested types/typedefs
// #define _STLP_TYPENAME_ON_RETURN_TYPE
// Define if the baseclass typedefs not visible from outside
// # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
// if your compiler have serious problems with typedefs, try this one
// # define _STLP_BASE_TYPEDEF_BUG 1
// Uncomment if getting errors compiling mem_fun* adaptors
// # define _STLP_MEMBER_POINTER_PARAM_BUG 1
// Uncomment if the compiler can't handle a constant-initializer in the
// declaration of a static const data member of integer type.
// (See section 9.4.2, paragraph 4, of the C++ standard.)
// # define _STLP_STATIC_CONST_INIT_BUG
// Uncomment to indicate that the compiler do not like static constant
// definition.
// Meaningfull only if _STLP_STATIC_CONST_INIT_BUG is not defined.
// # define _STLP_NO_STATIC_CONST_DEFINITION
// Define if default constructor for builtin integer type fails to initialize it to 0
// In expression like new(&char) char():
//# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
// In default function parameter like _M_method(_Tp __x = _Tp())
//# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
// Defined if constructor
// required to explicitly call member's default constructors for const objects
// # define _STLP_CONST_CONSTRUCTOR_BUG 1
// Defined if the compiler has trouble calling POD-types constructors/destructors
// # define _STLP_TRIVIAL_CONSTRUCTOR_BUG 1
// # define _STLP_TRIVIAL_DESTRUCTOR_BUG 1
// Define if having problems specializing maps/sets with
// key type being const
// # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG
// Uncomment this to disable -> operators on all iterators
// # define _STLP_NO_ARROW_OPERATOR 1
// Uncomment this to disble at() member functions for containers
// # define _STLP_NO_AT_MEMBER_FUNCTION 1
// Define this if compiler lacks <exception> header
// # define _STLP_NO_EXCEPTION_HEADER 1
// Uncomment this if your C library has lrand48() function
// # define _STLP_RAND48 1
// Uncomment if native new-style C library headers lile <cstddef>, etc are not available.
// # define _STLP_HAS_NO_NEW_C_HEADERS 1
// uncomment if new-style headers <new> is available
// # define _STLP_HAS_NEW_NEW_HEADER 1
// uncomment this if <iostream> and other STD headers put their stuff in ::namespace,
// not std::
// # define _STLP_VENDOR_GLOBAL_STD
// uncomment this if <cstdio> and the like put stuff in ::namespace,
// not std::
// # define _STLP_VENDOR_GLOBAL_CSTD
// uncomment this if your compiler consider as ambiguous a function imported within
// the stlport namespace and called without scope (:: or std::)
// # define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
// uncomment this if your compiler define all the C math functions C++ additional
// overloads in ::namespace and not only in std::.
// # define _STLP_HAS_GLOBAL_C_MATH_FUNCTIONS 1
// Edit relative path below (or put full path) to get native
// compiler headers included. Default is "../include".
// C headers may reside in different directory, so separate macro is provided.
// Hint : never install STLport in the directory that ends with "include"
// # define _STLP_NATIVE_INCLUDE_PATH ../include
// # define _STLP_NATIVE_C_INCLUDE_PATH ../include
// # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include
// This macro constructs header path from directory and name.
// You may change it if your compiler does not understand "/".
// # define _STLP_MAKE_HEADER(path, header) <path/header>
// This macro constructs native include header path from include path and name.
// You may have do define it if experimenting problems with preprocessor
// # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
// Same for C headers
// #define _STLP_NATIVE_C_HEADER(header)
//==========================================================
#endif

View File

@@ -0,0 +1,326 @@
/*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*/
/*
* Purpose of this file :
*
* To hold user-definable portion of STLport settings which may be overridden
* on per-project basis.
* Please note that if you use STLport iostreams (compiled library) then you have
* to use consistent settings when you compile STLport library and your project.
* Those settings are defined in host.h and have to be the same for a given
* STLport installation.
*/
/*==========================================================
* User-settable macros that control compilation:
* Features selection
*==========================================================*/
/*
* Use this switch for embedded systems where no iostreams are available
* at all. STLport own iostreams will also get disabled automatically then.
* You can either use STLport iostreams, or no iostreams.
* If you want iostreams, you have to compile library in ../build/lib
* and supply resulting library at link time.
*/
/*
#define _STLP_NO_IOSTREAMS 1
*/
/*
* Set _STLP_DEBUG to turn the "Debug Mode" on.
* That gets you checked iterators/ranges in the manner
* of "Safe STL". Very useful for debugging. Thread-safe.
* Please do not forget to link proper STLport library flavor
* (e.g libstlportstlg.so or libstlportstlg.a) when you set this flag
* in STLport iostreams mode, namespace customization guaranty that you
* link to the right library.
*/
/*
#define _STLP_DEBUG 1
*/
/*
* You can also choose the debug level:
* STLport debug level: Default value
* Check only what the STLport implementation consider as invalid.
* It also change the iterator invalidation schema.
* Standard debug level: Check for all operations the standard consider as "undefined behavior"
* even if STlport implement it correctly. It also invalidates iterators
* more often.
*/
/*
#define _STLP_DEBUG_LEVEL _STLP_STLPORT_DBG_LEVEL
#define _STLP_DEBUG_LEVEL _STLP_STANDARD_DBG_LEVEL
*/
/* When an inconsistency is detected by the 'safe STL' the program will abort.
* If you prefer an exception define the following macro. The thrown exception
* will be the Standard runtime_error exception.
*/
/*
#define _STLP_DEBUG_MODE_THROWS
*/
/*
* _STLP_NO_CUSTOM_IO : define this if you do not instantiate basic_xxx iostream
* classes with custom types (which is most likely the case). Custom means types
* other than char, wchar_t, char_traits<> and allocator<> like
* basic_ostream<my_char_type, my_traits<my_char_type> > or
* basic_string<char, char_traits<char>, my_allocator >
* When this option is on, most non-inline template functions definitions for iostreams
* are not seen by the client which saves a lot of compile time for most compilers,
* also object and executable size for some.
* Default is off, just not to break compilation for those who do use those types.
* That also guarantees that you still use optimized standard i/o when you compile
* your program without optimization. Option does not affect STLport library build; you
* may use the same binary library with and without this option, on per-project basis.
*/
/*
#define _STLP_NO_CUSTOM_IO
*/
/*
* _STLP_NO_RELOPS_NAMESPACE: if defined, don't put the relational
* operator templates (>, <=, >=, !=) in namespace std::rel_ops, even
* if the compiler supports namespaces.
* Note : if the compiler do not support namespaces, those operators are not be provided by default,
* to simulate hiding them into rel_ops. This was proved to resolve many compiler bugs with ambiguity.
*/
/*
#define _STLP_NO_RELOPS_NAMESPACE 1
*/
/*
* If STLport use its own namespace, see _STLP_NO_OWN_NAMESPACE in host.h, it will try
* by default to rename std:: for the user to stlport::. If you do not want this feature,
* please define the following switch and then use stlport::
*/
/*
#define _STLP_DONT_REDEFINE_STD 1
*/
/*
* _STLP_WHOLE_NATIVE_STD : only meaningful if STLport uses its own namespace.
* Normally, STLport only imports necessary components from native std:: namespace.
* You might want everything from std:: being available in std:: namespace when you
* include corresponding STLport header (like STLport <map> provides std::map as well, etc.),
* if you are going to use both stlport:: and std:: components in your code.
* Otherwise this option is not recommended as it increases the size of your object files
* and slows down compilation.
* Beware, if you do not use STLport iostream (_STLP_NO_IOSTREAMS above), ask STLport to
* not rename std:: in stlport:: and try to have access to whole native Standard stuff then
* STLport will only throw exceptions from the std namespace and not from stlport.
* For instance a problem in stlport::vector::at will throw a std::out_of_range exception
* and not a stlport::out_of_range.
* Notice that STLport exceptions inherits from std::exception.
*/
/*
#define _STLP_WHOLE_NATIVE_STD
*/
/*
* Use this option to catch uninitialized members in your classes.
* When it is set, construct() and destroy() fill the class storage
* with _STLP_SHRED_BYTE (see below).
* Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically.
*/
/*
#define _STLP_DEBUG_UNINITIALIZED 1
#define _STLP_DEBUG_ALLOC 1
*/
/*
* Uncomment and provide a definition for the byte with which raw memory
* will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED is defined.
* Choose a value which is likely to cause a noticeable problem if dereferenced
* or otherwise abused. A good value may already be defined for your platform.
*/
/*
#define _STLP_SHRED_BYTE 0xA3
*/
/*
* This option is for gcc users only and only affects systems where native linker
* does not let gcc to implement automatic instantiation of static template data members/
* It is being put in this file as there is no way to check if we are using GNU ld automatically,
* so it becomes user's responsibility.
*/
/*
#define _STLP_GCC_USES_GNU_LD
*/
/*==========================================================
* Compatibility section
*==========================================================*/
/*
* Define this macro to disable anachronistic constructs (like the ones used in HP STL and
* not included in final standard, etc.
*/
/*
#define _STLP_NO_ANACHRONISMS 1
*/
/*
* Define this macro to disable STLport extensions (for example, to make sure your code will
* compile with some other implementation )
*/
/*
#define _STLP_NO_EXTENSIONS 1
*/
/*
* You should define this macro if compiling with MFC - STLport <stl/config/_windows.h>
* then include <afx.h> instead of <windows.h> to get synchronisation primitives
*/
/*
#define _STLP_USE_MFC 1
*/
/*
* boris : this setting is here as we cannot detect precense of new Platform SDK automatically
* If you are using new PSDK with VC++ 6.0 or lower,
* please define this to get correct prototypes for InterlockedXXX functions
*/
/*
#define _STLP_NEW_PLATFORM_SDK 1
*/
/*
* For the same reason as the one above we are not able to detect easily use
* of the compiler coming with the Platform SDK instead of the one coming with
* a Microsoft Visual Studio release. This change native C/C++ library location
* and implementation, please define this to get correct STLport configuration.
*/
/*
#define _STLP_USING_PLATFORM_SDK_COMPILER 1
*/
/*
* Some compilers support the automatic linking feature.
* Uncomment the following if you prefer to specify the STLport library
* to link with yourself.
* For the moment, this feature is only supported and implemented within STLport
* by the Microsoft compilers.
*/
/*
#define _STLP_DONT_USE_AUTO_LINK 1
*/
/*
* If you customize the STLport generated library names don't forget to give
* the motif you used during configuration here if you still want the auto link
* to work. (Do not remove double quotes in the macro value)
*/
/*
#define _STLP_LIB_NAME_MOTIF "???"
*/
/*
* Uncomment to get feedback at compilation time about result of build environment
* introspection.
*/
/*
#define _STLP_VERBOSE 1
*/
/*
* Use minimum set of default arguments on template classes that have more
* than one - for example map<>, set<>.
* This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on.
* If _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is set, you'll be able to compile
* set<T> with those compilers, but you'll have to use __set__<T, less<T>>
*
* Affects : map<>, multimap<>, set<>, multiset<>, hash_*<>,
* queue<>, priority_queue<>, stack<>, istream_iterator<>
*/
/*
#define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS 1
*/
/*
* The agregation of strings using the + operator is an expensive operation
* as it requires construction of temporary objects that need memory allocation
* and deallocation. The problem can be even more important if you are adding
* several strings together in a single expression. To avoid this problem STLport
* implement expression template. With this technique addition of 2 strings is not
* a string anymore but a temporary object having a reference to each of the
* original strings involved in the expression. This object carry information
* directly to the destination string to set its size correctly and only make
* a single call to the allocator. This technique also works for the addition of
* N elements where elements are basic_string, C string or a single character.
* The drawback can be longer compilation time and bigger executable size.
* Another problem is that some compilers (gcc) fail to use string proxy object
* if do with class derived from string (see unit tests for details).
* STLport rebuild: Yes
*/
/*
#define _STLP_USE_TEMPLATE_EXPRESSION 1
*/
/*
* By default the STLport basic_string implementation use a little static buffer
* (of 16 chars when writing this doc) to avoid systematically memory allocation
* in case of little basic_string. The drawback of such a method is bigger
* basic_string size and some performance penalty for method like swap. If you
* prefer systematical dynamic allocation turn on this macro.
* STLport rebuild: Yes
*/
/*
#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1
*/
/*
* To reduce the famous code bloat trouble due to the use of templates STLport grant
* a specialization of some containers for pointer types. So all instanciations
* of those containers with a pointer type will use the same implementation based on
* a container of void*. This feature has shown very good result on object files size
* but after link phase and optimization you will only experiment benefit if you use
* many container with pointer types.
* There are however a number of limitation to use this option:
* - with compilers not supporting partial template specialization feature, you won't
* be able to access some nested container types like iterator as long as the
* definition of the type used to instanciate the container will be incomplete
* (see IncompleteClass definition in test/unit/vector_test.cpp).
* - you won't be able to use complex Standard allocator implementations which are
* allocators having pointer nested type not being a real C pointer.
*/
/*
#define _STLP_USE_PTR_SPECIALIZATIONS 1
*/
/*
* To achieve many different optimizations within the template implementations STLport
* uses some type traits technique. With this macro you can ask STLport to use the famous
* boost type traits rather than the internal one. The advantages are more compiler
* integration and a better support. If you only define this macro once the STLport has been
* built you just have to add the boost install path within your include path. If you want
* to use this feature at STLport built time you will have to define the
* STLP_BUILD_BOOST_PATH enrironment variable with the value of the boost library path.
*/
/*
#define _STLP_USE_BOOST_SUPPORT 1
*/
/*==========================================================*/
/*
Local Variables:
mode: C++
End:
*/