From 9ccef5d06074e2bc279f514968ec1450985c3d8a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Include a bugfix for GCC 4.4 --- boost/mingw32-boost.spec | 9 +- boost/svn-r48960.diff | 304 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 311 insertions(+), 2 deletions(-) create mode 100644 boost/svn-r48960.diff diff --git a/boost/mingw32-boost.spec b/boost/mingw32-boost.spec index c565bae..ebf4f4e 100644 --- a/boost/mingw32-boost.spec +++ b/boost/mingw32-boost.spec @@ -6,7 +6,7 @@ Name: mingw32-boost Version: 1.34.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: MinGW Windows port of Boost C++ Libraries License: Boost @@ -22,6 +22,9 @@ Patch3: boost-run-tests.patch Patch4: boost-regex.patch Patch5: boost-gcc43.patch +# For GCC 4.4, https://svn.boost.org/trac/boost/ticket/2069 +Patch1000: svn-r48960.diff + BuildArch: noarch BuildRequires: mingw32-filesystem >= 30 @@ -55,6 +58,8 @@ Standards Committee's upcoming C++ Standard Library Technical Report.) %patch4 -p0 %patch5 -p1 +%patch1000 -p2 + %build BOOST_ROOT=`pwd` @@ -186,7 +191,7 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Fri Feb 20 2009 Richard W.M. Jones - 1.34.1-5 +* Sat Feb 21 2009 Richard W.M. Jones - 1.34.1-6 - Rebuild for mingw32-gcc 4.4 * Fri Jan 23 2009 Richard W.M. Jones - 1.34.1-4 diff --git a/boost/svn-r48960.diff b/boost/svn-r48960.diff new file mode 100644 index 0000000..cb34430 --- /dev/null +++ b/boost/svn-r48960.diff @@ -0,0 +1,304 @@ +Index: /trunk/boost/python/call.hpp +=================================================================== +--- /trunk/boost/python/call.hpp (revision 24055) ++++ /trunk/boost/python/call.hpp (revision 48960) +@@ -39,5 +39,8 @@ + # endif // CALL_DWA2002411_HPP + +-#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 + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -77,3 +80,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/object/value_holder.hpp +=================================================================== +--- /trunk/boost/python/object/value_holder.hpp (revision 32284) ++++ /trunk/boost/python/object/value_holder.hpp (revision 48960) +@@ -118,5 +118,8 @@ + // --------------- value_holder --------------- + +-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 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 && BOOST_PP_ITERATION_FLAGS() == 1 + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -164,3 +167,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/object/make_holder.hpp +=================================================================== +--- /trunk/boost/python/object/make_holder.hpp (revision 39191) ++++ /trunk/boost/python/object/make_holder.hpp (revision 48960) +@@ -48,5 +48,8 @@ + # endif // MAKE_HOLDER_DWA20011215_HPP + +-#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 + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -103,3 +106,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/object/pointer_holder.hpp +=================================================================== +--- /trunk/boost/python/object/pointer_holder.hpp (revision 41521) ++++ /trunk/boost/python/object/pointer_holder.hpp (revision 48960) +@@ -171,5 +171,8 @@ + + /* --------------- pointer_holder --------------- */ +-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 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 && BOOST_PP_ITERATION_FLAGS() == 1 + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -213,3 +216,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/call_method.hpp +=================================================================== +--- /trunk/boost/python/call_method.hpp (revision 24614) ++++ /trunk/boost/python/call_method.hpp (revision 48960) +@@ -38,5 +38,8 @@ + # endif // CALL_METHOD_DWA2002411_HPP + +-#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 + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -77,3 +80,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/python/detail/target.hpp +=================================================================== +--- /trunk/boost/python/detail/target.hpp (revision 24614) ++++ /trunk/boost/python/detail/target.hpp (revision 48960) +@@ -38,5 +38,8 @@ + + /* --------------- function pointers --------------- */ +-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER ++// 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 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -80,3 +83,4 @@ + # undef Q + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/detail/result.hpp +=================================================================== +--- /trunk/boost/python/detail/result.hpp (revision 43799) ++++ /trunk/boost/python/detail/result.hpp (revision 48960) +@@ -87,5 +87,8 @@ + + /* --------------- function pointers --------------- */ +-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER ++// 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 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER + # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ + && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) +@@ -129,3 +132,4 @@ + # undef Q + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif +Index: /trunk/boost/python/signature.hpp +=================================================================== +--- /trunk/boost/python/signature.hpp (revision 24055) ++++ /trunk/boost/python/signature.hpp (revision 48960) +@@ -114,5 +114,8 @@ + # endif // SIGNATURE_JDG20020813_HPP + +-#elif BOOST_PP_ITERATION_DEPTH() == 1 // defined(BOOST_PP_IS_ITERATING) ++// 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 // defined(BOOST_PP_IS_ITERATING) + + # define N BOOST_PP_ITERATION() +@@ -177,3 +180,4 @@ + # undef N + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // !defined(BOOST_PP_IS_ITERATING) +Index: /trunk/boost/mpl/aux_/numeric_op.hpp +=================================================================== +--- /trunk/boost/mpl/aux_/numeric_op.hpp (revision 30670) ++++ /trunk/boost/mpl/aux_/numeric_op.hpp (revision 48960) +@@ -288,5 +288,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) +@@ -309,3 +312,4 @@ + # undef i_ + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/aux_/advance_backward.hpp +=================================================================== +--- /trunk/boost/mpl/aux_/advance_backward.hpp (revision 24874) ++++ /trunk/boost/mpl/aux_/advance_backward.hpp (revision 48960) +@@ -80,5 +80,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) + +@@ -122,3 +125,4 @@ + # undef AUX778076_ITER_0 + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/aux_/full_lambda.hpp +=================================================================== +--- /trunk/boost/mpl/aux_/full_lambda.hpp (revision 24896) ++++ /trunk/boost/mpl/aux_/full_lambda.hpp (revision 48960) +@@ -228,5 +228,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) + +@@ -348,3 +351,4 @@ + + #undef i_ ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/aux_/advance_forward.hpp +=================================================================== +--- /trunk/boost/mpl/aux_/advance_forward.hpp (revision 24874) ++++ /trunk/boost/mpl/aux_/advance_forward.hpp (revision 48960) +@@ -80,5 +80,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) + +@@ -121,3 +124,4 @@ + # undef AUX778076_ITER_0 + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/unpack_args.hpp +=================================================================== +--- /trunk/boost/mpl/unpack_args.hpp (revision 24874) ++++ /trunk/boost/mpl/unpack_args.hpp (revision 48960) +@@ -112,5 +112,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) +@@ -144,3 +147,4 @@ + # undef i_ + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/bind.hpp +=================================================================== +--- /trunk/boost/mpl/bind.hpp (revision 25875) ++++ /trunk/boost/mpl/bind.hpp (revision 48960) +@@ -362,5 +362,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) +@@ -545,3 +548,4 @@ + # undef j_ + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/apply.hpp +=================================================================== +--- /trunk/boost/mpl/apply.hpp (revision 24874) ++++ /trunk/boost/mpl/apply.hpp (revision 48960) +@@ -136,5 +136,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) +@@ -223,3 +226,4 @@ + # undef i_ + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING +Index: /trunk/boost/mpl/apply_wrap.hpp +=================================================================== +--- /trunk/boost/mpl/apply_wrap.hpp (revision 24892) ++++ /trunk/boost/mpl/apply_wrap.hpp (revision 48960) +@@ -79,5 +79,8 @@ + ///// iteration, depth == 1 + +-#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 i_ BOOST_PP_FRAME_ITERATION(1) +@@ -198,3 +201,4 @@ + # undef j_ + ++#endif // BOOST_PP_ITERATION_DEPTH() + #endif // BOOST_PP_IS_ITERATING -- 1.8.3.1