From d428192622910b205f46ea1bff695cf6508b4b9b Mon Sep 17 00:00:00 2001 From: dsc Date: Fri, 11 Sep 2020 13:36:39 +0200 Subject: [PATCH] Bump Boost to 1.62 --- src/boost-1-fixes.patch | 614 ---------------------------------------- src/boost-test.cpp | 50 ---- src/boost.mk | 4 +- 3 files changed, 2 insertions(+), 666 deletions(-) delete mode 100644 src/boost-1-fixes.patch diff --git a/src/boost-1-fixes.patch b/src/boost-1-fixes.patch deleted file mode 100644 index e048470c..00000000 --- a/src/boost-1-fixes.patch +++ /dev/null @@ -1,614 +0,0 @@ -This file is part of MXE. See LICENSE.md for licensing information. - -Contains ad hoc patches for cross building. - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: xantares -Date: Mon, 28 Sep 2015 08:21:42 +0000 -Subject: [PATCH 1/4] Fix {make,jump}_fcontext visibility with mingw - -taken from: https://github.com/boostorg/context/pull/22 - -diff --git a/libs/context/src/asm/jump_i386_ms_pe_gas.asm b/libs/context/src/asm/jump_i386_ms_pe_gas.asm -index 1111111..2222222 100644 ---- a/libs/context/src/asm/jump_i386_ms_pe_gas.asm -+++ b/libs/context/src/asm/jump_i386_ms_pe_gas.asm -@@ -138,3 +138,6 @@ _jump_fcontext: - - /* indirect jump to context */ - jmp *%edx -+ -+.section .drectve -+.ascii " -export:\"jump_fcontext\"" -diff --git a/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm b/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm -index 1111111..2222222 100644 ---- a/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm -+++ b/libs/context/src/asm/jump_x86_64_ms_pe_gas.asm -@@ -223,3 +223,6 @@ jump_fcontext: - /* indirect jump to context */ - jmp *%r10 - .seh_endproc -+ -+.section .drectve -+.ascii " -export:\"jump_fcontext\"" -diff --git a/libs/context/src/asm/make_i386_ms_pe_gas.asm b/libs/context/src/asm/make_i386_ms_pe_gas.asm -index 1111111..2222222 100644 ---- a/libs/context/src/asm/make_i386_ms_pe_gas.asm -+++ b/libs/context/src/asm/make_i386_ms_pe_gas.asm -@@ -122,3 +122,6 @@ finish: - hlt - - .def __exit; .scl 2; .type 32; .endef /* standard C library function */ -+ -+.section .drectve -+.ascii " -export:\"make_fcontext\"" -diff --git a/libs/context/src/asm/make_x86_64_ms_pe_gas.asm b/libs/context/src/asm/make_x86_64_ms_pe_gas.asm -index 1111111..2222222 100644 ---- a/libs/context/src/asm/make_x86_64_ms_pe_gas.asm -+++ b/libs/context/src/asm/make_x86_64_ms_pe_gas.asm -@@ -149,3 +149,6 @@ finish: - .seh_endproc - - .def _exit; .scl 2; .type 32; .endef /* standard C library function */ -+ -+.section .drectve -+.ascii " -export:\"make_fcontext\"" - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tony Theodore -Date: Wed, 28 Feb 2018 19:43:45 +1100 -Subject: [PATCH 2/4] fast-forward asio/ssl from 1.62 release - - -diff --git a/boost/asio/ssl/detail/impl/engine.ipp b/boost/asio/ssl/detail/impl/engine.ipp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/detail/impl/engine.ipp -+++ b/boost/asio/ssl/detail/impl/engine.ipp -@@ -203,23 +203,21 @@ const boost::system::error_code& engine::map_error_code( - // If there's data yet to be read, it's an error. - if (BIO_wpending(ext_bio_)) - { -- ec = boost::system::error_code( -- ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ), -- boost::asio::error::get_ssl_category()); -+ ec = boost::asio::ssl::error::stream_truncated; - return ec; - } - - // SSL v2 doesn't provide a protocol-level shutdown, so an eof on the - // underlying transport is passed through. -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - if (ssl_->version == SSL2_VERSION) - return ec; -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - - // Otherwise, the peer should have negotiated a proper shutdown. - if ((::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) == 0) - { -- ec = boost::system::error_code( -- ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ), -- boost::asio::error::get_ssl_category()); -+ ec = boost::asio::ssl::error::stream_truncated; - } - - return ec; -diff --git a/boost/asio/ssl/detail/impl/openssl_init.ipp b/boost/asio/ssl/detail/impl/openssl_init.ipp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/detail/impl/openssl_init.ipp -+++ b/boost/asio/ssl/detail/impl/openssl_init.ipp -@@ -40,11 +40,15 @@ public: - ::SSL_load_error_strings(); - ::OpenSSL_add_all_algorithms(); - -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - mutexes_.resize(::CRYPTO_num_locks()); - for (size_t i = 0; i < mutexes_.size(); ++i) - mutexes_[i].reset(new boost::asio::detail::mutex); - ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func); -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -+#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(&do_init::openssl_id_func); -+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - - #if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -@@ -61,20 +65,33 @@ public: - #endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -+#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(0); -+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::CRYPTO_set_locking_callback(0); - ::ERR_free_strings(); --#if (OPENSSL_VERSION_NUMBER >= 0x10000000L) -- ::ERR_remove_thread_state(NULL); --#else // (OPENSSL_VERSION_NUMBER >= 0x10000000L) -- ::ERR_remove_state(0); --#endif // (OPENSSL_VERSION_NUMBER >= 0x10000000L) - ::EVP_cleanup(); - ::CRYPTO_cleanup_all_ex_data(); -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -+#if (OPENSSL_VERSION_NUMBER < 0x10000000L) -+ ::ERR_remove_state(0); -+#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) -+ ::ERR_remove_thread_state(NULL); -+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) \ -+ && (OPENSSL_VERSION_NUMBER < 0x10100000L) -+ ::SSL_COMP_free_compression_methods(); -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) -+ // && (OPENSSL_VERSION_NUMBER < 0x10100000L) -+#if !defined(OPENSSL_IS_BORINGSSL) - ::CONF_modules_unload(1); --#if !defined(OPENSSL_NO_ENGINE) -+#endif // !defined(OPENSSL_IS_BORINGSSL) -+#if !defined(OPENSSL_NO_ENGINE) \ -+ && (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::ENGINE_cleanup(); - #endif // !defined(OPENSSL_NO_ENGINE) -+ // && (OPENSSL_VERSION_NUMBER < 0x10100000L) - } - - #if !defined(SSL_OP_NO_COMPRESSION) \ -@@ -87,19 +104,20 @@ public: - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - - private: -+#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - static unsigned long openssl_id_func() - { - #if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) - return ::GetCurrentThreadId(); - #else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) -- void* id = instance()->thread_id_; -- if (id == 0) -- instance()->thread_id_ = id = &id; // Ugh. -+ void* id = &errno; - BOOST_ASIO_ASSERT(sizeof(unsigned long) >= sizeof(void*)); - return reinterpret_cast(id); - #endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) - } -+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - static void openssl_locking_func(int mode, int n, - const char* /*file*/, int /*line*/) - { -@@ -112,11 +130,7 @@ private: - // Mutexes to be used in locking callbacks. - std::vector > mutexes_; -- --#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__) -- // The thread identifiers to be used by openssl. -- boost::asio::detail::tss_ptr thread_id_; --#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__) -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - - #if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -diff --git a/boost/asio/ssl/detail/openssl_types.hpp b/boost/asio/ssl/detail/openssl_types.hpp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/detail/openssl_types.hpp -+++ b/boost/asio/ssl/detail/openssl_types.hpp -@@ -21,7 +21,9 @@ - #if !defined(OPENSSL_NO_ENGINE) - # include - #endif // !defined(OPENSSL_NO_ENGINE) -+#include - #include -+#include - #include - #include - -diff --git a/boost/asio/ssl/error.hpp b/boost/asio/ssl/error.hpp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/error.hpp -+++ b/boost/asio/ssl/error.hpp -@@ -26,6 +26,7 @@ namespace error { - - enum ssl_errors - { -+ // Error numbers are those produced by openssl. - }; - - extern BOOST_ASIO_DECL -@@ -35,6 +36,29 @@ static const boost::system::error_category& ssl_category - = boost::asio::error::get_ssl_category(); - - } // namespace error -+namespace ssl { -+namespace error { -+ -+enum stream_errors -+{ -+#if defined(GENERATING_DOCUMENTATION) -+ /// The underlying stream closed before the ssl stream gracefully shut down. -+ stream_truncated -+#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) -+ stream_truncated = ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ) -+#else -+ stream_truncated = 1 -+#endif -+}; -+ -+extern BOOST_ASIO_DECL -+const boost::system::error_category& get_stream_category(); -+ -+static const boost::system::error_category& stream_category -+ = boost::asio::ssl::error::get_stream_category(); -+ -+} // namespace error -+} // namespace ssl - } // namespace asio - } // namespace boost - -@@ -46,6 +70,11 @@ template<> struct is_error_code_enum - static const bool value = true; - }; - -+template<> struct is_error_code_enum -+{ -+ static const bool value = true; -+}; -+ - } // namespace system - } // namespace boost - -@@ -60,6 +89,17 @@ inline boost::system::error_code make_error_code(ssl_errors e) - } - - } // namespace error -+namespace ssl { -+namespace error { -+ -+inline boost::system::error_code make_error_code(stream_errors e) -+{ -+ return boost::system::error_code( -+ static_cast(e), get_stream_category()); -+} -+ -+} // namespace error -+} // namespace ssl - } // namespace asio - } // namespace boost - -diff --git a/boost/asio/ssl/impl/context.ipp b/boost/asio/ssl/impl/context.ipp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/impl/context.ipp -+++ b/boost/asio/ssl/impl/context.ipp -@@ -71,7 +71,8 @@ context::context(context::method m) - - switch (m) - { --#if defined(OPENSSL_NO_SSL2) -+#if defined(OPENSSL_NO_SSL2) \ -+ || (OPENSSL_VERSION_NUMBER >= 0x10100000L) - case context::sslv2: - case context::sslv2_client: - case context::sslv2_server: -@@ -79,6 +80,7 @@ context::context(context::method m) - boost::asio::error::invalid_argument, "context"); - break; - #else // defined(OPENSSL_NO_SSL2) -+ // || (OPENSSL_VERSION_NUMBER >= 0x10100000L) - case context::sslv2: - handle_ = ::SSL_CTX_new(::SSLv2_method()); - break; -@@ -89,6 +91,7 @@ context::context(context::method m) - handle_ = ::SSL_CTX_new(::SSLv2_server_method()); - break; - #endif // defined(OPENSSL_NO_SSL2) -+ // || (OPENSSL_VERSION_NUMBER >= 0x10100000L) - #if defined(OPENSSL_NO_SSL3) - case context::sslv3: - case context::sslv3_client: -@@ -107,6 +110,7 @@ context::context(context::method m) - handle_ = ::SSL_CTX_new(::SSLv3_server_method()); - break; - #endif // defined(OPENSSL_NO_SSL3) -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - case context::tlsv1: - handle_ = ::SSL_CTX_new(::TLSv1_method()); - break; -@@ -116,6 +120,7 @@ context::context(context::method m) - case context::tlsv1_server: - handle_ = ::SSL_CTX_new(::TLSv1_server_method()); - break; -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - case context::sslv23: - handle_ = ::SSL_CTX_new(::SSLv23_method()); - break; -@@ -125,6 +130,7 @@ context::context(context::method m) - case context::sslv23_server: - handle_ = ::SSL_CTX_new(::SSLv23_server_method()); - break; -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - #if defined(SSL_TXT_TLSV1_1) - case context::tlsv11: - handle_ = ::SSL_CTX_new(::TLSv1_1_method()); -@@ -161,6 +167,23 @@ context::context(context::method m) - boost::asio::error::invalid_argument, "context"); - break; - #endif // defined(SSL_TXT_TLSV1_2) -+#else // (OPENSSL_VERSION_NUMBER < 0x10100000L) -+ case context::tlsv1: -+ case context::tlsv11: -+ case context::tlsv12: -+ handle_ = ::SSL_CTX_new(::TLS_method()); -+ break; -+ case context::tlsv1_client: -+ case context::tlsv11_client: -+ case context::tlsv12_client: -+ handle_ = ::SSL_CTX_new(::TLS_client_method()); -+ break; -+ case context::tlsv1_server: -+ case context::tlsv11_server: -+ case context::tlsv12_server: -+ handle_ = ::SSL_CTX_new(::TLS_server_method()); -+ break; -+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - default: - handle_ = ::SSL_CTX_new(0); - break; -@@ -205,13 +228,22 @@ context::~context() - { - if (handle_) - { -- if (handle_->default_passwd_callback_userdata) -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ void* cb_userdata = handle_->default_passwd_callback_userdata; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ if (cb_userdata) - { - detail::password_callback_base* callback = - static_cast( -- handle_->default_passwd_callback_userdata); -+ cb_userdata); - delete callback; -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - handle_->default_passwd_callback_userdata = 0; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - } - - if (SSL_CTX_get_app_data(handle_)) -@@ -546,10 +578,17 @@ boost::system::error_code context::use_certificate_chain( - bio_cleanup bio = { make_buffer_bio(chain) }; - if (bio.p) - { -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = handle_->default_passwd_callback; -+ void* cb_userdata = handle_->default_passwd_callback_userdata; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - x509_cleanup cert = { - ::PEM_read_bio_X509_AUX(bio.p, 0, -- handle_->default_passwd_callback, -- handle_->default_passwd_callback_userdata) }; -+ callback, -+ cb_userdata) }; - if (!cert.p) - { - ec = boost::system::error_code(ERR_R_PEM_LIB, -@@ -577,8 +616,8 @@ boost::system::error_code context::use_certificate_chain( - #endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) - - while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0, -- handle_->default_passwd_callback, -- handle_->default_passwd_callback_userdata)) -+ callback, -+ cb_userdata)) - { - if (!::SSL_CTX_add_extra_chain_cert(handle_, cacert)) - { -@@ -643,6 +682,14 @@ boost::system::error_code context::use_private_key( - { - ::ERR_clear_error(); - -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = handle_->default_passwd_callback; -+ void* cb_userdata = handle_->default_passwd_callback_userdata; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { -@@ -654,8 +701,8 @@ boost::system::error_code context::use_private_key( - break; - case context_base::pem: - evp_private_key.p = ::PEM_read_bio_PrivateKey( -- bio.p, 0, handle_->default_passwd_callback, -- handle_->default_passwd_callback_userdata); -+ bio.p, 0, callback, -+ cb_userdata); - break; - default: - { -@@ -702,6 +749,14 @@ boost::system::error_code context::use_rsa_private_key( - { - ::ERR_clear_error(); - -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); -+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ pem_password_cb* callback = handle_->default_passwd_callback; -+ void* cb_userdata = handle_->default_passwd_callback_userdata; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { -@@ -713,8 +768,8 @@ boost::system::error_code context::use_rsa_private_key( - break; - case context_base::pem: - rsa_private_key.p = ::PEM_read_bio_RSAPrivateKey( -- bio.p, 0, handle_->default_passwd_callback, -- handle_->default_passwd_callback_userdata); -+ bio.p, 0, callback, -+ cb_userdata); - break; - default: - { -@@ -933,11 +988,17 @@ int context::verify_callback_function(int preverified, X509_STORE_CTX* ctx) - boost::system::error_code context::do_set_password_callback( - detail::password_callback_base* callback, boost::system::error_code& ec) - { -- if (handle_->default_passwd_callback_userdata) -- delete static_cast( -- handle_->default_passwd_callback_userdata); -- -+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback); -+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ void* old_callback = handle_->default_passwd_callback_userdata; - handle_->default_passwd_callback_userdata = callback; -+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) -+ -+ if (old_callback) -+ delete static_cast( -+ old_callback); - - SSL_CTX_set_default_passwd_cb(handle_, &context::password_callback_function); - -diff --git a/boost/asio/ssl/impl/error.ipp b/boost/asio/ssl/impl/error.ipp -index 1111111..2222222 100644 ---- a/boost/asio/ssl/impl/error.ipp -+++ b/boost/asio/ssl/impl/error.ipp -@@ -24,7 +24,6 @@ - namespace boost { - namespace asio { - namespace error { -- - namespace detail { - - class ssl_category : public boost::system::error_category -@@ -51,6 +50,50 @@ const boost::system::error_category& get_ssl_category() - } - - } // namespace error -+namespace ssl { -+namespace error { -+ -+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) -+ -+const boost::system::error_category& get_stream_category() -+{ -+ return boost::asio::error::get_ssl_category(); -+} -+ -+#else -+ -+namespace detail { -+ -+class stream_category : public boost::system::error_category -+{ -+public: -+ const char* name() const BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT -+ { -+ return "asio.ssl.stream"; -+ } -+ -+ std::string message(int value) const -+ { -+ switch (value) -+ { -+ case stream_truncated: return "stream truncated"; -+ default: return "asio.ssl.stream error"; -+ } -+ } -+}; -+ -+} // namespace detail -+ -+const boost::system::error_category& get_stream_category() -+{ -+ static detail::stream_category instance; -+ return instance; -+} -+ -+#endif -+ -+} // namespace error -+} // namespace ssl - } // namespace asio - } // namespace boost - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Fri, 24 Jul 2015 18:50:28 +0100 -Subject: [PATCH 3/4] Remove depricated type_traits usage. - -curl -L 'https://patch-diff.githubusercontent.com/raw/boostorg/iostreams/pull/15.patch' | sed 's,include/,,g' | git am - -diff --git a/boost/iostreams/detail/is_dereferenceable.hpp b/boost/iostreams/detail/is_dereferenceable.hpp -index 1111111..2222222 100644 ---- a/boost/iostreams/detail/is_dereferenceable.hpp -+++ b/boost/iostreams/detail/is_dereferenceable.hpp -@@ -9,9 +9,8 @@ - #ifndef BOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED - #define BOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED - --# include --# include - # include -+# include - # include - # include - # include -@@ -69,17 +68,10 @@ namespace is_dereferenceable_ - # undef BOOST_comma - - template --struct is_dereferenceable -- BOOST_TT_AUX_BOOL_C_BASE(is_dereferenceable_::impl::value) --{ -- BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(is_dereferenceable_::impl::value) -- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_dereferenceable,(T)) --}; -+struct is_dereferenceable : public boost::integral_constant::value> {}; - - } } - --BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::boost::iostreams::detail::is_dereferenceable) -- - } // End namespaces detail, iostreams, boost. - - #endif // BOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tony Theodore -Date: Wed, 8 Apr 2020 00:37:10 +1000 -Subject: [PATCH 4/4] fix darwin build - - -diff --git a/tools/build/src/tools/darwin.jam b/tools/build/src/tools/darwin.jam -index 1111111..2222222 100644 ---- a/tools/build/src/tools/darwin.jam -+++ b/tools/build/src/tools/darwin.jam -@@ -135,12 +135,6 @@ rule init ( version ? : command * : options * : requirement * ) - - # - Set the toolset generic common options. - common.handle-options darwin : $(condition) : $(command) : $(options) ; -- -- # - GCC 4.0 and higher in Darwin does not have -fcoalesce-templates. -- if $(real-version) < "4.0.0" -- { -- flags darwin.compile.c++ OPTIONS $(condition) : -fcoalesce-templates ; -- } - # - GCC 4.2 and higher in Darwin does not have -Wno-long-double. - if $(real-version) < "4.2.0" - { diff --git a/src/boost-test.cpp b/src/boost-test.cpp index f4a9bad7..71702848 100644 --- a/src/boost-test.cpp +++ b/src/boost-test.cpp @@ -6,59 +6,9 @@ #include #include #include - -boost::thread_specific_ptr ptr; - -// https://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/context.html -#include -boost::context::fcontext_t fcm,fc1,fc2; - -void test_thread() -{ - if (ptr.get() == 0) { - ptr.reset(new int(0)); - } - std::cout << "Hello, World! from thread" << std::endl; -} - -void f1(intptr_t) -{ - std::cout<<"f1: entered"<