[pkg-boost-devel] Bug#528288: libboost-dev: Further gcc 4.4 issues with installed headers

Michael Terry michael.terry at canonical.com
Mon May 11 21:55:37 UTC 2009


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
-------------- next part --------------
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


More information about the pkg-boost-devel mailing list