19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef __stl_config__solaris_h
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define __stl_config__solaris_h
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_PLATFORM "Sun Solaris"
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* include system features file */
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <sys/feature_tests.h>
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* system-dependent defines */
10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_USE_UNIX_IO
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifdef __GNUC__
13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/*
14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * See comments (and configuration defines) in the host.h
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !(defined(__SunOS_5_5_1) || defined(__SunOS_5_6) || defined(__SunOS_5_7) || \
17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott        defined(__SunOS_5_8) || defined(__SunOS_5_9) || defined(__SunOS_5_10))
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    error Uncomment one of the defines (__SunOS_5_x) in the file stlport/stl/config/host.h
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (__SunOS_5_8) && ! defined (_STLP_HAS_NO_NEW_C_HEADERS) && ( __cplusplus >= 199711L)
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_HAS_NATIVE_FLOAT_ABS
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_RAND48 1
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4)) || defined (__SunOS_5_6)
319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_WCHAR_SUNPRO_EXCLUDE 1
329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* boris : this should always be defined for Solaris 5 & 6. Any ideas how to do it? */
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !(defined ( __KCC ) && __KCC_VERSION > 3400 ) && \
379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  ((defined(__SunOS_5_5_1) || defined(__SunOS_5_6) ))
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  ifndef _STLP_NO_NATIVE_MBSTATE_T
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_NO_NATIVE_MBSTATE_T 1
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* KCC */
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* For SPARC we use lightweight synchronization */
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (__sparc) /* && (defined (_REENTRANT) || defined (_PTHREADS)) */
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if ( (defined (__GNUC__) && defined (__sparc_v9__)) || \
469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block        defined (__sparcv9) ) \
479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block       && !defined(_NOTHREADS) && !defined (_STLP_NO_SPARC_SOLARIS_THREADS)
489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_SPARC_SOLARIS_THREADS
499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_THREADS_DEFINED
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* gcc does not support ELF64 yet ; however; it supports ultrasparc + v8plus.
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * limits.h contains invalid values for this combination
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifdef __GNUC__
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if (defined  (__sparc_v9__) || defined (__sparcv9)) && !defined ( __WORD64 ) && !defined(__arch64__)
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define __LONG_MAX__ 2147483647L
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/*
63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Attention! See comments (and configuration defines) in the host.h
64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * (you host may has MATH_F and MATH_L functions)
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined(__SunOS_5_10) && !defined(_STLP_SOLARIS_MATH_PATCH)
68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  define _STLP_NO_VENDOR_MATH_F
69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  define _STLP_NO_VENDOR_MATH_L
70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifdef __GNUC__
739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_WCHAR_BORLAND_EXCLUDE
749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* __stl_config__solaris_h */
78