Home | History | Annotate | Download | only in config
      1 /* STLport configuration file
      2  * It is internal STLport header - DO NOT include it directly
      3  */
      4 
      5 #define _STLP_COMPILER "gcc"
      6 
      7 #define _STLP_HAS_INCLUDE_NEXT 1
      8 
      9 #if (__GNUC__ < 2) || ((__GNUC__ < 3) && ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)))
     10 /* We do not support neither the unofficial 2.96 gcc version. */
     11 #  error GNU compilers before 2.95 are not supported anymore.
     12 #endif
     13 
     14 /* Systems having GLIBC installed have different traits */
     15 #if defined (__linux__)
     16 #  ifndef _STLP_USE_GLIBC
     17 #    define _STLP_USE_GLIBC 1
     18 #  endif
     19 #  if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
     20 #    define _STLP_USE_UCLIBC 1
     21 #  endif
     22 #endif
     23 
     24 #if defined (__CYGWIN__) && \
     25      (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
     26 #  define _STLP_NO_VENDOR_MATH_L
     27 #  define _STLP_NO_VENDOR_STDLIB_L
     28 #endif
     29 
     30 #if (__GNUC__ < 3)
     31 #  define _STLP_NO_VENDOR_STDLIB_L
     32 #endif
     33 
     34 #if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
     35 /* define for gcc versions before 3.4.0. */
     36 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
     37 #endif
     38 
     39 #if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
     40                              (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
     41                              (defined (__MINGW32__) && defined (_MT)))
     42 #  define _REENTRANT
     43 #endif
     44 
     45 #if defined (__DJGPP)
     46 #  define _STLP_RAND48    1
     47 #  define _NOTHREADS    1
     48 #  undef  _PTHREADS
     49 #  define _STLP_LITTLE_ENDIAN
     50 #endif
     51 
     52 #if defined (__MINGW32__)
     53 /* Mingw32, egcs compiler using the Microsoft C runtime */
     54 #  if (__GNUC__ >= 3)
     55 /* For gcc before version 3 this macro is defined below */
     56 #    define _STLP_VENDOR_GLOBAL_CSTD
     57 #  endif
     58 #  undef  _STLP_NO_DRAND48
     59 #  define _STLP_NO_DRAND48
     60 #  define _STLP_CALL
     61 #endif /* __MINGW32__ */
     62 
     63 #if defined (__CYGWIN__) || defined (__MINGW32__)
     64 #  if !defined (_STLP_USE_STATIC_LIB)
     65 #    define _STLP_USE_DECLSPEC 1
     66 #    if !defined (_STLP_USE_DYNAMIC_LIB)
     67 #      define _STLP_USE_DYNAMIC_LIB
     68 #    endif
     69 #    define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
     70 #    define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
     71 #    define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
     72 #  endif
     73 /* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
     74  * used to import symbols from PSDK under MinGW
     75  */
     76 #  define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
     77 #else
     78 #  if (__GNUC__ >= 4)
     79 #    if !defined (_STLP_USE_STATIC_LIB)
     80 #      if !defined (_STLP_USE_DYNAMIC_LIB)
     81 #        define _STLP_USE_DYNAMIC_LIB
     82 #      endif
     83 #      define _STLP_USE_DECLSPEC 1
     84 #      define _STLP_EXPORT_DECLSPEC __attribute__((visibility("default")))
     85 #      define _STLP_IMPORT_DECLSPEC __attribute__((visibility("default")))
     86 #      define _STLP_CLASS_EXPORT_DECLSPEC __attribute__((visibility("default")))
     87 #      define _STLP_CLASS_IMPORT_DECLSPEC __attribute__((visibility("default")))
     88 #    endif
     89 #  endif
     90 #endif
     91 
     92 #if defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__))
     93 #  if !defined (__MINGW32__) && !defined (__CYGWIN__)
     94 #    define _STLP_NO_NATIVE_MBSTATE_T    1
     95 #  endif
     96 #  if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
     97 #    define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
     98 #  endif
     99 #  define _STLP_NO_NATIVE_WIDE_STREAMS   1
    100 #endif
    101 
    102 #define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
    103 
    104 /* Mac OS X is a little different with namespaces and cannot instantiate
    105  * static data members in template classes */
    106 #if defined (__APPLE__)
    107 #  if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
    108 /* Mac OS X is missing a required typedef and standard macro */
    109 typedef unsigned int wint_t;
    110 #  endif
    111 
    112 #  define __unix
    113 
    114 #  define _STLP_NO_LONG_DOUBLE
    115 
    116 /* Mac OS X needs all "::" scope references to be "std::" */
    117 #  define _STLP_USE_NEW_C_HEADERS
    118 
    119 #  define _STLP_NO_VENDOR_STDLIB_L
    120 
    121 #endif /* __APPLE__ */
    122 
    123 /* g++ 2.7.x and above */
    124 #define _STLP_LONG_LONG long long
    125 
    126 #ifdef _STLP_USE_UCLIBC
    127   /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
    128 #  define _STLP_NO_VENDOR_MATH_F
    129   /* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
    130 #  define _STLP_NO_VENDOR_MATH_L
    131 #  define _STLP_NO_LONG_DOUBLE
    132 #endif
    133 
    134 #if defined (__OpenBSD__) || defined (__FreeBSD__)
    135 #  define _STLP_NO_VENDOR_MATH_L
    136 #  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
    137 #  ifndef __unix
    138 #    define __unix
    139 #  endif
    140 #endif
    141 
    142 #if defined (__alpha__)
    143 #  define _STLP_NO_VENDOR_MATH_L
    144 #endif
    145 
    146 #if defined (__hpux)
    147 #  define _STLP_VENDOR_GLOBAL_CSTD 1
    148 #  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
    149   /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
    150 #  define _STLP_NO_VENDOR_MATH_F
    151 #endif
    152 
    153 #if (__GNUC__ >= 3)
    154 #  ifndef _STLP_HAS_NO_NEW_C_HEADERS
    155 /*
    156 #    ifndef _STLP_USE_UCLIBC
    157 */
    158 #    define _STLP_HAS_NATIVE_FLOAT_ABS
    159 /*
    160 #    endif
    161 */
    162 #  else
    163 #    ifdef _STLP_USE_GLIBC
    164 #      define _STLP_VENDOR_LONG_DOUBLE_MATH  1
    165 #    endif
    166 #  endif
    167 #endif
    168 
    169 #if (__GNUC__ < 3)
    170 #  define _STLP_HAS_NO_NEW_C_HEADERS     1
    171 #  define _STLP_VENDOR_GLOBAL_CSTD       1
    172 #  define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
    173 #  ifndef __HONOR_STD
    174 #    define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
    175 #  endif
    176 /* egcs fails to initialize builtin types in expr. like this : new(p) char();  */
    177 #  define _STLP_DEF_CONST_PLCT_NEW_BUG 1
    178 #endif
    179 
    180 #undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
    181 #undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
    182 
    183 /* strict ANSI prohibits "long long" ( gcc) */
    184 #if defined ( __STRICT_ANSI__ )
    185 #  undef _STLP_LONG_LONG
    186 #endif
    187 
    188 #ifndef __EXCEPTIONS
    189 #  undef  _STLP_DONT_USE_EXCEPTIONS
    190 #  define _STLP_DONT_USE_EXCEPTIONS 1
    191 #endif
    192 
    193 #if (__GNUC__ >= 3)
    194 /* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
    195    instantiation within library: nothing except increased library size. - ptr
    196  */
    197 #  define _STLP_NO_FORCE_INSTANTIATE
    198 #endif
    199