[pkg-boost-commits] r14717 - in boost/trunk/debian: . patches

Steven Michael Robbins smr at alioth.debian.org
Sat May 5 05:32:25 UTC 2012


Author: smr
Date: 2012-05-05 05:32:24 +0000 (Sat, 05 May 2012)
New Revision: 14717

Added:
   boost/trunk/debian/patches/gcc4.7_trac-6331.patch
   boost/trunk/debian/patches/gcc4.7_trac-6431.patch
   boost/trunk/debian/patches/gcc4.7_trac-6755.patch
   boost/trunk/debian/patches/gcc4.7_trac-6790.patch
   boost/trunk/debian/patches/gcc4.7_trac-6852.patch
   boost/trunk/debian/patches/gcc4.7_trac-6854.patch
   boost/trunk/debian/patches/gcc4.7_trac-76970.patch
Modified:
   boost/trunk/debian/Notes
   boost/trunk/debian/changelog
   boost/trunk/debian/patches/series
Log:
Upstream fixes for GCC 4.7.

Modified: boost/trunk/debian/Notes
===================================================================
--- boost/trunk/debian/Notes	2012-03-30 12:24:14 UTC (rev 14716)
+++ boost/trunk/debian/Notes	2012-05-05 05:32:24 UTC (rev 14717)
@@ -1,3 +1,25 @@
+	GCC 4.7 Bugs
+	------------
+
+Patches Included
+----------------
+https://svn.boost.org/trac/boost/ticket/6852
+https://svn.boost.org/trac/boost/ticket/6854
+https://svn.boost.org/trac/boost/ticket/6790
+https://svn.boost.org/trac/boost/ticket/6755
+https://svn.boost.org/trac/boost/changeset/76970
+https://svn.boost.org/trac/boost/ticket/6431
+https://svn.boost.org/trac/boost/ticket/6331
+
+No Patch
+--------
+https://svn.boost.org/trac/boost/ticket/6826 - failure to detect python3.2
+https://svn.boost.org/trac/boost/ticket/6825 - fibonacci_heap::s_handle_from_iterator
+https://svn.boost.org/trac/boost/ticket/6785 - read_json does not compile on GCC 4.7.0 with std=c++11
+https://svn.boost.org/trac/boost/ticket/6754 - [result_of] Test fails on clang trunk and gcc-4.7
+https://svn.boost.org/trac/boost/ticket/6620 - Boost Asio error with (unreleased) gcc 4.7 - monotonic / steady clock
+
+
 	Documentation
 	-------------
 

Modified: boost/trunk/debian/changelog
===================================================================
--- boost/trunk/debian/changelog	2012-03-30 12:24:14 UTC (rev 14716)
+++ boost/trunk/debian/changelog	2012-05-05 05:32:24 UTC (rev 14717)
@@ -1,3 +1,16 @@
+boost1.49 (1.49.0-3) unstable; urgency=low
+
+  * gcc4.7_trac-6790.patch:
+  * gcc4.7_trac-6854.patch:
+  * gcc4.7_trac-6755.patch:
+  * gcc4.7_trac-76970.patch:
+  * gcc4.7_trac-6331.patch:
+  * gcc4.7_trac-6431.patch:
+  * gcc4.7_trac-6852.patch: New.  Fixes for gcc 4.7 from upstream.
+    Closes: #671409
+
+ -- Steve M. Robbins <smr at debian.org>  Sat, 05 May 2012 00:31:50 -0500
+
 boost1.49 (1.49.0-2) unstable; urgency=low
 
   * control: Add missing -dev package Conflicts for: chrono, locale,

Added: boost/trunk/debian/patches/gcc4.7_trac-6331.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6331.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6331.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,42 @@
+Description: [Boost.Test] g++ compilation error due to ambiguity 
+ Applied upstream changeset 76600 and additional change by t0rt1e@… 
+Author: rogeeff, t0rt1e@… 
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6331
+
+
+Index: boost/test/impl/exception_safety.ipp
+===================================================================
+--- a/boost/test/impl/exception_safety.ipp	(revision 76599)
++++ b/boost/test/impl/exception_safety.ipp	(revision 76600)
+@@ -51,10 +51,10 @@
+ 
+ namespace boost {
+ 
+-using namespace ::boost::unit_test;
+- 
+ namespace itest {
+ 
++using namespace ::boost::unit_test;
++
+ // ************************************************************************** //
+ // **************             execution_path_point             ************** //
+ // ************************************************************************** //
+
+Index: boost/test/impl/logged_expectations.ipp
+===================================================================
+--- a/boost/test/impl/logged_expectations.ipp (Revision 76602)
++++ b/boost/test/impl/logged_expectations.ipp (Arbeitskopie)
+@@ -40,10 +40,10 @@
+ 
+ namespace boost {
+ 
++namespace itest {
++
+ using namespace ::boost::unit_test;
+ 
+-namespace itest {
+-
+ // ************************************************************************** //
+ // **************    logged expectation test implementation    ************** //
+ // ************************************************************************** //

Added: boost/trunk/debian/patches/gcc4.7_trac-6431.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6431.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6431.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,90 @@
+Description: MinGW: Cannot export (anonymous namespace)::thread_binder
+ Upstream changeset [76598]. 
+Author: viboes
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6431
+
+
+trunk/libs/thread/test/util.inl
+
+Index: trunk/libs/thread/test/util.inl
+===================================================================
+--- a/libs/thread/test/util.inl
++++ b/libs/thread/test/util.inl
+@@ -99,5 +99,7 @@
+     int secs;
+ };
+-
++}
++namespace thread_detail_anon
++{
+ template <typename F>
+ class indirect_adapter
+@@ -127,4 +129,9 @@
+ };
+ 
++}
++// boostinspect:nounnamed
++namespace 
++{
++
+ template <typename F>
+ void timed_test(F func, int secs,
+@@ -132,5 +139,5 @@
+ {
+     execution_monitor monitor(type, secs);
+-    indirect_adapter<F> ifunc(func, monitor);
++    thread_detail_anon::indirect_adapter<F> ifunc(func, monitor);
+     monitor.start();
+     boost::thread thrd(ifunc);
+@@ -139,4 +146,9 @@
+ }
+ 
++}
++
++namespace thread_detail_anon
++{
++
+ template <typename F, typename T>
+ class thread_binder
+@@ -152,9 +164,18 @@
+ };
+ 
++}
++
++// boostinspect:nounnamed
++namespace 
++{
+ template <typename F, typename T>
+-thread_binder<F, T> bind(const F& func, const T& param)
+-{
+-    return thread_binder<F, T>(func, param);
+-}
++thread_detail_anon::thread_binder<F, T> bind(const F& func, const T& param)
++{
++    return thread_detail_anon::thread_binder<F, T>(func, param);
++}
++}
++
++namespace thread_detail_anon
++{
+ 
+ template <typename R, typename T>
+@@ -173,9 +194,13 @@
+ };
+ 
+-
++}
++
++// boostinspect:nounnamed
++namespace 
++{
+ template <typename R, typename T>
+-thread_member_binder<R, T> bind(R (T::*func)(), T& param)
+-{
+-    return thread_member_binder<R, T>(func, param);
++thread_detail_anon::thread_member_binder<R, T> bind(R (T::*func)(), T& param)
++{
++    return thread_detail_anon::thread_member_binder<R, T>(func, param);
+ }
+ } // namespace

Added: boost/trunk/debian/patches/gcc4.7_trac-6755.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6755.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6755.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,61 @@
+Description: [result_of] Inconsistent results between function references and function pointers
+ For function references, decltype-based boost::result_of uses decltype to determine the type. But, for function pointers, decltype-based boost::result_of falls back to boost::tr1_result_of and does not use decltype.
+
+This inconsistency makes different results for function references and function pointers. On clang trunk and gcc-4.7 in a C++11 mode, for "typedef const int F();",
+
+    decltype-based boost::result_of<F&()> is int, but
+    decltype-based boost::result_of<F*()> is const int. 
+
+To remove the inconsistency, decltype-based boost::result_of should use decltype for function pointers. 
+
+Applied upstream patch https://svn.boost.org/trac/boost/changeset/77702
+
+Author: djwalker 
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6755
+
+Index: boost/utility/detail/result_of_iterate.hpp
+===================================================================
+--- a/boost/utility/detail/result_of_iterate.hpp	(revision 77701)
++++ b/boost/utility/detail/result_of_iterate.hpp	(revision 77702)
+@@ -5,6 +5,11 @@
+ //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ //  http://www.boost.org/LICENSE_1_0.txt)
+ 
++//  Copyright Daniel Walker, Eric Niebler, Michel Morin 2008-2012.
++//  Use, modification and distribution is subject to the Boost Software
++//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or
++//  copy at http://www.boost.org/LICENSE_1_0.txt)
++
+ // For more information, see http://www.boost.org/libs/utility
+ #if !defined(BOOST_PP_IS_ITERATING)
+ # error Boost result_of - do not include this file!
+@@ -40,7 +45,7 @@
+          BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
+ struct result_of<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))>
+     : mpl::if_<
+-          mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
++          is_member_function_pointer<F>
+         , detail::tr1_result_of_impl<
+             typename remove_cv<F>::type, 
+             typename remove_cv<F>::type(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false
+Index: libs/utility/test/result_of_test.cpp
+===================================================================
+--- a/libs/utility/test/result_of_test.cpp	(revision 77701)
++++ b/libs/utility/test/result_of_test.cpp	(revision 77702)
+@@ -193,7 +193,6 @@
+   BOOST_STATIC_ASSERT((is_same<result_of<mem_func_ptr_v(X,char)>::type, int>::value));
+   BOOST_STATIC_ASSERT((is_same<result_of<mem_func_ptr_cv(X,char)>::type, int>::value));
+   BOOST_STATIC_ASSERT((is_same<result_of<mem_func_ptr_0(X)>::type, int>::value)); 
+-  BOOST_STATIC_ASSERT((is_same<result_of<func_ptr(void)>::type, int>::value));
+ 
+   BOOST_STATIC_ASSERT((is_same<tr1_result_of<func_ptr(char, float)>::type, int>::value));
+   BOOST_STATIC_ASSERT((is_same<tr1_result_of<func_ref(char, float)>::type, int>::value));
+@@ -205,6 +204,7 @@
+   BOOST_STATIC_ASSERT((is_same<tr1_result_of<mem_func_ptr_cv(X,char)>::type, int>::value));
+   BOOST_STATIC_ASSERT((is_same<tr1_result_of<mem_func_ptr_0(X)>::type, int>::value)); 
+   BOOST_STATIC_ASSERT((is_same<tr1_result_of<func_ptr(void)>::type, int>::value));
++  BOOST_STATIC_ASSERT((is_same<tr1_result_of<func_ref(void)>::type, int>::value));
+ 
+   BOOST_STATIC_ASSERT((is_same<result_of<result_of_member_function_template(double)>::type, double>::value));
+   BOOST_STATIC_ASSERT((is_same<result_of<const result_of_member_function_template(double)>::type, const double>::value));

Added: boost/trunk/debian/patches/gcc4.7_trac-6790.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6790.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6790.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,21 @@
+Description: program_options regression in 1.49.0?
+ Since 1.49, bitcoin unable to compile with error [...]
+ Steps to avoid error:
+
+    Error can be avoided by removing #if around #include <.../convert.hpp> in /usr/include/boost/program_options/detail/config_file.hpp 
+Author: Konstantin Nikiforov 
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6790
+
+--- a/boost/program_options/detail/config_file.hpp	2012-03-30 01:14:58.000000000 -0500
++++ b/boost/program_options/detail/config_file.hpp	2012-05-04 19:13:53.120697282 -0500
+@@ -17,9 +17,7 @@
+ #include <boost/program_options/eof_iterator.hpp>
+ 
+ #include <boost/detail/workaround.hpp>
+-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202))
+ #include <boost/program_options/detail/convert.hpp>
+-#endif
+ 
+ #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
+ #include <istream> // std::getline

Added: boost/trunk/debian/patches/gcc4.7_trac-6852.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6852.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6852.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,38 @@
+Description: lexical_cast: warning: ISO C++ does not support the '%lg' gnu_printf format
+ The following code produces a warning if compiled with GCC (4.7.0) and -Wall -std=c++98 -pedantic:
+
+include <boost/lexical_cast.hpp>
+
+int main()
+{
+    boost::lexical_cast<std::string>(double(4.2));
+    return 0;
+}
+Patch adapted from upstream changeset 78308
+
+Author: peter
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6852
+
+
+--- a/boost/lexical_cast.hpp	2012-02-04 12:04:45.000000000 -0600
++++ b/boost/lexical_cast.hpp	2012-05-04 21:32:04.535330135 -0500
+@@ -1286,7 +1286,8 @@
+             bool shl_float(float val,T* out)
+             {   using namespace std;
+                 if (put_inf_nan(start,finish,val)) return true;
+-                finish = start + sprintf(out,"%.*g", static_cast<int>(boost::detail::lcast_get_precision<float >()), val );
++		const double val_as_double = val;
++                finish = start + sprintf(out,"%.*g", static_cast<int>(boost::detail::lcast_get_precision<float >()), val_as_double );
+                 return finish > start;
+             }
+ 
+@@ -1294,7 +1295,7 @@
+             bool shl_double(double val,T* out)
+             {   using namespace std;
+                 if (put_inf_nan(start,finish,val)) return true;
+-                finish = start + sprintf(out,"%.*lg", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
++                finish = start + sprintf(out,"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
+                 return finish > start;
+             }
+ #ifndef __MINGW32__

Added: boost/trunk/debian/patches/gcc4.7_trac-6854.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-6854.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-6854.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,31 @@
+Description: boost/random/detail/integer_log2.hpp:71:35: warning: always_inline function might not be inlinable
+ When compiled with GCC 4.7.0, boost/random/detail/integer_log2.hpp triggers a warning:
+
+#include <boost/random/mersenne_twister.hpp>
+
+int main() { return 0; }
+
+In file included from boost_1_49_0/include/boost/random/detail/large_arithmetic.hpp:19:0,
+                 from boost_1_49_0/include/boost/random/detail/const_mod.hpp:23,
+                 from boost_1_49_0/include/boost/random/detail/seed_impl.hpp:27,
+                 from boost_1_49_0/include/boost/random/mersenne_twister.hpp:29,
+                 from /tmp/always_inline.cpp:1:
+boost_1_49_0/include/boost/random/detail/integer_log2.hpp:71:35: warning: always_inline function might not be inlinable [-Wattributes]
+
+Author: peter@… 
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/ticket/6854
+
+
+
+--- boost_1_49_0.orig/boost/random/detail/integer_log2.hpp
++++ boost_1_49_0/boost/random/detail/integer_log2.hpp
+@@ -27,7 +27,7 @@
+ #elif defined(BOOST_MSVC)
+ #define BOOST_RANDOM_DETAIL_CONSTEXPR __forceinline
+ #elif defined(__GNUC__) && __GNUC__ >= 4
+-#define BOOST_RANDOM_DETAIL_CONSTEXPR __attribute__((const)) __attribute__((always_inline))
++#define BOOST_RANDOM_DETAIL_CONSTEXPR inline __attribute__((const)) __attribute__((always_inline))
+ #else
+ #define BOOST_RANDOM_DETAIL_CONSTEXPR inline
+ #endif

Added: boost/trunk/debian/patches/gcc4.7_trac-76970.patch
===================================================================
--- boost/trunk/debian/patches/gcc4.7_trac-76970.patch	                        (rev 0)
+++ boost/trunk/debian/patches/gcc4.7_trac-76970.patch	2012-05-05 05:32:24 UTC (rev 14717)
@@ -0,0 +1,41 @@
+Description: Unordered: Use C++11 allocator_traits with gcc 4.7.
+ Upstream changeset 76970.
+Author: danieljames
+Bug: 671409
+Forwarded: https://svn.boost.org/trac/boost/changeset/76970
+
+trunk/boost/unordered/detail/allocator_helpers.hpp
+
+Index: trunk/boost/unordered/detail/allocator_helpers.hpp
+===================================================================
+--- a/boost/unordered/detail/allocator_helpers.hpp
++++ b/boost/unordered/detail/allocator_helpers.hpp
+@@ -28,5 +28,12 @@
+ 
+ #if !defined(BOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
+-#define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
++#   if defined(__GXX_EXPERIMENTAL_CXX0X__) && \
++            (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
++#       define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 1
++#   endif
++#endif
++
++#if !defined(BOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
++#   define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
+ #endif
+ 
+
+TabularUnified trunk/libs/unordered/test/unordered/allocator_traits.cpp
+
+Index: trunk/libs/unordered/test/unordered/allocator_traits.cpp
+===================================================================
+--- a/libs/unordered/test/unordered/allocator_traits.cpp
++++ b/libs/unordered/test/unordered/allocator_traits.cpp
+@@ -133,5 +133,5 @@
+         std::make_unsigned<std::ptrdiff_t>::type>));
+ #else
+-    BOOST_MPL_ASSERT((boost::is_same<traits::size_type, std::size_t>));
++    BOOST_MPL_ASSERT((boost::is_same<typename traits::size_type, std::size_t>));
+ #endif
+     BOOST_MPL_ASSERT((boost::is_same<traits::difference_type, std::ptrdiff_t>));
+

Modified: boost/trunk/debian/patches/series
===================================================================
--- boost/trunk/debian/patches/series	2012-03-30 12:24:14 UTC (rev 14716)
+++ boost/trunk/debian/patches/series	2012-05-05 05:32:24 UTC (rev 14717)
@@ -3,3 +3,10 @@
 boost-1.44-py3.1.patch
 pythonid.patch
 mpi-allocator-c++0x.patch
+gcc4.7_trac-6852.patch
+gcc4.7_trac-6854.patch
+gcc4.7_trac-6790.patch
+gcc4.7_trac-6755.patch
+gcc4.7_trac-76970.patch
+gcc4.7_trac-6431.patch
+gcc4.7_trac-6331.patch




More information about the pkg-boost-commits mailing list