00001
00231 #ifndef TBCI_CONFIG_MANUAL_H
00232 #define TBCI_CONFIG_MANUAL_H
00233
00234 #ifdef __GNUC__
00235 # warning Using config_manual.h is deprecated
00236 #endif
00237
00242 #ifdef CONFIG_MANUAL_NEED_UNDEF
00243
00244 # undef HAVE_PROMOTION_BUG
00245 # undef HAVE_LIBC_GLOBAL_NS_BUG
00246 # undef HAVE_CPP_GLOBAL_NS_BUG
00247 # undef HAVE_CPLX_GLOBAL_NS_BUG
00248 # undef HAVE_FRIEND_GLOBAL_NS_BUG
00249 # undef HAVE_BUGGY_SSTREAM
00250 # undef HAVE_BUGGY_NAMESPACE
00251 # undef HAVE_BUGGY_EXCEPTIONS
00252 # undef HAVE_FOR_SCOPING_BUG
00253 # undef HAVE_NO_NEW_HEADERS_BUG
00254 # undef HAVE_GCC295_FRIEND_BUG
00255 # undef HAVE_GCC295_TMPLFRNDCLS_BUG
00256 # undef HAVE_GCC296_TMPLVARARG_BUG
00257 # undef HAVE_GCC300_CMATH_POWER_BUG
00258 # undef HAVE_GCC320_MISS_CPLXFN_BUG
00259 # undef HAVE_GCC34_LIBSTDCXX_REAL_IMAG_REF
00260 # undef HAVE_MISS_STDCPLX_FANCY_FN_BUG
00261 # undef HAVE_MISS_STDCPLX_LOG10_BUG
00262 # undef HAVE_MISS_STDCPLX_TAN_BUG
00263 # undef HAVE_MISS_CPLX_IO_BUG
00264 # undef HAVE_IGNORE_STD_NS_BUG
00265 # undef HAVE_MISS_CSTD_ABS_BUG
00266 # undef HAVE_BCXX_INHER_BREAKS_FRIEND_BUG
00267 # undef HAVE_BCXX_TEMPL_INLINE_MFUNC_BUG
00268 # undef HAVE_BCXX_TYPENAME_BUG
00269
00270 # undef HAVE_UNISTD_H
00271 # undef HAVE_MEMALIGN
00272 # undef HAVE_MALLINFO
00273 # undef HAVE_FPUCW
00274 # undef HAVE_NEW_FPUCTRL
00275 # undef HAVE_FENV
00276 # undef HAVE_SIGNALS
00277 # undef HAVE_STRSIGNAL
00278 # undef HAVE_ERRNO
00279 # undef HAVE_PTHREADS
00280 # undef HAVE_MINMAX_IN_SYS_PARAM_H
00281 # undef HAVE_SYS_SYSINFO_H
00282 # undef HAVE GET_NPROCS
00283 # undef HAVE GETLOADAVG
00284 # undef HAVE SCHED_GETAFFINITY
00285 # undef HAVE PTHREAD_GETAFFINITY_NP
00286 # undef HAVE PTHREAD_SPINLOCK
00287 # undef HAVE_CLOCK_GETTIME
00288 # undef HAVE_CPU_COUNT
00289
00290 # undef HAVE_LIMITS
00291 # undef HAVE_SSTREAM
00292 # undef HAVE_STD_MINMAX
00293 # undef HAVE_NEED_FOR_GD
00294 # undef HAVE_NEED_FOR_EXPL_TMPLPARM
00295
00296 # undef HAVE_LONG_LONG
00297 # undef HAVE_LONG_DOUBLE
00298 # undef HAVE_NEED_FOR_GD
00299 # undef HAVE_RESTRICT
00300 # undef HAVE___RESTRICT__
00301 # undef HAVE_TWOSTAGE_LOOKUP
00302 # undef HAVE_NEED_FOR_FRIEND_SCOPE
00303
00304 # undef HAVE_SIGNATURE
00305 # undef HAVE_BUILTIN_CPLX
00306 # undef HAVE_ALIGN_ATTR
00307 # undef HAVE_NEW_ALIGN_ATTR
00308 # undef HAVE_TEMPL_ALIGN_ATTR
00309 # undef HAVE_DECLSPEC_ALIGN
00310 # undef HAVE_WEAK_ATTR
00311 # undef HAVE_CONST_ATTR
00312 # undef HAVE_REGPARM_ATTR
00313 # undef HAVE_VISIBILITY_ATTR
00314 # undef HAVE_MALLOC_ATTR
00315 # undef HAVE_UNUSED_ATTR
00316 # undef HAVE_HOT_ATTR
00317 # undef HAVE_GCC_MINMAX
00318 # undef HAVE_NAMED_RETVAL
00319 # undef HAVE_PRAGMA_IFACE_IMPL
00320 # undef HAVE_BUILTIN_EXPECT
00321 # undef HAVE_BUILTIN_PREFETCH
00322 # undef HAVE_PRETTY_FUNCTION
00323 # undef HAVE_FUNC
00324 # undef HAVE_TLS
00325 # undef HAVE_DTLS
00326 #endif
00327
00328
00329 #ifdef __GNUC__
00330 # define HAVE_SIGNATURE 1
00331 # define HAVE___RESTRICT__ 1
00332 # define HAVE_BUILTIN_CPLX 1
00333 # define HAVE_ALIGN_ATTR 1
00334 # define HAVE_WEAK_ATTR 1
00335 # define HAVE_UNUSED_ATTR 1
00336 # define HAVE_CONST_ATTR 1
00337 # define HAVE_REGPARM_ATTR 1
00338 # define HAVE_PRAGMA_IFACE_IMPL 1
00339 # if !defined(__GNUC_PATCHLEVEL__)
00340 # if defined(__GNUC_SUBVER__)
00341 # define __GNUC_PATCHLEVEL__ __GNUC_SUBVER__
00342 # else
00343 # define __GNUC_PATCHLEVEL__ 0
00344 # endif
00345 # endif
00346 # define HAVE_PRETTY_FUNCTION __GNUC__
00347 #endif
00348
00349
00350
00351 #if defined(_MSC_VER)
00352
00353 # define HAVE_PROMOTION_BUG 1
00354 # define HAVE_LIBC_GLOBAL_NS_BUG 1
00355
00356 # if _MSC_VER < 1200
00357 # define HAVE_NO_NEW_HEADERS_BUG 1
00358 # define HAVE_BUGGY_NAMESPACE 1
00359 # endif
00360
00361 # if _MSC_VER < 1400 // Let's assume that "you know who" finally
00362 # define HAVE_FOR_SCOPING_BUG 1 // hires sb. with a minimum of intelligence
00363 # endif // and fix this annoyance in the next version
00364
00365 # define HAVE_MISS_STDCPLX_FANCY_FN_BUG 1
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378 # ifndef HAVE_SSTREAM // might have been defined somewhere else before
00379 # define HAVE_SSTREAM 1
00380 # endif
00381
00382 #endif
00383
00384
00385 #ifdef __INTEL_COMPILER
00386 # define HAVE_SSTREAM 1
00387
00388
00389
00390 # define HAVE_LIMITS 1
00391 # define HAVE_ALGORITHM 1
00392 # define HAVE_STD_MINMAX 1
00393
00394 # define HAVE_RESTRICT 1
00395 # if __INTEL_COMPILER < 600
00396 # define HAVE_MISS_CSTD_ABS_BUG 1
00397 # else
00398 # define HAVE_LONG_LONG 1
00399 # endif
00400 # define HAVE_DECLSPEC_ALIGN 1
00401
00402
00403
00404 # undef HAVE_ALIGN_ATTR
00405 # define HAVE_WEAK_ATTR 1
00406 # define HAVE_CONST_ATTR 1
00407 # define HAVE_REGPARM_ATTR 1
00408 # define HAVE_UNUSED_ATTR 1
00409 # define HAVE_MISS_STDCPLX_FANCY_FN_BUG 1
00410
00411 # define HAVE_NEED_FOR_GD 1
00412 # define HAVE_NEED_FOR_EXPL_TMPLPARM 1
00413 # define HAVE_NEED_FOR_FRIEND_SCOPE 1
00414 # define HAVE_IGNORE_STD_NS_BUG 1
00415 # ifndef HAVE_PRETTY_FUNCTION
00416 # define HAVE_PRETTY_FUNCTION 3
00417 # endif
00418 # ifdef __linux__
00419 # define HAVE_TLS 1
00420 # else
00421 # define HAVE_DTLS 1
00422 # endif
00423 #endif
00424
00425
00426
00427 #if defined(__BORLANDC__)
00428
00429
00430 # define HAVE_ALIGN_ATTR 1
00431 # define HAVE_NEW_ALIGN_ATTR 1
00432 # define HAVE_WEAK_ATTR 1
00433 # define HAVE_CONST_ATTR 1
00434 # define HAVE_REGPARM_ATTR 1
00435
00436 # define HAVE_BCXX_INHER_BREAKS_FRIEND_BUG 1
00437 # define HAVE_BCXX_TEMPL_INLINE_MFUNC_BUG 1
00438 # define HAVE_BCXX_TYPENAME_BUG 1
00439
00440 # define HAVE_NEED_FOR_GD 1
00441 # define HAVE_NEED_FOR_EXPL_TMPLPARM 1
00442 # define HAVE_NEED_FOR_FRIEND_SCOPE 1
00443
00444 # define HAVE_IGNORE_STD_NS_BUG 1
00445
00446 # define HAVE_MISS_STDCPLX_FANCY_FN_BUG 1
00447
00448 # define HAVE_LONG_LONG 1
00449 # define HAVE_LONG_DOUBLE 1
00450
00451 # define HAVE_SSTREAM 1
00452 # define HAVE_LIMITS 1
00453 # define HAVE_ALGORITHM 1
00454 # define HAVE_MINMAX_IN_SYS_PARAM_H 1
00455 # define HAVE_TLS 1 // according to http://en.wikipedia.org/wiki/Thread-Specific_Storage
00456
00457 # ifdef __linux__
00458 # define unix
00459 # endif
00460 #endif
00461
00462
00463 #ifdef unix
00464 # define HAVE_UNISTD_H 1
00465 #endif
00466
00467
00468 #ifdef __GNUC__
00469 # if __GNUC__ == 1
00470 # error "Surely you must be joking! Compiling C++ with gcc-1?"
00471 # endif
00472
00473 # ifndef PEDANTIC
00474 # define HAVE_LONG_LONG 1
00475 # define HAVE_LONG_DOUBLE 1
00476 # endif
00477 # define HAVE_NEED_FOR_GD 1
00478 # define HAVE_NEED_FOR_EXPL_TMPLPARM 1
00479 # define HAVE_MALLOC_ATTR 1
00480
00481 # if __GNUC__ == 2
00482 # define HAVE_MISS_STDCPLX_FANCY_FN_BUG 1
00483 # define HAVE_MISS_STDCPLX_LOG10_BUG 1
00484 # define HAVE_MISS_STDCPLX_TAN_BUG 1
00485 # define HAVE_IGNORE_STD_NS_BUG 1
00486 # ifndef PEDANTIC
00487 # define HAVE_GCC_MINMAX 1
00488 # endif
00489 # define HAVE_NAMED_RETVAL 1
00490 # define HAVE_FUNC 2
00491 # define __func__ __FUNCTION__
00492 # if __GNUC_MINOR__ <= 7
00493 # error "gcc-2.7.x or lower will never succeed compiling the TBCI library!"
00494 # elif __GNUC_MINOR__ == 8 || __GNUC_MINOR__ == 90
00495 # warning "egcs-1.0.x or gcc-2.8.x are not recommended for use with TBCI."
00496 # warning "Better use egcs-1.1.x, gcc-2.95.x or newer."
00497 # define HAVE_LIBC_GLOBAL_NS_BUG 1
00498 # define HAVE_NO_NEW_HEADERS_BUG 1
00499 # define HAVE_BUGGY_NAMESPACE 1
00500
00501 # elif __GNUC_MINOR__ == 91
00502
00503 # if defined(__GNUC_PATCHLEVEL__) && __GNUC_PATCHLEVEL__ < 52
00504 # define HAVE_BUGGY_NAMESPACE 1
00505 # endif
00506 # elif __GNUC_MINOR__ == 95
00507 # define HAVE_GCC295_FRIEND_BUG 1
00508 # define HAVE_GCC295_TMPLFRNDCLS_BUG 1
00509 # if defined(__GNUC_PATCHLEVEL__) && __GNUC_PATCHLEVEL__ >= 3
00510 # define HAVE_SSTREAM 1
00511 # endif
00512 # elif __GNUC_MINOR__ > 95
00513 # define HAVE_GCC295_FRIEND_BUG 1
00514 # define HAVE_GCC296_TMPLVARARG_BUG 1
00515 # define HAVE_SSTREAM 1
00516 # if __GNUC_MINOR__ == 96 //&& defined(__alpha__)
00517 # define HAVE_BUGGY_SSTREAM 1
00518 # endif
00519
00520 # else
00521
00522 # warning "Unknown gcc variant!"
00523 # endif
00524 # elif __GNUC__ == 3
00525 # define HAVE_FUNC 3
00526 # define HAVE_SSTREAM 1
00527 # define HAVE_LIMITS 1
00528 # define HAVE_ALGORITHM 1
00529 # define HAVE_STD_MINMAX 1
00530
00531 # define HAVE_BUILTIN_EXPECT 1
00532 # ifndef PEDANTIC
00533 # define HAVE_GCC_MINMAX 1
00534 # endif
00535 # if __GNUC_MINOR__ == 0
00536 # define __func__ __FUNCTION__
00537 # if __GNUC_PATCHLEVEL__ == 0
00538 # define HAVE_GCC300_CMATH_POWER_BUG 1
00539 # endif
00540 # else
00541 # define HAVE_BUILTIN_PREFETCH 1
00542 # endif
00543 # if __GNUC_MINOR__ > 0
00544 # define HAVE_GCC320_MISS_CPLXFN_BUG 1
00545 # define HAVE_GCC300_CMATH_POWER_BUG 1
00546 # endif
00547 # if __GNUC_MINOR__ >= 4
00548 # define HAVE_NEW_ALIGN_ATTR 1
00549 # define HAVE_TWOSTAGE_LOOKUP 1
00550 # define HAVE_NEED_FOR_FRIEND_SCOPE 1
00551 # define HAVE_GCC34_LIBSTDCXX_REAL_IMAG_REF 1
00552 # undef HAVE_SIGNATURE // deprecated
00553 # endif
00554 # if __GNUC_MINOR__ >= 3
00555 # define HAVE_XMMINTRIN_H 1
00556 # define HAVE_EMMINTRIN_H 1
00557 # define HAVE_PMMINTRIN_H 1
00558 # define HAVE_TLS 1
00559 # endif
00560 # elif __GNUC__ == 4
00561 # define HAVE_FUNC 4
00562 # define HAVE_TLS 1
00563 # define HAVE_SSTREAM 1
00564 # define HAVE_LIMITS 1
00565 # define HAVE_ALGORITHM 1
00566 # define HAVE_STD_MINMAX 1
00567
00568 # define HAVE_BUILTIN_EXPECT 1
00569 # define HAVE_BUILTIN_PREFETCH 1
00570 # define HAVE_GCC320_MISS_CPLXFN_BUG 1
00571 # define HAVE_GCC300_CMATH_POWER_BUG 1
00572 # define HAVE_NEW_ALIGN_ATTR 1
00573 # define HAVE_VISIBILITY_ATTR 1
00574 # define HAVE_TWOSTAGE_LOOKUP 1
00575 # define HAVE_NEED_FOR_FRIEND_SCOPE 1
00576 # define HAVE_GCC34_LIBSTDCXX_REAL_IMAG_REF 1
00577 # undef HAVE_GCC_MINMAX // deprecated
00578 # undef HAVE_SIGNATURE // not supported any longer
00579 # define HAVE_XMMINTRIN_H 1
00580 # define HAVE_EMMINTRIN_H 1
00581 # define HAVE_PMMINTRIN_H 1
00582 # if __GNUC_MINOR__ >= 4
00583 # define HAVE_HOT_ATTR 1
00584 # endif
00585 # endif
00586 #endif
00587
00588
00589 #if (defined(_SGI_SOURCE) && defined(_COMPILER_VERSION) && !defined(__GNUC__)) || defined(__DECCXX)
00590 # define HAVE_LONG_LONG 1
00591 # define HAVE_SSTREAM 1
00592 # define HAVE_MISS_STDCPLX_FANCY_FN_BUG 1
00593 # define HAVE_NEED_FOR_GD 1
00594 # define HAVE_NEED_FOR_EXPL_TMPLPARM 1
00595 # define HAVE_NEED_FOR_FRIEND_SCOPE 1
00596 # ifdef __DECCXX
00597 # define HAVE_RESTRICT 1
00598 # define HAVE_IGNORE_STD_NS_BUG 1
00599
00600 # else
00601 # define HAVE_NO_NEW_HEADERS_BUG 1 // Yes, in 2002 this is still possible!
00602
00603
00604 # define HAVE_LIBC_GLOBAL_NS_BUG 1
00605 # define HAVE_FRIEND_GLOBAL_NS_BUG 1
00606
00607
00608
00609
00610 # endif
00611 #endif
00612
00613
00614
00615 #ifdef unix
00616 # define HAVE_ERRNO 1 // ???
00617 # if !defined(_SGI_SOURCE) && !defined(__FreeBSD__)
00618 # include <features.h>
00619 # endif
00620
00621 # ifdef HAVE_UNISTD_H
00622 # include <unistd.h>
00623 # ifdef _POSIX_THREADS
00624 # define HAVE_PTHREADS 1
00625 # endif
00626 # endif
00627 # ifdef __GLIBC__
00628
00629 # define HAVE_MEMALIGN 2
00630 # define HAVE_MALLOC_H 1
00631 # define HAVE_MALLINFO 1
00632 # define HAVE_SIGNALS 1
00633
00634 # define HAVE_ERRNO 1
00635 # if __GLIBC__ == 2
00636 # define HAVE_SYS_SYSINFO_H 1
00637 # define HAVE_GET_NPROCS 1
00638 # define HAVE_GETLOADAVG 1
00639 # define HAVE_STRSIGNAL 1
00640 # if defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ < 1
00641 # ifdef i386
00642 # define HAVE_FPUCW 1
00643 # endif
00644 # endif
00645 # if defined (__GLIBC_MINOR__)
00646 # if __GLIBC_MINOR__ >= 1
00647 # define HAVE_NEW_FPUCTRL 1
00648 # endif
00649 # if __GLIBC_MINOR__ >= 2
00650 # define HAVE_FENV
00651 # endif
00652 # if __GLIBC_MINOR__ >= 3
00653 # define HAVE_SCHED_GETAFFINITY 1
00654 # define HAVE_CLOCK_GETTIME 1 // guessed
00655 # endif
00656 # if __GLIBC_MINOR__ >= 4 && defined(HAVE_PTHREADS)
00657 # define HAVE_PTHREAD_GETAFFINITY_NP 1
00658 # define HAVE PTHREAD_SPINLOCK 1
00659 # endif
00660 # if __GLIBC_MINOR__ >= 8
00661 # define HAVE_CPU_COUNT 1
00662 # endif
00663 # endif
00664 # endif
00665 # endif
00666 # ifdef _SYSTYPE_SVR4
00667 # define HAVE_MINMAX_IN_SYS_PARAM_H 1
00668 # endif
00669 #endif
00670
00671 #endif