$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r48794 - in trunk/boost/config: . compiler
From: john_at_[hidden]
Date: 2008-09-16 07:04:53
Author: johnmaddock
Date: 2008-09-16 07:04:52 EDT (Tue, 16 Sep 2008)
New Revision: 48794
URL: http://svn.boost.org/trac/boost/changeset/48794
Log:
Added patches from issue #2327 but without the new config macros or test changes yet.
Added:
   trunk/boost/config/compiler/codegear.hpp   (contents, props changed)
Text files modified: 
   trunk/boost/config/compiler/borland.hpp       |    54 ++++++++++++++++++++++++++++++++------- 
   trunk/boost/config/select_compiler_config.hpp |     4 ++                                      
   2 files changed, 48 insertions(+), 10 deletions(-)
Modified: trunk/boost/config/compiler/borland.hpp
==============================================================================
--- trunk/boost/config/compiler/borland.hpp	(original)
+++ trunk/boost/config/compiler/borland.hpp	2008-09-16 07:04:52 EDT (Tue, 16 Sep 2008)
@@ -19,11 +19,13 @@
 // last known and checked version is 0x600 (Builder X preview)
 // or 0x593 (CodeGear C++ Builder 2007 December 2007 update):
 #if (__BORLANDC__ > 0x593) && (__BORLANDC__ != 0x600)
-#  if defined(BOOST_ASSERT_CONFIG)
+//#  if defined(BOOST_ASSERT_CONFIG)
 #     error "Unknown compiler version - please run the configure tests and report the results"
-#  else
-#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
-#  endif
+//#  else
+//#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
+//#  endif
+#elif (__BORLANDC__ == 0x600)
+#  error "CBuilderX preview compiler is no longer supported"
 #endif
 
 //
@@ -108,21 +110,52 @@
 
 // Borland C++ Builder 2007 December 2007 Update and below:
 #if (__BORLANDC__ <= 0x593)
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
    // we shouldn't really need this - but too many things choke
    // without it, this needs more investigation:
 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #  define BOOST_NO_IS_ABSTRACT
 #  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 
 // Temporary workaround
 #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif
 
+// Borland C++ Builder 2008 and below:
+#if (__BORLANDC__ <= 0x601)
+#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define BOOST_ILLEGAL_CV_REFERENCES
+#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define BOOST_NO_USING_TEMPLATE
+#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#endif
+
+//
+//  Positive Feature detection
+//
+// Borland C++ Builder 2008 and below:
+#if (__BORLANDC__ >= 0x599)
+#  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
+#endif
+
+#if defined( BOOST_CODEGEAR_0X_SUPPORT )
+#  #if __BORLANDC__ >= 0x610
+#  define BOOST_HAS_ALIGNOF
+#  define BOOST_HAS_CHAR16_T
+#  define BOOST_HAS_CHAR32_T
+#  define BOOST_HAS_DECLTYPE
+//#  define BOOST_HAS_DEFAULTED_FN
+//#  define BOOST_HAS_DELETED_FN
+#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
+//#  define BOOST_HAS_NULLPTR
+//#  define BOOST_HAS_RAW_STRING
+#  define BOOST_HAS_REF_QUALIFIER
+#  define BOOST_HAS_RVALUE_REFS
+//#  define BOOST_HAS_SCOPED_ENUM
+#  define BOOST_HAS_STATIC_ASSERT
+//#  define BOOST_HAS_VARIADIC_TMPL
+#  #endif //__BORLANDC__ >= 0x610
 #endif
 
 #if __BORLANDC__ >= 0x590
@@ -207,3 +240,4 @@
 #define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
 
 
+
Added: trunk/boost/config/compiler/codegear.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/config/compiler/codegear.hpp	2008-09-16 07:04:52 EDT (Tue, 16 Sep 2008)
@@ -0,0 +1,134 @@
+//  (C) Copyright John Maddock 2001 - 2003.
+//  (C) Copyright David Abrahams 2002 - 2003.
+//  (C) Copyright Aleksey Gurtovoy 2002.
+//  Use, modification and distribution are subject to the
+//  Boost Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+//  See http://www.boost.org for most recent version.
+
+//  CodeGear C++ compiler setup:
+
+#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
+// these warnings occur frequently in optimized template code
+# pragma warn -8004 // var assigned value, but never used
+# pragma warn -8008 // condition always true/false
+# pragma warn -8066 // dead code can never execute
+# pragma warn -8104 // static members with ctors not threadsafe
+# pragma warn -8105 // reference member in class without ctors
+#endif
+//
+// versions check:
+// last known and checked version is 0x610
+#if (__CODEGEARC__ > 0x610)
+#  if defined(BOOST_ASSERT_CONFIG)
+#     error "Unknown compiler version - please run the configure tests and report the results"
+#  else
+#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
+#  endif
+#endif
+
+// CodeGear C++ Builder 2009
+#if (__CODEGEARC__ <= 0x610)
+#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#  define BOOST_NO_PRIVATE_IN_AGGREGATE
+#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#  define BOOST_NO_USING_TEMPLATE
+   // we shouldn't really need this - but too many things choke
+   // without it, this needs more investigation:
+#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+
+//  Still need tests writing
+//  #  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
+//  #  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
+
+#  ifdef NDEBUG
+      // fix broken <cstring> so that Boost.test works:
+#     include <cstring>
+#     undef strcmp
+#  endif
+   // fix broken errno declaration:
+#  include <errno.h>
+#  ifndef errno
+#     define errno errno
+#  endif
+
+#endif
+
+
+#  define BOOST_HAS_CHAR16_T
+#  define BOOST_HAS_CHAR32_T
+#  define BOOST_HAS_LONG_LONG
+
+//#  define BOOST_HAS_ALIGNOF
+#  define BOOST_HAS_DECLTYPE
+#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
+//#  define BOOST_HAS_RVALUE_REFS
+#  define BOOST_HAS_SCOPED_ENUM
+//#  define BOOST_HAS_STATIC_ASSERT
+#  define BOOST_HAS_STD_TYPE_TRAITS
+
+#  define BOOST_HAS_TR1_HASH
+#  define BOOST_HAS_TR1_TYPE_TRAITS
+#  define BOOST_HAS_TR1_UNORDERED_MAP
+#  define BOOST_HAS_TR1_UNORDERED_SET
+
+#  define BOOST_HAS_MACRO_USE_FACET
+
+
+   // On non-Win32 platforms let the platform config figure this out:
+# ifdef _WIN32
+#    define BOOST_HAS_STDINT_H
+# endif
+
+//
+// __int64:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_MS_INT64
+#endif
+//
+// check for exception handling support:
+//
+#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
+#  define BOOST_NO_EXCEPTIONS
+#endif
+//
+// all versions have a <dirent.h>:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_DIRENT_H
+#endif
+//
+// all versions support __declspec:
+//
+#if !defined(__STRICT_ANSI__)
+#  define BOOST_HAS_DECLSPEC
+#endif
+//
+// ABI fixing headers:
+//
+#ifndef BOOST_ABI_PREFIX
+#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
+#endif
+#ifndef BOOST_ABI_SUFFIX
+#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
+#endif
+//
+// Disable Win32 support in ANSI mode:
+//
+#  pragma defineonoption BOOST_DISABLE_WIN32 -A
+//
+// MSVC compatibility mode does some nasty things:
+// TODO: look up if this doesn't apply to the whole 12xx range
+//
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#  define BOOST_NO_VOID_RETURNS
+#endif
+
+#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
+
Modified: trunk/boost/config/select_compiler_config.hpp
==============================================================================
--- trunk/boost/config/select_compiler_config.hpp	(original)
+++ trunk/boost/config/select_compiler_config.hpp	2008-09-16 07:04:52 EDT (Tue, 16 Sep 2008)
@@ -72,6 +72,10 @@
 //  Greenhills C++
 #   define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
 
+#elif defined __CODEGEARC__
+//  CodeGear - must be checked for before Borland
+#   define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
+
 #elif defined __BORLANDC__
 //  Borland
 #   define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"