$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: AlisdairM (alisdair.meredith_at_[hidden])
Date: 2006-02-25 08:53:56
This is the second half of my proposed config update for the Borland
2006 compiler. Main changes are:
i/ pragma to warn users that old compiler support is deprecated in
Boost 1.34.
ii/ Unknown compiler test moved from end of file to start, where it
keeps company with the unsupported compiler tests.
iii/ Library detection macros should simplify workaround detection.
With 3 different vendors to support across different versions, and
library selection further controlled by _USE_OLD_RW_STL macro, we need
something simpler like this for library maintainers to test.
I will be posting further patches using these library macros once this
patch is accepted, and I see a test cycle from metacomm showing no
unexpected problems.
--
AlisdairM
cvs diff -u -wb -- boost\config\compiler\borland.hpp (in directory
E:\sourceforge\devel\boost\)
Index: boost/config/compiler/borland.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/config/compiler/borland.hpp,v
retrieving revision 1.37
diff -u -w -b -r1.37 borland.hpp
--- boost/config/compiler/borland.hpp 12 Feb 2006 10:42:10 -0000 1.37
+++ boost/config/compiler/borland.hpp 25 Feb 2006 13:24:48 -0000
@@ -14,8 +14,31 @@
// we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure"
+#elif __BORLANDC__ < 0x581
+# pragma message( "Support for Borland compilers older than BCB2006
is deprecated in Boost 1.34" )
#endif
+// last known and checked version is 0x600 (Builder X preview)
+// Or 0x581 (Borland C++ Builder 2006 Update 1):
+#if (__BORLANDC__ > 0x581) && (__BORLANDC__ != 0x600)
+# 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
+
+//
+// Support macros to help with standard library detection
+#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
+# define BOOST_BCB_WITH_ROGUE_WAVE
+#elif __BORLANDC__ < 0x570
+# define BOOST_BCB_WITH_STLPORT
+#else
+# define BOOST_BCB_WITH_DINKUMWARE
+#endif
+
+
//
// Version 5.0 and below:
# if __BORLANDC__ <= 0x0550
@@ -74,7 +97,7 @@
//
// new bug in 5.61:
-#if (__BORLANDC__ >= 0x561) //&& (__BORLANDC__ <= 0x570)
+#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
// this seems to be needed by the command line compiler, but not
the IDE:
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif
@@ -105,7 +128,7 @@
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL
is
// defined, then we have 0x560 or greater with the Rogue Wave
implementation
// which presumably has the std::DBL_MAX bug.
-#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) ||
defined(_USE_OLD_RW_STL)
+#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
// <climits> is partly broken, some macros define symbols that are
really in
// namespace std, so you end up having to use illegal constructs like
// std::DBL_MAX, as a fix we'll just include float.h and have done
with:
@@ -165,21 +188,3 @@
#define BOOST_COMPILER "Borland C++ version "
BOOST_STRINGIZE(__BORLANDC__)
-// last known and checked version is 1536 (Builder X preview)
-// Or 0x581 (Borland C++ Builder 2006 Update 1):
-#if (__BORLANDC__ > 0x581) && (__BORLANDC__ != 0x600)
-# 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
-
-
-
-
-
-
-
-
-