diff --git a/libs/boost/Makefile b/libs/boost/Makefile index 54c281ddd..d0d5bdea5 100644 --- a/libs/boost/Makefile +++ b/libs/boost/Makefile @@ -16,15 +16,15 @@ include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/target.mk PKG_NAME:=boost -PKG_VERSION:=1.63.0 -PKG_SOURCE_VERSION:=1_63_0 -PKG_RELEASE:=2 +PKG_VERSION:=1.64.0 +PKG_SOURCE_VERSION:=1_64_0 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2 PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_SOURCE_VERSION) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)_$(PKG_SOURCE_VERSION) -PKG_MD5SUM:=beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 +PKG_MD5SUM:=7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332 PKG_LICENSE:=Boost Software License PKG_MAINTAINER:=Carlos M. Ferreira @@ -44,7 +44,7 @@ define Package/boost/Default endef define Package/boost/description -This package provides the Boost v1.63 libraries. +This package provides the Boost v1.64 libraries. Boost is a set of free, peer-reviewed, portable C++ source libraries. ----------------------------------------------------------------------------- @@ -88,7 +88,7 @@ This package provides the following run-time libraries: - wave There are many more header-only libraries supported by Boost. -See more at http://www.boost.org/doc/libs/1_63_0/ +See more at http://www.boost.org/doc/libs/1_64_0/ endef PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3 diff --git a/libs/boost/patches/02_fix_context_overload_ambiguity.patch b/libs/boost/patches/02_fix_context_overload_ambiguity.patch new file mode 100755 index 000000000..dac123474 --- /dev/null +++ b/libs/boost/patches/02_fix_context_overload_ambiguity.patch @@ -0,0 +1,81 @@ +Index: boost_1_64_0/boost/context/continuation.hpp +=================================================================== +--- boost_1_64_0.orig/boost/context/continuation.hpp 2017-04-24 12:36:55.987412031 +0100 ++++ boost_1_64_0/boost/context/continuation.hpp 2017-04-24 12:37:49.730416122 +0100 +@@ -56,7 +56,7 @@ + namespace context { + namespace detail { + +-template< int N > ++template + struct helper { + template< typename T > + static T convert( T && t) noexcept { +@@ -64,8 +64,8 @@ + } + }; + +-template<> +-struct helper< 1 > { ++template ++struct helper< std::tuple > { + template< typename T > + static std::tuple< T > convert( T && t) noexcept { + return std::make_tuple( std::forward< T >( t) ); +@@ -239,15 +239,16 @@ + + } + +-template< typename Ctx, typename Fn, typename ... Arg > ++template< typename Ctx, typename Fn, typename Arg > + detail::transfer_t context_ontop( detail::transfer_t t) { +- auto p = static_cast< std::tuple< Fn, std::tuple< Arg ... > > * >( t.data); ++ auto p = static_cast< Arg * >( t.data); + BOOST_ASSERT( nullptr != p); + typename std::decay< Fn >::type fn = std::forward< Fn >( std::get< 0 >( * p) ); + t.data = & std::get< 1 >( * p); + Ctx c{ t }; + // execute function, pass continuation via reference +- std::get< 1 >( * p) = detail::helper< sizeof ... (Arg) >::convert( fn( std::move( c) ) ); ++ typedef typename std::decay(*p))>::type H; ++ std::get< 1 >(* p) = detail::helper::convert( fn( std::move( c) ) ); + #if defined(BOOST_NO_CXX14_STD_EXCHANGE) + return { detail::exchange( c.t_.fctx, nullptr), & std::get< 1 >( * p) }; + #else +@@ -275,7 +276,7 @@ + template< typename Ctx, typename StackAlloc, typename Fn > + friend class detail::record; + +- template< typename Ctx, typename Fn, typename ... Arg > ++ template< typename Ctx, typename Fn, typename Arg > + friend detail::transfer_t + context_ontop( detail::transfer_t); + +@@ -354,7 +355,7 @@ + template< typename Fn, typename ... Arg > + continuation resume_with( Fn && fn, Arg ... arg) { + BOOST_ASSERT( nullptr != t_.fctx); +- auto tpl = std::make_tuple( std::forward< Fn >( fn), std::forward< Arg >( arg) ... ); ++ auto tpl = std::make_tuple( std::forward< Fn >( fn), std::make_tuple( std::forward< Arg >( arg) ... )); + return detail::ontop_fcontext( + #if defined(BOOST_NO_CXX14_STD_EXCHANGE) + detail::exchange( t_.fctx, nullptr), +@@ -362,7 +363,7 @@ + std::exchange( t_.fctx, nullptr), + #endif + & tpl, +- context_ontop< continuation, Fn, Arg ... >); ++ context_ontop< continuation, Fn, decltype(tpl) >); + } + + continuation resume() { +@@ -451,7 +452,8 @@ + template< + typename Fn, + typename ... Arg, +- typename = detail::disable_overload< continuation, Fn > ++ typename = detail::disable_overload< continuation, Fn >, ++ typename = detail::disable_overload< std::allocator_arg_t, Fn > + > + continuation + callcc( Fn && fn, Arg ... arg) { diff --git a/libs/boost/patches/02_fix_libc_regression_execution_monitor.patch b/libs/boost/patches/02_fix_libc_regression_execution_monitor.patch deleted file mode 100644 index 2c7533c28..000000000 --- a/libs/boost/patches/02_fix_libc_regression_execution_monitor.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: boost_1_63_0/boost/test/impl/execution_monitor.ipp -=================================================================== ---- boost_1_63_0.orig/boost/test/impl/execution_monitor.ipp -+++ boost_1_63_0/boost/test/impl/execution_monitor.ipp -@@ -1375,7 +1375,7 @@ enable( unsigned mask ) - #endif - - return ~old_cw & BOOST_FPE_ALL; --#elif defined(__GLIBC__) && defined(__USE_GNU) -+#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H) - if (BOOST_FPE_ALL == BOOST_FPE_OFF) - /* Not Implemented */ - return BOOST_FPE_OFF; -@@ -1415,7 +1415,7 @@ disable( unsigned mask ) - #endif - - return ~old_cw & BOOST_FPE_ALL; --#elif defined(__GLIBC__) && defined(__USE_GNU) -+#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H) - if (BOOST_FPE_ALL == BOOST_FPE_OFF) - /* Not Implemented */ - return BOOST_FPE_INV;