Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r49098 - in branches/bcbboost/boost: config/abi proto xpressive/proto
From: nicola.musatti_at_[hidden]
Date: 2008-10-01 18:30:39


Author: nmusatti
Date: 2008-10-01 18:30:39 EDT (Wed, 01 Oct 2008)
New Revision: 49098
URL: http://svn.boost.org/trac/boost/changeset/49098

Log:
Merge from trunk
Text files modified:
   branches/bcbboost/boost/config/abi/msvc_prefix.hpp | 16 +++++++++++++++-
   branches/bcbboost/boost/proto/expr.hpp | 6 +++++-
   branches/bcbboost/boost/xpressive/proto/expr.hpp | 6 +++++-
   3 files changed, 25 insertions(+), 3 deletions(-)

Modified: branches/bcbboost/boost/config/abi/msvc_prefix.hpp
==============================================================================
--- branches/bcbboost/boost/config/abi/msvc_prefix.hpp (original)
+++ branches/bcbboost/boost/config/abi/msvc_prefix.hpp 2008-10-01 18:30:39 EDT (Wed, 01 Oct 2008)
@@ -3,6 +3,20 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#pragma pack(push,8)
+//
+// Boost binaries are built with the compiler's default ABI settings,
+// if the user changes their default alignment in the VS IDE then their
+// code will no longer be binary compatible with the bjam built binaries
+// unless this header is included to force Boost code into a consistent ABI.
+//
+// Note that inclusion of this header is only necessary for libraries with
+// separate source, header only libraries DO NOT need this as long as all
+// translation units are built with the same options.
+//
+#if defined(_M_X64)
+# pragma pack(push,16)
+#else
+# pragma pack(push,8)
+#endif
 
 

Modified: branches/bcbboost/boost/proto/expr.hpp
==============================================================================
--- branches/bcbboost/boost/proto/expr.hpp (original)
+++ branches/bcbboost/boost/proto/expr.hpp 2008-10-01 18:30:39 EDT (Wed, 01 Oct 2008)
@@ -146,7 +146,10 @@
 
     #endif // BOOST_PROTO_EXPR_HPP_EAN_04_01_2005
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
     #define ARG_COUNT BOOST_PP_MAX(1, BOOST_PP_ITERATION())
     #define IS_TERMINAL 0 == BOOST_PP_ITERATION()
@@ -477,4 +480,5 @@
 
     #undef N
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif

Modified: branches/bcbboost/boost/xpressive/proto/expr.hpp
==============================================================================
--- branches/bcbboost/boost/xpressive/proto/expr.hpp (original)
+++ branches/bcbboost/boost/xpressive/proto/expr.hpp 2008-10-01 18:30:39 EDT (Wed, 01 Oct 2008)
@@ -134,7 +134,10 @@
 
     #endif // BOOST_PROTO_EXPR_HPP_EAN_04_01_2005
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
     #define ARG_COUNT BOOST_PP_MAX(1, BOOST_PP_ITERATION())
     #define IS_TERMINAL 0 == BOOST_PP_ITERATION()
@@ -404,4 +407,5 @@
 
     #undef N
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk