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 */ 109typedef 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