From 9ccf4506086b1a36c2c1eef26649e4090142805a Mon Sep 17 00:00:00 2001 From: Carlos Miguel Ferreira Date: Mon, 18 Sep 2017 00:47:25 +0100 Subject: [PATCH] boost: 1.65.1 Update This commit updates the boost libraries to version 1.65.1 This new version is a bug-fix update for Boost 1.65.0, so no new libraries. As always, more information about this release can be found in [1]. [1]: http://www.boost.org/users/history/version_1_65_1.html Signed-off-by: Carlos Miguel Ferreira --- libs/boost/Makefile | 10 +- ...0-boost-1.65.0_after_release_patches.patch | 344 ------------------ ...46640989e1f919388ad36890bd6063cd43a.patch} | 6 +- 3 files changed, 8 insertions(+), 352 deletions(-) delete mode 100644 libs/boost/patches/010-boost-1.65.0_after_release_patches.patch rename libs/boost/patches/{020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch => 010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch} (51%) diff --git a/libs/boost/Makefile b/libs/boost/Makefile index ddc3160c7..b449dee45 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.65.0 -PKG_SOURCE_VERSION:=1_65_0 +PKG_VERSION:=1.65.1 +PKG_SOURCE_VERSION:=1_65_1 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_HASH:=ea26712742e2fb079c2a566a31f3266973b76e38222b9f88b387e3c8b2f9902c +PKG_HASH:=9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81 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.65 libraries. +This package provides the Boost v1.65.1 libraries. Boost is a set of free, peer-reviewed, portable C++ source libraries. ----------------------------------------------------------------------------- @@ -90,7 +90,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_65_0/ +See more at http://www.boost.org/doc/libs/1_65_1/ endef PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3 diff --git a/libs/boost/patches/010-boost-1.65.0_after_release_patches.patch b/libs/boost/patches/010-boost-1.65.0_after_release_patches.patch deleted file mode 100644 index 761008f3a..000000000 --- a/libs/boost/patches/010-boost-1.65.0_after_release_patches.patch +++ /dev/null @@ -1,344 +0,0 @@ -Index: boost_1_65_0/boost/context/continuation_fcontext.hpp -=================================================================== ---- boost_1_65_0.orig/boost/context/continuation_fcontext.hpp -+++ boost_1_65_0/boost/context/continuation_fcontext.hpp -@@ -95,7 +95,7 @@ transfer_t context_ontop( transfer_t t) - t.data = nullptr; - Ctx c{ t.fctx }; - // execute function, pass continuation via reference -- fn( std::move( c) ); -+ c = fn( std::move( c) ); - #if defined(BOOST_NO_CXX14_STD_EXCHANGE) - return { exchange( c.fctx_, nullptr), nullptr }; - #else -Index: boost_1_65_0/boost/context/continuation_ucontext.hpp -=================================================================== ---- boost_1_65_0.orig/boost/context/continuation_ucontext.hpp -+++ boost_1_65_0/boost/context/continuation_ucontext.hpp -@@ -84,18 +84,18 @@ static void entry_func( void * data) noe - struct BOOST_CONTEXT_DECL activation_record { - thread_local static activation_record * current_rec; - -- ucontext_t uctx{}; -- stack_context sctx{}; -- bool main_ctx{ true }; -- activation_record * from{ nullptr }; -- std::function< void(activation_record*&) > ontop{}; -- bool terminated{ false }; -- bool force_unwind{ false }; -+ ucontext_t uctx{}; -+ stack_context sctx{}; -+ bool main_ctx{ true }; -+ activation_record * from{ nullptr }; -+ std::function< activation_record*(activation_record*&) > ontop{}; -+ bool terminated{ false }; -+ bool force_unwind{ false }; - #if defined(BOOST_USE_ASAN) -- void * fake_stack{ nullptr }; -- void * stack_bottom{ nullptr }; -- std::size_t stack_size{ 0 }; -- bool started{ false }; -+ void * fake_stack{ nullptr }; -+ void * stack_bottom{ nullptr }; -+ std::size_t stack_size{ 0 }; -+ bool started{ false }; - #endif - - static activation_record *& current() noexcept; -@@ -168,20 +168,30 @@ struct BOOST_CONTEXT_DECL activation_rec - current()->ontop = std::bind( - [](typename std::decay< Fn >::type & fn, activation_record *& ptr){ - Ctx c{ ptr }; -- fn( std::move( c) ); -+ c = fn( std::move( c) ); - if ( ! c) { - ptr = nullptr; - } -+#if defined(BOOST_NO_CXX14_STD_EXCHANGE) -+ return exchange( c.ptr_, nullptr); -+#else -+ return std::exchange( c.ptr_, nullptr); -+#endif - }, - std::forward< Fn >( fn), - std::placeholders::_1); - #else - current()->ontop = [fn=std::forward(fn)](activation_record *& ptr){ - Ctx c{ ptr }; -- fn( std::move( c) ); -+ c = fn( std::move( c) ); - if ( ! c) { - ptr = nullptr; - } -+#if defined(BOOST_NO_CXX14_STD_EXCHANGE) -+ return exchange( c.ptr_, nullptr); -+#else -+ return std::exchange( c.ptr_, nullptr); -+#endif - }; - #endif - #if defined(BOOST_USE_SEGMENTED_STACKS) -@@ -408,7 +418,7 @@ public: - if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) { - throw detail::forced_unwind{ ptr}; - } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) { -- detail::activation_record::current()->ontop( ptr); -+ ptr = detail::activation_record::current()->ontop( ptr); - detail::activation_record::current()->ontop = nullptr; - } - return continuation{ ptr }; -@@ -426,7 +436,7 @@ public: - if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) { - throw detail::forced_unwind{ ptr}; - } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) { -- detail::activation_record::current()->ontop( ptr); -+ ptr = detail::activation_record::current()->ontop( ptr); - detail::activation_record::current()->ontop = nullptr; - } - return continuation{ ptr }; -Index: boost_1_65_0/boost/context/continuation_winfib.hpp -=================================================================== ---- boost_1_65_0.orig/boost/context/continuation_winfib.hpp -+++ boost_1_65_0/boost/context/continuation_winfib.hpp -@@ -65,13 +65,13 @@ static VOID WINAPI entry_func( LPVOID da - struct BOOST_CONTEXT_DECL activation_record { - thread_local static activation_record * current_rec; - -- LPVOID fiber{ nullptr }; -- stack_context sctx{}; -- bool main_ctx{ true }; -- activation_record * from{ nullptr }; -- std::function< void(activation_record*&) > ontop{}; -- bool terminated{ false }; -- bool force_unwind{ false }; -+ LPVOID fiber{ nullptr }; -+ stack_context sctx{}; -+ bool main_ctx{ true }; -+ activation_record * from{ nullptr }; -+ std::function< activation_record*(activation_record*&) > ontop{}; -+ bool terminated{ false }; -+ bool force_unwind{ false }; - - static activation_record *& current() noexcept; - -@@ -142,20 +142,30 @@ struct BOOST_CONTEXT_DECL activation_rec - current()->ontop = std::bind( - [](typename std::decay< Fn >::type & fn, activation_record *& ptr){ - Ctx c{ ptr }; -- fn( std::move( c) ); -+ c = fn( std::move( c) ); - if ( ! c) { - ptr = nullptr; - } -+#if defined(BOOST_NO_CXX14_STD_EXCHANGE) -+ return exchange( c.ptr_, nullptr); -+#else -+ return std::exchange( c.ptr_, nullptr); -+#endif - }, - std::forward< Fn >( fn), - std::placeholders::_1); - #else - current()->ontop = [fn=std::forward(fn)](activation_record *& ptr){ - Ctx c{ ptr }; -- fn( std::move( c) ); -+ c = fn( std::move( c) ); - if ( ! c) { - ptr = nullptr; - } -+#if defined(BOOST_NO_CXX14_STD_EXCHANGE) -+ return exchange( c.ptr_, nullptr); -+#else -+ return std::exchange( c.ptr_, nullptr); -+#endif - }; - #endif - // context switch -@@ -336,7 +346,7 @@ public: - if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) { - throw detail::forced_unwind{ ptr}; - } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) { -- detail::activation_record::current()->ontop( ptr); -+ ptr = detail::activation_record::current()->ontop( ptr); - detail::activation_record::current()->ontop = nullptr; - } - return continuation{ ptr }; -@@ -354,7 +364,7 @@ public: - if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) { - throw detail::forced_unwind{ ptr}; - } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) { -- detail::activation_record::current()->ontop( ptr); -+ ptr = detail::activation_record::current()->ontop( ptr); - detail::activation_record::current()->ontop = nullptr; - } - return continuation{ ptr }; -Index: boost_1_65_0/boost/thread/win32/condition_variable.hpp -=================================================================== ---- boost_1_65_0.orig/boost/thread/win32/condition_variable.hpp -+++ boost_1_65_0/boost/thread/win32/condition_variable.hpp -@@ -211,7 +211,7 @@ namespace boost - {} - #endif - -- void remove_waiter() -+ void remove_waiter_and_reset() - { - if (entry) { - boost::lock_guard internal_lock(internal_mutex); -@@ -221,7 +221,7 @@ namespace boost - } - ~entry_manager() BOOST_NOEXCEPT_IF(false) - { -- remove_waiter(); -+ remove_waiter_and_reset(); - } - - list_entry* operator->() -@@ -250,7 +250,7 @@ namespace boost - woken=entry->woken(); - } - // do it here to avoid throwing on the destructor -- entry->remove_waiter(); -+ entry.remove_waiter_and_reset(); - locker.lock(); - return woken; - } -Index: boost_1_65_0/libs/context/doc/callcc.qbk -=================================================================== ---- boost_1_65_0.orig/libs/context/doc/callcc.qbk -+++ boost_1_65_0/libs/context/doc/callcc.qbk -@@ -176,6 +176,7 @@ return `void`. - c=c.resume_with([&data](ctx::continuation && c){ - std::cout << "f2: entered: " << data << std::endl; - data=-1; -+ return std::move( c); - }); - std::cout << "f1: returned third time" << std::endl; - -@@ -221,6 +222,7 @@ an exception. - c = c.resume_with( - [](ctx::continuation && c){ - throw my_exception(std::move(c),"abc"); -+ return std::move( c); - }); - - output: -@@ -527,11 +529,11 @@ e.g. ['continuation::operator bool()] re - - [variablelist - [[Effects:] [Captures current continuation and resumes `*this`. --The function `resume_with`, is used to execute function `fn` in continuation -+The function `resume_with`, is used to execute function `fn` in the execution context of - `*this` (e.g. the stack frame of `fn` is allocated on stack of `*this`).]] - [[Returns:] [The continuation representing the continuation that has been - suspended.]] --[[Note:] [Function `fn` needs to return void.]] -+[[Note:] [Function `fn` needs to return `continuation`.]] - [[Note:] [The returned continuation indicates if the suspended continuation has - terminated (return from context-function) via `bool operator()`.]] - ] -Index: boost_1_65_0/libs/context/example/ontop.cpp -=================================================================== ---- boost_1_65_0.orig/libs/context/example/ontop.cpp -+++ boost_1_65_0/libs/context/example/ontop.cpp -@@ -32,6 +32,7 @@ int main() { - c = c.resume_with( [&data](ctx::continuation && c){ - std::cout << "f2: entered: " << data << std::endl; - data = -1; -+ return std::move( c); - }); - std::cout << "f1: returned third time" << std::endl; - std::cout << "main: done" << std::endl; -Index: boost_1_65_0/libs/context/example/ontop_void.cpp -=================================================================== ---- boost_1_65_0.orig/libs/context/example/ontop_void.cpp -+++ boost_1_65_0/libs/context/example/ontop_void.cpp -@@ -21,8 +21,9 @@ ctx::continuation f1( ctx::continuation - return std::move( c); - } - --void f2( ctx::continuation && c) { -+ctx::continuation f2( ctx::continuation && c) { - std::cout << "f2: entered" << std::endl; -+ return std::move( c); - } - - int main() { -Index: boost_1_65_0/libs/context/example/throw.cpp -=================================================================== ---- boost_1_65_0.orig/libs/context/example/throw.cpp -+++ boost_1_65_0/libs/context/example/throw.cpp -@@ -38,6 +38,7 @@ int main() { - c = c.resume_with( - [](ctx::continuation && c){ - throw my_exception(std::move( c), "abc"); -+ return std::move( c); - }); - - std::cout << "main: done" << std::endl; -Index: boost_1_65_0/libs/context/test/test_callcc.cpp -=================================================================== ---- boost_1_65_0.orig/libs/context/test/test_callcc.cpp -+++ boost_1_65_0/libs/context/test/test_callcc.cpp -@@ -252,6 +252,7 @@ void test_ontop() { - c = c.resume_with( - [&i](ctx::continuation && c){ - i -= 10; -+ return std::move( c); - }); - BOOST_CHECK( c); - BOOST_CHECK_EQUAL( i, 200); -@@ -266,6 +267,7 @@ void test_ontop() { - c = c.resume_with( - [&c1](ctx::continuation && c){ - c1 = std::move( c); -+ return std::move( c); - }); - } - } -@@ -290,7 +292,8 @@ void test_ontop_exception() { - const char * what = "hello world"; - c.resume_with( - [what](ctx::continuation && c){ -- throw my_exception( std::move( c), what); -+ throw my_exception( std::move( c), what); -+ return std::move( c); - }); - BOOST_CHECK_EQUAL( 3, value1); - BOOST_CHECK_EQUAL( std::string( what), value2); -Index: boost_1_65_0/libs/fiber/src/context.cpp -=================================================================== ---- boost_1_65_0.orig/libs/fiber/src/context.cpp -+++ boost_1_65_0/libs/fiber/src/context.cpp -@@ -145,6 +145,7 @@ context::resume() noexcept { - // pass pointer to the context that resumes `this` - c_.resume_with([prev](boost::context::continuation && c){ - prev->c_ = std::move( c); -+ return boost::context::continuation{}; - }); - } - -@@ -158,6 +159,7 @@ context::resume( detail::spinlock_lock & - c_.resume_with([prev,&lk](boost::context::continuation && c){ - prev->c_ = std::move( c); - lk.unlock(); -+ return boost::context::continuation{}; - }); - } - -@@ -171,6 +173,7 @@ context::resume( context * ready_ctx) no - c_.resume_with([prev,ready_ctx](boost::context::continuation && c){ - prev->c_ = std::move( c); - context::active()->schedule( ready_ctx); -+ return boost::context::continuation{}; - }); - } - -@@ -218,6 +221,7 @@ context::suspend_with_cc() noexcept { - // pass pointer to the context that resumes `this` - return c_.resume_with([prev](boost::context::continuation && c){ - prev->c_ = std::move( c); -+ return boost::context::continuation{}; - }); - } - diff --git a/libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch b/libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch similarity index 51% rename from libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch rename to libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch index 245afab42..bcb2bad62 100644 --- a/libs/boost/patches/020-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch +++ b/libs/boost/patches/010-fiber_fix_0506e46640989e1f919388ad36890bd6063cd43a.patch @@ -1,7 +1,7 @@ -Index: boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp +Index: boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp =================================================================== ---- boost_1_65_0.orig/libs/fiber/src/numa/linux/pin_thread.cpp -+++ boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp +--- boost_1_65_1.orig/libs/fiber/src/numa/linux/pin_thread.cpp ++++ boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp @@ -9,6 +9,7 @@ extern "C" { #include