ossrv_pub/configuration/inc/stdapis/stlport/config/_gcc.h
changeset 31 ce057bb09d0b
child 34 5fae379060a7
equal deleted inserted replaced
30:e20de85af2ee 31:ce057bb09d0b
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 /* STLport configuration file
       
    18  * It is internal STLport header - DO NOT include it directly
       
    19  */
       
    20 
       
    21 #define _STLP_COMPILER "gcc"
       
    22 
       
    23 /* Systems having GLIBC installed have different traits */
       
    24 #if defined (__linux__)
       
    25 #  ifndef _STLP_USE_GLIBC
       
    26 #    define _STLP_USE_GLIBC 1
       
    27 #  endif
       
    28 #  if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
       
    29 #    define _STLP_USE_UCLIBC 1
       
    30 #  endif
       
    31 #endif
       
    32 
       
    33 #if defined (__CYGWIN__) && \
       
    34      (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
       
    35 #  define _STLP_NO_VENDOR_MATH_L
       
    36 #  define _STLP_NO_VENDOR_STDLIB_L
       
    37 #endif
       
    38 
       
    39 #if (__GNUC__ < 3)
       
    40 #  define _STLP_NO_VENDOR_STDLIB_L
       
    41 #endif
       
    42 
       
    43 #if defined (__SYMBIAN32__) && !defined (_STLP_NO_VENDOR_STDLIB_L)
       
    44 //The following macro is defined so that the vendor's APIs dont get picked. Rather the ones from PIPS are used.
       
    45 #  define _STLP_NO_VENDOR_STDLIB_L
       
    46 #endif // (__SYMBIAN32__) && !defined (_STLP_NO_VENDOR_STDLIB_L)
       
    47 
       
    48 /* We guess if we are using the cygwin distrib that has a special include schema.
       
    49  * There is no way to distinguish a cygwin distrib used in no-cygwin mode from a
       
    50  * mingw install. We are forced to use a configuration option
       
    51  */
       
    52 #if !defined (_STLP_NATIVE_INCLUDE_PATH) && \
       
    53     (defined (__CYGWIN__) || defined (__MINGW32__) && defined (_STLP_NO_CYGWIN))
       
    54 #  if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3))
       
    55 #    define _STLP_NATIVE_INCLUDE_PATH ../../../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/include/c++
       
    56 #  elif defined (_STLP_NO_CYGWIN)
       
    57 #    define _STLP_NATIVE_INCLUDE_PATH ../mingw
       
    58 /*#  else
       
    59  * Before version gcc 3.4, the cygwin package include path was conform to the
       
    60  * GNU convention which is set later in this file.
       
    61  */
       
    62 #  endif
       
    63 #endif
       
    64 
       
    65 #if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
       
    66 /* define for gcc versions before 3.4.0. */
       
    67 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
       
    68 #endif
       
    69 
       
    70 /* azov: gcc on lynx have a bug that causes internal
       
    71  * compiler errors when compiling STLport with namespaces turned on.
       
    72  * When the compiler gets better - comment out _STLP_HAS_NO_NAMESPACES
       
    73  */
       
    74 #if defined (__Lynx__) && (__GNUC__ < 3)
       
    75 #  define _STLP_HAS_NO_NAMESPACES 1
       
    76 #  define _STLP_NO_STATIC_TEMPLATE_DATA 1
       
    77 /* turn off useless warning about including system headers */
       
    78 #  define __NO_INCLUDE_WARN__ 1
       
    79 #endif
       
    80 
       
    81 /* Tru64 Unix, AIX, HP : gcc there by default uses native ld and hence cannot auto-instantiate
       
    82    static template data. If you are using GNU ld, please say so in user_config.h header */
       
    83 #if (__GNUC__ < 3) && !defined(_STLP_GCC_USES_GNU_LD) && \
       
    84    ((defined (__osf__) && defined (__alpha__)) || defined (_AIX) || defined (__hpux) || defined(__amigaos__) )
       
    85 #  define _STLP_NO_STATIC_TEMPLATE_DATA
       
    86 #endif
       
    87 
       
    88 #if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
       
    89                              (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
       
    90                              (defined (__MINGW32__) && defined (_MT)))
       
    91 #  define _REENTRANT
       
    92 #endif
       
    93 
       
    94 #if defined (__DJGPP)
       
    95 #  define _STLP_RAND48    1
       
    96 #  define _NOTHREADS    1
       
    97 #  undef  _PTHREADS
       
    98 #  define _STLP_LITTLE_ENDIAN
       
    99 #endif
       
   100 
       
   101 #ifdef __SYMBIAN32__
       
   102 #  if !defined(_STLP_LITTLE_ENDIAN)
       
   103 #    define _STLP_LITTLE_ENDIAN
       
   104 #  endif
       
   105 #endif
       
   106 #if defined (__MINGW32__) && !defined (__SYMBIAN32__)
       
   107 /* Mingw32, egcs compiler using the Microsoft C runtime */
       
   108 #  define _STLP_VENDOR_GLOBAL_CSTD
       
   109 #  undef  _STLP_NO_DRAND48
       
   110 #  define _STLP_NO_DRAND48
       
   111 #  define _STLP_CALL
       
   112 
       
   113 #  if defined (_STLP_NEW_PLATFORM_SDK)
       
   114 /* For the moment the Windows SDK coming with Mingw still mimik the old platform SDK. */
       
   115 #    undef _STLP_NEW_PLATFORM_SDK
       
   116 #  endif
       
   117 #endif /* __MINGW32__ */
       
   118 
       
   119 #if defined (__CYGWIN__) || defined (__MINGW32__) && !defined(__SYMBIAN32__)
       
   120 #  if !defined (_STLP_USE_STATIC_LIB)
       
   121 #    define _STLP_USE_DECLSPEC 1
       
   122 #    if !defined (_STLP_USE_DYNAMIC_LIB)
       
   123 #      define _STLP_USE_DYNAMIC_LIB
       
   124 #    endif
       
   125 #    define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
       
   126 #    define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
       
   127 #    define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
       
   128 #  endif
       
   129 /* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
       
   130  * used to import symbols from PSDK under MinGW
       
   131  */
       
   132 #  define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
       
   133 #endif
       
   134 
       
   135 #if !defined (__SYMBIAN32__) && (defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__)))
       
   136 #  if !defined (__MINGW32__) && !defined (__CYGWIN__)
       
   137 #    define _STLP_NO_NATIVE_MBSTATE_T    1
       
   138 #  endif
       
   139 #  if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
       
   140 #    define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
       
   141 #  endif
       
   142 #  define _STLP_NO_NATIVE_WIDE_STREAMS   1
       
   143 #endif
       
   144 
       
   145 #define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
       
   146 
       
   147 /* Mac OS X is a little different with namespaces and cannot instantiate
       
   148  * static data members in template classes */
       
   149 #if defined (__APPLE__)
       
   150 #  if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
       
   151 /* Mac OS X is missing a required typedef and standard macro */
       
   152 typedef unsigned int wint_t;
       
   153 #  endif
       
   154 
       
   155 #  define __unix
       
   156 
       
   157 #  if (__GNUC__ < 3)
       
   158 
       
   159  /* Mac OS X needs one and only one source file to initialize all static data
       
   160   * members in template classes. Only one source file in an executable or
       
   161   * library can declare instances for such data members, otherwise duplicate
       
   162   * symbols will be generated. */
       
   163 
       
   164 #    define _STLP_NO_STATIC_TEMPLATE_DATA
       
   165 #    define _STLP_STATIC_CONST_INIT_BUG 1
       
   166 #    define _STLP_STATIC_TEMPLATE_DATA 0
       
   167 #    define _STLP_WEAK_ATTRIBUTE 1
       
   168  /* Workaround for the broken Mac OS X C++ preprocessor which cannot handle
       
   169   * parameterized macros in #include statements */
       
   170 #    define _STLP_NATIVE_HEADER(header) <../g++/##header##>
       
   171 #    define _STLP_NATIVE_C_HEADER(header) <../include/##header##>
       
   172 #    define _STLP_NATIVE_CPP_C_HEADER(header) <../g++/##header##>
       
   173 #    define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../g++/##header##>
       
   174 #    define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../g++/##header##>
       
   175 #  endif /* __GNUC__ < 3 */
       
   176 
       
   177 #  define _STLP_NO_LONG_DOUBLE
       
   178 
       
   179 /* Mac OS X needs all "::" scope references to be "std::" */
       
   180 #  define _STLP_USE_NEW_C_HEADERS
       
   181 
       
   182 #  define _STLP_NO_VENDOR_STDLIB_L
       
   183 
       
   184 #endif /* __APPLE__ */
       
   185 
       
   186 
       
   187 #if defined(__BEOS__) && defined(__INTEL__)
       
   188 #  define _STLP_NATIVE_HEADER(header) <../stlport/beos/##header##>
       
   189 #  define _STLP_NATIVE_C_HEADER(header) <../stlport/beos/##header##>
       
   190 #  define _STLP_NATIVE_CPP_C_HEADER(header) <../stlport/beos/##header##>
       
   191 #  define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../stlport/beos/##header##>
       
   192 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../stlport/beos/##header##>
       
   193 #  define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
       
   194 #  define _STLP_NO_NATIVE_WIDE_STREAMS   1
       
   195 /*
       
   196 #  define _NOTHREADS 1
       
   197 */
       
   198 #  ifdef _PTHREADS
       
   199 #    undef  _PTHREADS
       
   200 #  endif
       
   201 #  ifdef _STLP_PTHREADS
       
   202 #    undef _STLP_PTHREADS
       
   203 #  endif
       
   204 #  define _STLP_USE_STDIO_IO 1
       
   205 #  define _STLP_USE_GLIBC 1
       
   206 #endif
       
   207 
       
   208 /* g++ 2.7.x and above */
       
   209 #define _STLP_LONG_LONG long long
       
   210 
       
   211 #ifdef _STLP_USE_UCLIBC
       
   212 /*
       
   213 #  ifndef __DO_C99_MATH__
       
   214 */
       
   215   /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
       
   216 #  define _STLP_NO_VENDOR_MATH_F
       
   217   /* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
       
   218 #  define _STLP_NO_VENDOR_MATH_L
       
   219 #  define _STLP_NO_LONG_DOUBLE
       
   220 /*
       
   221 #  endif
       
   222 */
       
   223 #endif
       
   224 
       
   225 #if defined (__OpenBSD__) || defined (__FreeBSD__)
       
   226 #  define _STLP_NO_VENDOR_MATH_L
       
   227 #  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
       
   228 #  ifndef __unix
       
   229 #    define __unix
       
   230 #  endif
       
   231 #endif
       
   232 
       
   233 #if defined (__alpha__)
       
   234 #  define _STLP_NO_VENDOR_MATH_L
       
   235 #  define _STLP_NO_IEC559_SUPPORT
       
   236 #endif
       
   237 
       
   238 #if defined (__hpux)
       
   239 #  define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
       
   240   /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
       
   241 #  define _STLP_NO_VENDOR_MATH_F
       
   242 #endif
       
   243 
       
   244 #if (__GNUC__ >= 3)
       
   245 #  ifndef _STLP_HAS_NO_NEW_C_HEADERS
       
   246 /*
       
   247 #    ifndef _STLP_USE_UCLIBC
       
   248 */
       
   249 #    define _STLP_HAS_NATIVE_FLOAT_ABS
       
   250 /*
       
   251 #    endif
       
   252 */
       
   253 #  else
       
   254 #    ifdef _STLP_USE_GLIBC
       
   255 #      define _STLP_VENDOR_LONG_DOUBLE_MATH  1
       
   256 #    endif
       
   257 #  endif
       
   258 #endif
       
   259 
       
   260 #if (__GNUC__ < 3)
       
   261 #  define _STLP_HAS_NO_NEW_C_HEADERS     1
       
   262 #  if !defined(_STLP_VENDOR_GLOBAL_CSTD)
       
   263 #    define _STLP_VENDOR_GLOBAL_CSTD       1
       
   264 #  endif
       
   265 #  define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
       
   266 #  ifndef __HONOR_STD
       
   267 #    define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
       
   268 #  endif
       
   269 /* egcs fails to initialize builtin types in expr. like this : new(p) char();  */
       
   270 #  define _STLP_DEF_CONST_PLCT_NEW_BUG 1
       
   271 #endif
       
   272 
       
   273 /*
       
   274 #define _STLP_VENDOR_GLOBAL_CSTD 1
       
   275 */
       
   276 
       
   277 #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
       
   278 #  define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
       
   279 #  define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
       
   280 #  define _STLP_DEF_CONST_DEF_PARAM_BUG 1
       
   281 #else
       
   282 #  undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
       
   283 #  undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
       
   284 #endif
       
   285 
       
   286 #if (__GNUC_MINOR__ < 9)  && (__GNUC__ < 3) && !(defined (__SYMBIAN32__) && defined (__GCCXML__))/* gcc 2.8 */
       
   287 #  define _STLP_NO_TEMPLATE_CONVERSIONS
       
   288 #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
       
   289 #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
       
   290 #  define _STLP_NO_FRIEND_TEMPLATES 1
       
   291 #  define _STLP_HAS_NO_NAMESPACES 1
       
   292 #  define _STLP_NO_METHOD_SPECIALIZATION 1
       
   293 #  define _STLP_NO_MEMBER_TEMPLATES 1
       
   294 #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
       
   295 #  define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
       
   296 /*  DJGPP doesn't seem to implement it in 2.8.x */
       
   297 #  ifdef DJGPP
       
   298 #    define  _STLP_NO_STATIC_TEMPLATE_DATA 1
       
   299 #  endif
       
   300 #endif
       
   301 
       
   302 #if __GNUC__ <= 2 && __GNUC_MINOR__ <= 7 && !defined (__CYGWIN32__) && !(defined (__SYMBIAN32__) && defined (__GCCXML__))
       
   303 /* Will it work with 2.6 ? I doubt it. */
       
   304 #  if ( __GNUC_MINOR__ < 6 )
       
   305 __GIVE_UP_WITH_STL(GCC_272);
       
   306 #  endif
       
   307 
       
   308 #  define  _STLP_NO_RELOPS_NAMESPACE
       
   309 #  define  _STLP_NON_TYPE_TMPL_PARAM_BUG
       
   310 #  define  _STLP_LIMITED_DEFAULT_TEMPLATES 1
       
   311 #  define  _STLP_DEFAULT_TYPE_PARAM 1
       
   312 #  define  _STLP_NO_BAD_ALLOC
       
   313 #  define  _STLP_NO_ARROW_OPERATOR 1
       
   314 #  ifndef _STLP_NO_STATIC_TEMPLATE_DATA
       
   315 #    define  _STLP_NO_STATIC_TEMPLATE_DATA
       
   316 #  endif
       
   317 #  define  _STLP_STATIC_CONST_INIT_BUG 1
       
   318 #  define  _STLP_NO_METHOD_SPECIALIZATION 1
       
   319 
       
   320 #  if !defined (__CYGWIN32__)
       
   321 #    define _STLP_NESTED_TYPE_PARAM_BUG   1
       
   322 #    define _STLP_BASE_MATCH_BUG       1
       
   323 /*  unused operators are required (forward) */
       
   324 #    define  _STLP_CONST_CONSTRUCTOR_BUG
       
   325 #    define _STLP_NO_DEFAULT_NON_TYPE_PARAM
       
   326 #  endif
       
   327 #  define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
       
   328 #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
       
   329 #  if !(defined (__SYMBIAN32__) && defined (__GCCXML__))
       
   330 #    define _STLP_NO_EXCEPTION_HEADER 1
       
   331 #  endif
       
   332 #else /* ! <= 2.7.* */
       
   333 #endif /* ! <= 2.7.* */
       
   334 
       
   335 /* static template data members workaround strategy for gcc tries
       
   336  * to use weak symbols.
       
   337  * if you don't want to use that, #define _STLP_WEAK_ATTRIBUTE=0 ( you'll
       
   338  * have to put "#define __PUT_STATIC_DATA_MEMBERS_HERE" line in one of your
       
   339  * compilation unit ( or CFLAGS for it ) _before_ including any STL header ).
       
   340  */
       
   341 #if defined (_STLP_NO_STATIC_TEMPLATE_DATA) && ! defined (_STLP_WEAK_ATTRIBUTE )
       
   342 /* systems using GNU ld or format that supports weak symbols
       
   343    may use "weak" attribute
       
   344    Linux & Solaris ( x86 & SPARC ) are being auto-recognized here */
       
   345 #  if defined(_STLP_GNU_LD) || defined(__ELF__) || defined (__CYGWIN__) || \
       
   346      (( defined (__SVR4) || defined ( __svr4__ )) && \
       
   347       ( defined (sun) || defined ( __sun__ )))
       
   348 #    define _STLP_WEAK_ATTRIBUTE 1
       
   349 #  endif
       
   350 #endif /* _STLP_WEAK_ATTRIBUTE */
       
   351 
       
   352 
       
   353 /* strict ANSI prohibits "long long" ( gcc) */
       
   354 #if defined ( __STRICT_ANSI__ )
       
   355 #  undef _STLP_LONG_LONG
       
   356 /*
       
   357 #    define _STLP_STRICT_ANSI 1
       
   358 */
       
   359 #endif
       
   360 
       
   361 /*
       
   362 #if !defined (__STRICT_ANSI__) || defined (__BUILDING_STLPORT)
       
   363 #  define _STLP_USE_TEMPLATE_EXPORT
       
   364 #  define _STLP_EXPORT_TEMPLATE_KEYWORD extern
       
   365 #  define _STLP_IMPORT_TEMPLATE_KEYWORD extern
       
   366 #endif
       
   367 */
       
   368 
       
   369 #ifndef __EXCEPTIONS
       
   370 #  undef  _STLP_DONT_USE_EXCEPTIONS
       
   371 #  define _STLP_DONT_USE_EXCEPTIONS 1
       
   372 #endif
       
   373 
       
   374 #if (__GNUC__ >= 3)
       
   375 
       
   376 #  if !defined (_STLP_NATIVE_INCLUDE_PATH)
       
   377 #    if ( (__GNUC__ == 3 ) && ((__GNUC_MINOR__ == 0) || ((__GNUC_MINOR__ < 3) && defined(__APPLE_CC__))))
       
   378 #      define _STLP_NATIVE_INCLUDE_PATH ../g++-v3
       
   379 #    else
       
   380 #      if ( ((__GNUC__ == 4 ) || (__GNUC_MINOR__ >= 3)) && defined(__APPLE_CC__))
       
   381 #        define _STLP_NATIVE_INCLUDE_PATH ../c++
       
   382 /*
       
   383 * Before version 3.4.0 the 0 patch level was not part of the include path:
       
   384 */
       
   385 #      elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \
       
   386                                               (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
       
   387                                               (__GNUC__ > 3))
       
   388 #        define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
       
   389 #      else
       
   390 #        define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__
       
   391 #      endif
       
   392 #    endif
       
   393 #  endif
       
   394 
       
   395 /* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
       
   396    instantiation within library: nothing except increased library size. - ptr
       
   397  */
       
   398 #  define _STLP_NO_FORCE_INSTANTIATE
       
   399 
       
   400 #elif (__GNUC_MINOR__ < 8)
       
   401 
       
   402 #  if !defined (_STLP_NATIVE_INCLUDE_PATH)
       
   403 #    if !defined (__SYMBIAN32__)
       
   404 #      define _STLP_NATIVE_INCLUDE_PATH ../g++-include
       
   405 #    endif
       
   406 #  endif
       
   407 
       
   408 /* tuning of static template data members workaround */
       
   409 #  if ( _STLP_STATIC_TEMPLATE_DATA < 1 )
       
   410 #    if ( _STLP_WEAK_ATTRIBUTE > 0 )
       
   411 #      define _STLP_WEAK __attribute__ (( weak ))
       
   412 #    else
       
   413 #      define _STLP_WEAK
       
   414 #    endif /* _STLP_WEAK_ATTRIBUTE */
       
   415 
       
   416 #    ifdef __PUT_STATIC_DATA_MEMBERS_HERE
       
   417 #      define __DECLARE_INSTANCE(type,item,init) type item _STLP_WEAK init
       
   418 #    else
       
   419 #      define __DECLARE_INSTANCE(type,item,init)
       
   420 #    endif /* __PUT_STATIC_DATA_MEMBERS_HERE */
       
   421 #  endif /* _STLP_STATIC_TEMPLATE_DATA */
       
   422 
       
   423 #else
       
   424 
       
   425 /* gcc-2.95.0 used to use "g++-3" directory which has been changed to "g++" in
       
   426  * system-dependent "include" for 2.95.2 except for Cygwin and Mingw packages.
       
   427  * I expect "g++-3" not being used in later releases.
       
   428  * If your installation use "g++-3" include directory for any reason (pre-2.95.2 or Win binary kit),
       
   429  * please change the macro below to point to your directory.
       
   430  */
       
   431 
       
   432 #  if !defined (_STLP_NATIVE_INCLUDE_PATH)
       
   433 #    if defined(__DJGPP)
       
   434 #      define _STLP_NATIVE_INCLUDE_PATH ../lang/cxx
       
   435 #    elif (__GNUC__ >= 3) || (__GNUC_MINOR__ >= 97)
       
   436 #      define _STLP_NATIVE_INCLUDE_PATH ../include/g++-v3
       
   437 #    elif ((__GNUC_MINOR__ >= 95 && __GNUC_MINOR__ < 97) && \
       
   438           !( defined (__FreeBSD__) || defined (__NetBSD__) || defined(__sgi) || defined (__OS2__) ) )
       
   439 #      define _STLP_NATIVE_INCLUDE_PATH ../g++-3
       
   440 #    elif (__GNUC_MINOR__ > 8) && (__GNUC_MINOR__ < 95) && (__GNUC__ < 3) && !defined( __Lynx__ )
       
   441 /* this really sucks, as GNUpro does not really identifies itself, so we have to guess
       
   442  * depending on a platform
       
   443  */
       
   444 #      ifdef __hpux
       
   445 #        define _STLP_NATIVE_INCLUDE_PATH ../g++-3
       
   446 #      else
       
   447 #        define _STLP_NATIVE_INCLUDE_PATH ../g++-2
       
   448 #      endif
       
   449 #    else
       
   450 #      define _STLP_NATIVE_INCLUDE_PATH g++
       
   451 #    endif
       
   452 #  endif
       
   453 
       
   454 /* <exception> et al */
       
   455 #  ifdef __FreeBSD__
       
   456 #    if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 95)
       
   457 #      define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
       
   458 #    endif
       
   459 #  else
       
   460 /* azov */
       
   461 #    ifndef __Lynx__
       
   462 #      if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)
       
   463 /*
       
   464 #     define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../g++-v3
       
   465 */
       
   466 #      else
       
   467 #        define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
       
   468 #      endif
       
   469 #    endif
       
   470 #  endif
       
   471 
       
   472 #endif /* GNUC_MINOR < 8 */
       
   473 
       
   474 #if !defined (_STLP_NATIVE_C_INCLUDE_PATH)
       
   475 #  define _STLP_NATIVE_C_INCLUDE_PATH ../include
       
   476 #endif
       
   477 
       
   478 /* Tune settings for the case where static template data members are not
       
   479  * instaniated by default
       
   480  */
       
   481 #if defined ( _STLP_NO_STATIC_TEMPLATE_DATA )
       
   482 #  define _STLP_STATIC_TEMPLATE_DATA 0
       
   483 #  if !defined ( _STLP_WEAK_ATTRIBUTE )
       
   484 #    define _STLP_WEAK_ATTRIBUTE 0
       
   485 #  endif
       
   486 #  ifdef __PUT_STATIC_DATA_MEMBERS_HERE
       
   487 #    define __DECLARE_INSTANCE(type,item,init) type item init
       
   488 #  else
       
   489 #    define __DECLARE_INSTANCE(type,item,init)
       
   490 #  endif
       
   491 #else
       
   492 #  define _STLP_STATIC_TEMPLATE_DATA 1
       
   493 #endif
       
   494 
       
   495