Commit 4258f82e authored by Bernd Kuhls's avatar Bernd Kuhls Committed by Peter Korsgaard
Browse files

boost: bump to version 1.55.0

parent 8c71d1a1
Loading
Loading
Loading
Loading
+0 −50
Original line number Diff line number Diff line
Fix compilation of Boost.Variants move assignment for situations when one of the variant template classes has nothrow copy constructor and throwing move constructor (refs #8772)

Fixes compilation error:

.../output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/boost/variant/variant.hpp: In member function 'void boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::move_assigner::internal_visit(RhsT&, int) [with RhsT = boost::shared_ptr<void>, T0_ = boost::shared_ptr<void>, T1 = boost::signals2::detail::foreign_void_shared_ptr, T2 = boost::detail::variant::void_, ..., T18 = boost::detail::variant::void_, T19 = boost::detail::variant::void_]':
...
.../output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/boost/variant/variant.hpp:2058:13: error: no matching function for call to 'boost::variant<boost::shared_ptr<void>, boost::signals2::detail::foreign_void_shared_ptr>::move_assigner::assign_impl(boost::shared_ptr<void>&, nothrow_copy, nothrow_move_constructor, boost::variant<boost::shared_ptr<void>, boost::signals2::detail::foreign_void_shared_ptr>::has_fallback_type_)'

Reported here: https://svn.boost.org/trac/boost/ticket/8772

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Backported-from: https://svn.boost.org/trac/boost/changeset/85080

--- a/boost/variant/variant.hpp	(revision 85079)
+++ b/boost/variant/variant.hpp	(revision 85080)
@@ -1981,5 +1981,5 @@
     private: // helpers, for internal visitor interface (below)
 
-        template <typename RhsT, typename B1, typename B2>
+        template <typename RhsT, typename B2>
         void assign_impl(
               RhsT& rhs_content
--- a/libs/variant/test/rvalue_test.cpp	(revision 85079)
+++ b/libs/variant/test/rvalue_test.cpp	(revision 85080)
@@ -197,4 +197,19 @@
 #endif
 
+struct nothrow_copyable_throw_movable {
+    nothrow_copyable_throw_movable(){}
+    nothrow_copyable_throw_movable(const nothrow_copyable_throw_movable&) BOOST_NOEXCEPT {}
+#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+    nothrow_copyable_throw_movable(nothrow_copyable_throw_movable&&) BOOST_NOEXCEPT_IF(false) {}
+#endif
+};
+
+// This test is created to cover the following situation:
+// https://svn.boost.org/trac/boost/ticket/8772
+void run_tricky_compilation_test()
+{
+    boost::variant<int, nothrow_copyable_throw_movable> v;
+    v = nothrow_copyable_throw_movable();
+}
 
 int test_main(int , char* [])
@@ -204,4 +219,5 @@
    run_move_only();
    run_moves_are_noexcept();
+   run_tricky_compilation_test();
    return 0;
 }
+0 −33
Original line number Diff line number Diff line
Patch for recent versions of glibc which always assume int64_t support.

Fixes compilation error with aarch64 target:

./boost/atomic/atomic.hpp: At global scope:
./boost/atomic/atomic.hpp:202:16: error: 'uintptr_t' was not declared in this scope
 typedef atomic<uintptr_t> atomic_uintptr_t;
                ^
./boost/atomic/atomic.hpp:202:25: error: template argument 1 is invalid
 typedef atomic<uintptr_t> atomic_uintptr_t;
                         ^
./boost/atomic/atomic.hpp:202:43: error: invalid type in declaration before ';' token
 typedef atomic<uintptr_t> atomic_uintptr_t;
                                           ^

Reported here: https://svn.boost.org/trac/boost/ticket/8973
Fix reported here: https://svn.boost.org/trac/boost/ticket/8731

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Backported-from: https://svn.boost.org/trac/boost/changeset/84950

--- a/boost/cstdint.hpp	(revision 84805)
+++ b/boost/cstdint.hpp	(revision 84950)
@@ -42,5 +42,8 @@
 // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
 //
-#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
+#if defined(BOOST_HAS_STDINT_H)					\
+  && (!defined(__GLIBC__)					\
+      || defined(__GLIBC_HAVE_LONG_LONG)			\
+      || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
 
 // The following #include is an implementation artifact; not part of interface.
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
#
################################################################################

BOOST_VERSION = 1.54.0
BOOST_VERSION = 1.55.0
BOOST_FILE_VERSION = $(subst .,_,$(BOOST_VERSION))
BOOST_SOURCE = boost_$(BOOST_FILE_VERSION).tar.bz2
BOOST_SITE = http://downloads.sourceforge.net/project/boost/boost/$(BOOST_VERSION)