diff --git a/feed/history/boost_1_80_0.qbk b/feed/history/boost_1_80_0.qbk index e194bc49..9b4be007 100644 --- a/feed/history/boost_1_80_0.qbk +++ b/feed/history/boost_1_80_0.qbk @@ -38,6 +38,8 @@ in the release. * Unordered * Containers are not in a valid state after moving, see [github unordered 139]. [@/patches/1_80_0/0003-unordered-valid-after-move.patch Patch]. + * Fix MSVC /RTCc build runtime failures. + [@/patches/1_80_0/0006-unordered-msvc-rtcc.patch Patch]. [endsect] diff --git a/patches/1_80_0/0006-unordered-msvc-rtcc.patch b/patches/1_80_0/0006-unordered-msvc-rtcc.patch new file mode 100644 index 00000000..1bf17ffa --- /dev/null +++ b/patches/1_80_0/0006-unordered-msvc-rtcc.patch @@ -0,0 +1,19 @@ +diff -ur boost_1_80_0/boost/unordered/detail/prime_fmod.hpp boost_1_80_1/boost/unordered/detail/prime_fmod.hpp +--- boost_1_80_0/boost/unordered/detail/prime_fmod.hpp 2022-08-03 22:47:16.000000000 -0400 ++++ boost_1_80_1/boost/unordered/detail/prime_fmod.hpp 2022-12-14 01:45:27.368620146 -0500 +@@ -117,9 +117,15 @@ + #if defined(BOOST_UNORDERED_FCA_HAS_64B_SIZE_T) + std::size_t sizes_under_32bit = inv_sizes32_len; + if (BOOST_LIKELY(size_index < sizes_under_32bit)) { ++#if defined(__MSVC_RUNTIME_CHECKS) ++ return fast_modulo( ++ boost::uint32_t(hash & 0xffffffffu) + boost::uint32_t(hash >> 32), ++ inv_sizes32[size_index], boost::uint32_t(sizes[size_index])); ++#else + return fast_modulo( + boost::uint32_t(hash) + boost::uint32_t(hash >> 32), + inv_sizes32[size_index], boost::uint32_t(sizes[size_index])); ++#endif + } else { + return positions[size_index - sizes_under_32bit](hash); + } diff --git a/patches/index.html b/patches/index.html index 383f4b54..b642255e 100644 --- a/patches/index.html +++ b/patches/index.html @@ -41,6 +41,7 @@ https://www.boost.org/development/website_updating.html
  • 0003-unordered-valid-after-move.patch
  • 0004-filesystem-posix-fix-no-at-apis-missing-include.patch
  • 0005-config-libcpp15.patch
  • +
  • 0006-unordered-msvc-rtcc.patch
  • 1.79.0