boost: Package Version Update -> 1.64.0 4298/head
authorCarlos Miguel Ferreira <carlosmf.pt@gmail.com>
Tue, 25 Apr 2017 12:30:35 +0000 (13:30 +0100)
committerCarlos Miguel Ferreira <carlosmf.pt@gmail.com>
Thu, 27 Apr 2017 09:48:17 +0000 (10:48 +0100)
Maintainer: @ClaymorePT
Compile tested: Broadcom BCM2708
Run tested: None

Description:
 - New header-only library -> Process
   -> Process library by Klemens D. Morgenstern, that provides cross
        platorm ways to allows you to:
      - create child processes
      - setup streams for child processes
      - communicate with child processes through streams
          (synchronously or asynchronously)
      - wait for processes to exit (synchronously or asynchronously)
      - terminate processes

Information about the 1.64.0 release (updated libraries, bug fixes,
 etc), can be found here [1].

[1]: http://www.boost.org/users/history/version_1_64_0.html

Signed-off-by: Carlos Miguel Ferreira <carlosmf.pt@gmail.com>
libs/boost/Makefile
libs/boost/patches/02_fix_context_overload_ambiguity.patch [new file with mode: 0755]
libs/boost/patches/02_fix_libc_regression_execution_monitor.patch [deleted file]

index 54c281ddd36273d0318f08b998ccc903b337946d..d0d5bdea595b33997654a604d8f95b2e43cb8d7a 100644 (file)
@@ -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 <http://www.boost.org/users/license.html>
 PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
 
@@ -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 (executable)
index 0000000..dac1234
--- /dev/null
@@ -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<typename U>
+ struct helper {
+     template< typename T >
+     static T convert( T && t) noexcept {
+@@ -64,8 +64,8 @@
+     }
+ };
+-template<>
+-struct helper< 1 > {
++template<typename U>
++struct helper< std::tuple<U> > {
+     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<decltype(std::get<1>(*p))>::type H;
++    std::get< 1 >(* p) = detail::helper<H>::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 (file)
index 2c7533c..0000000
+++ /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;