Package: libboost-dev Version: 1.34.1-15ubuntu3 Severity: important Tags: patch
This is very similar to bug 505962 for boost1.36. Some headers installed by boost do not compile with gcc 4.4. The debian packaging includes the patch 0001-boost.mpl-gcc-4.4-fixes.patch to fix the problem, but for the 'boost' source package, the patch is out of date. It uses the initial patch from the upstream bug https://svn.boost.org/trac/boost/ticket/2069 but not the final committed version (https://svn.boost.org/trac/boost/changeset/49257) that includes more patched headers. On top of the missing patched headers (boost/mpl/aux_/advance_forward.hpp, boost/mpl/aux_/advance_backward.hpp, and boost/mpl/unpack_args.hpp), the final patch used doesn't have all the unnecessary whitespace changes and adds nice comments about why the change was made. I'm attaching a drop-in replacement for the current 0001-boost.mpl-gcc-4.4-fixes.patch. This new patch is from https://svn.boost.org/trac/boost/changeset/49257. Strangely, the boost1.35 source package has a version of the patch that does fix the missing headers (though it still has the ugly whitespace changes, etc). So boost1.35 appears safe for the moment. And boost1.37 and up have the fix included in the upstream source. Thus, this is only for the boost (1.34) source package. -- System Information: Debian Release: 5.0 APT prefers karmic-updates APT policy: (500, 'karmic-updates'), (500, 'karmic-security'), (500, 'karmic-backports'), (500, 'karmic') Architecture: i386 (i686) Kernel: Linux 2.6.28-11-generic (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libboost-dev depends on: ii libboost-serialization- 1.34.1-15ubuntu3 serialization library for C++ ii libstdc++6-4.2-dev [lib 4.2.4-5ubuntu1 The GNU Standard C++ Library v3 (d ii libstdc++6-4.3-dev [lib 4.3.3-5ubuntu4 The GNU Standard C++ Library v3 (d Versions of packages libboost-dev recommends: ii libboost-date-time-dev 1.34.1-15ubuntu3 set of date-time libraries based o pn libboost-doc <none> (no description available) ii libboost-filesystem-dev 1.34.1-15ubuntu3 filesystem operations (portable pa pn libboost-graph-dev <none> (no description available) pn libboost-iostreams-dev <none> (no description available) pn libboost-program-option <none> (no description available) ii libboost-python-dev 1.34.1-15ubuntu3 Boost.Python Library development f pn libboost-regex-dev <none> (no description available) pn libboost-signals-dev <none> (no description available) pn libboost-test-dev <none> (no description available) ii libboost-thread-dev 1.34.1-15ubuntu3 portable C++ multi-threading pn libboost-wave-dev <none> (no description available) libboost-dev suggests no packages. -- no debconf information
Fix for #505597 (upstream https://svn.boost.org/trac/boost/ticket/2069) Upstream patch https://svn.boost.org/trac/boost/changeset/49257?format=diff Index: boost-1.34.1-16ubuntu1/boost/mpl/apply.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/apply.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/apply.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -135,7 +135,10 @@ ///// 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) @@ -222,4 +225,5 @@ # undef i_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/apply_wrap.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/apply_wrap.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/apply_wrap.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -78,7 +78,10 @@ ///// 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) @@ -197,4 +200,5 @@ # undef j_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_backward.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/advance_backward.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_backward.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -79,7 +79,10 @@ ///// 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) template<> @@ -121,4 +124,5 @@ # undef AUX778076_ITER_1 # undef AUX778076_ITER_0 +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_forward.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/advance_forward.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_forward.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -79,7 +79,10 @@ ///// 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) template<> @@ -120,4 +123,5 @@ # undef AUX778076_ITER_1 # undef AUX778076_ITER_0 +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/full_lambda.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/full_lambda.hpp 2009-05-11 14:25:22.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/full_lambda.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -227,7 +227,10 @@ ///// 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) #if i_ > 0 @@ -347,4 +350,5 @@ }; #undef i_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/numeric_op.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/numeric_op.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/numeric_op.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -287,7 +287,10 @@ ///// 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) @@ -308,4 +311,5 @@ # undef i_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/bind.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/bind.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/bind.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -361,7 +361,10 @@ ///// 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) @@ -544,4 +547,5 @@ # endif # undef j_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING Index: boost-1.34.1-16ubuntu1/boost/mpl/unpack_args.hpp =================================================================== --- boost-1.34.1-16ubuntu1.orig/boost/mpl/unpack_args.hpp 2009-05-11 14:26:14.000000000 -0400 +++ boost-1.34.1-16ubuntu1/boost/mpl/unpack_args.hpp 2009-05-11 14:26:49.000000000 -0400 @@ -111,7 +111,10 @@ ///// 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) @@ -143,4 +146,5 @@ # undef i_ +#endif // BOOST_PP_ITERATION_DEPTH() #endif // BOOST_PP_IS_ITERATING