111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// STLport configuration file
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// It is internal STLport header - DO NOT include it directly
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_COMPILER "Sunpro CC"
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_LONG_LONG  long long
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// GAB: 11/09/05
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Starting with 5.0 the STLport code expects to be
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// instantiated during compile time. This is due to undefing
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// a number of defines that are also used in the c versions
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// of the file. When they are undefed the c version fails to
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// compile.
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// #  define _STLP_LINK_TIME_INSTANTIATION 1
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if ! defined(_BOOL)
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_BOOL 1
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// compatibility mode stuff
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if (__SUNPRO_CC >= 0x510) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 ))
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_INCLUDE_PATH ../CC/Cstd
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../CC
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif (__SUNPRO_CC >= 0x500) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 ))
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_INCLUDE_PATH ../CC
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif (defined (__SUNPRO_CC_COMPAT) && __SUNPRO_CC_COMPAT == 4)
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_INCLUDE_PATH ../CC4
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_INCLUDE_PATH ../CC
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_STATIC_CONST_INIT_BUG 1
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if (__SUNPRO_CC < 0x530)
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// those are tested and proved not to work...
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_USE_OLD_HP_ITERATOR_QUERIES
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef _STLP_USE_NO_IOSTREAMS
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_HAS_NO_NEW_C_HEADERS 1
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// those do not depend on compatibility
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if (__SUNPRO_CC < 0x510)
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NONTEMPL_BASE_MATCH_BUG 1
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if (__SUNPRO_CC < 0x510) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5))
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_QUALIFIED_FRIENDS 1
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// no partial , just for explicit one
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_MEMBER_TEMPLATES 1
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Features that depend on compatibility switch
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if ( __SUNPRO_CC < 0x500 ) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5))
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  ifndef _STLP_USE_NO_IOSTREAMS
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    define _STLP_USE_NO_IOSTREAMS 1
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_NEW_NEW_HEADER 1
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// #  define _STLP_NO_RELOPS_NAMESPACE
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_HAS_NO_NAMESPACES 1
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NEED_MUTABLE  1
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_BAD_ALLOC 1
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_EXCEPTION_HEADER 1
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_C_INCLUDE_PATH ../include
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif (__SUNPRO_CC < 0x510)
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// #  define _STLP_NATIVE_C_HEADER(header) <../CC/##header##.SUNWCCh>
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_CPP_C_HEADER(header) <../CC/##header##.SUNWCCh>
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_C_INCLUDE_PATH /usr/include
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined( __SunOS_5_5_1 ) || defined( __SunOS_5_6 ) || defined( __SunOS_5_7 )
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_C_INCLUDE_PATH ../CC/std
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_C_INCLUDE_PATH /usr/include
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if ( __SUNPRO_CC < 0x500 )
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef _STLP_NATIVE_C_HEADER
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef _STLP_NATIVE_CPP_C_HEADER
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define wint_t __wint_t
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// famous CC 4.2 bug
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_INLINE_STRING_LITERAL_BUG 1
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// /usr/include
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NATIVE_C_INCLUDE_PATH ../include
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// 4.2 cannot handle iterator_traits<_Tp>::iterator_category as a return type ;(
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_USE_OLD_HP_ITERATOR_QUERIES
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// 4.2 does not like it
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef  _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_LIMITED_DEFAULT_TEMPLATES 1
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NEED_TYPENAME 1
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NEED_EXPLICIT 1
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_BAD_ALLOC 1
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_NO_ARROW_OPERATOR 1
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_DEF_CONST_PLCT_NEW_BUG 1
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_DEF_CONST_DEF_PARAM_BUG 1
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_GLOBAL_NESTED_RETURN_TYPE_PARAM_BUG 1
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef  _STLP_HAS_NO_NEW_C_HEADERS
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _STLP_HAS_NO_NEW_C_HEADERS 1
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// #  define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  if ( __SUNPRO_CC < 0x420 )
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    define _STLP_NO_NEW_STYLE_CASTS 1
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    define _STLP_NO_METHOD_SPECIALIZATION 1
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if ( __SUNPRO_CC > 0x401 )
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      if (__SUNPRO_CC==0x410)
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#        define _STLP_BASE_TYPEDEF_OUTSIDE_BUG  1
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      endif
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    else
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert   // SUNPro C++ 4.0.1
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      define _STLP_BASE_MATCH_BUG          1
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      define _STLP_BASE_TYPEDEF_BUG        1
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      if (( __SUNPRO_CC < 0x401 ) && !defined(__SUNPRO_C))
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert         __GIVE_UP_WITH_STL(SUNPRO_401)
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      endif
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif /* 4.0.1 */
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif /* 4.2 */
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* <  5.0 */
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _MBSTATET_H
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _MBSTATET_H
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef _MBSTATE_T
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define _MBSTATE_T
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct __mbstate_t {
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  if defined(_LP64)
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert  long    __filler[4];
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  else
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert  int     __filler[6];
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __mbstate_t;
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  ifndef _STLP_HAS_NO_NAMESPACES
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertnamespace std {
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert  typedef __mbstate_t mbstate_t;
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing std::mbstate_t;
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  else
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __mbstate_t mbstate_t;
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif  /* __MBSTATET_H */
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(_STLP_HAS_NO_NEW_C_HEADERS) && !defined(_STLP_NO_NEW_C_HEADERS)
16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Since Sun Studio uses <iso/stdlib_iso.h>, we are at its
16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * mercy.  GCC is built on top of <stdlib.h>. */
16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_VENDOR_STDLIB_L
16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
167