summaryrefslogtreecommitdiff
path: root/dev-libs/boost
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/boost')
-rw-r--r--dev-libs/boost/Manifest7
-rw-r--r--dev-libs/boost/boost-1.85.0-r1.ebuild5
-rw-r--r--dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch111
-rw-r--r--dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch29
-rw-r--r--dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch420
-rw-r--r--dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch52
-rw-r--r--dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch356
7 files changed, 979 insertions, 1 deletions
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 7e8cabf3dbad..af17b6b956cb 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -4,11 +4,16 @@ AUX boost-1.81.0-disable_icu_rpath.patch 577 BLAKE2B 0e8634a6a4594232238d03ed329
AUX boost-1.83.0-math-gcc14.patch 936 BLAKE2B 8cf731affa3684692b773ed4941240616a681f4af207fda746351920de12c198aae4a04872632f5ec630d57d2cb8ff7761502df929383977fc528f61678a4c3b SHA512 2d33a19a698e62cc5e2110a1f0e28782abc58cc8ed39fd2dcd9860c664239a51a819aa4c676563a79070b43a72ea898221ae23056c3e176f4a3a2c12bf07bdfc
AUX boost-1.84.0-signals2-patch1.patch 5250 BLAKE2B 6e620d8e9fe1dbd4b2dbf7aec8c1cc4bdd36935027e1648a3e51f3c11e31ebe13d8100dcdcc40009a4c356e87f0df01ad1ca38327b8926b5de230d81c322f4a8 SHA512 8ab253eb562587b7d796bc559934a1044b475698986f71d2a3c80d19758fd53eea213356a43dcb87861e198dfb0178f86ab7bbfc54d4e6e44092c1502dfec595
AUX boost-1.84.0-signals2-patch2.patch 783 BLAKE2B 76e989e7df011ecce99e5747ca73997f001d0e76e3453fe952f03b9b8adbcc1f5adbda2935c2a2761eef783e0317d56d36ab3bf63e11875466afa28507a09518 SHA512 4dc438ac7b19edb9640599add2859bd3dfdb58fa53e846c292e1c550e5737daa256d46e14d97ba8dc1e6ea01b0ad0d3075320211d4aba0a48048f0158004378f
+AUX boost-1.85.0-01-fix_unsupported_long_double_macros.patch 6216 BLAKE2B c989990e5b9f97f235360590b73cb83302c6da770915dd35263535d4e9f771bd5f06374494c5108d2ff81f6d8accad03170d5f8649c84f73c39c192be1d7c32f SHA512 68adae23662b696aa13e70996047c5339e4df7d7332623a93e8b6be67fc5ea50aa70068d55e4d68d32a960a07a166c0dc4dd6bd2505da5bd6c6b561c1f4a329c
+AUX boost-1.85.0-02-fix_unsupported_long_double_formats.patch 1491 BLAKE2B 2cbbbed801b69da536d79c2dbdcf2731462d2d9b3fbb6bc97abe628ee62b09f0721743c897eb4f96df48f5ca2a05c3d373b13333ab8ac028043ee0d8a0b2784d SHA512 eae6e1ac9da246eef0e1762db2e4542ccaa9972c7ceb6968ae405631b231e45b3635ea17671dfc71f2e1b7134811b673c6da867bfd09bd1b7a9c4f1e672f7556
+AUX boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch 13850 BLAKE2B b9ca28724959a803e201dea7192abdb35c82c542820b7af2099aa795b9b38307b84d51f1127394f8a728cc9dfd571f56420dd7f9445ad04cb8c13c11c78522ae SHA512 fe700a0953b6c0f3e8a7bd8742f90d28d340be47d7e1dda26a4d81c31bd7ebf9a1b282751687df82511ba941256e7d862bab8a784a4105a0d21d974c0cbf6ec0
+AUX boost-1.85.0-04-remove_cruft_codeblock.patch 1504 BLAKE2B 7e876d221690aa8d66ab1a5a05ab7acdc612f2cadc392da6c5ebd9130346c81d0f76568ee3492947de1698108890249144d7ef8f36850c5261bfdb373a156f8a SHA512 eaca3c1e88db7e56d46eb6a9e4abb0b6cf7671f7b0d9afac6a2440d4086f9fd1c9395bedd5dc42175ad55131b673bb587ce0334ab20448ef782574aeb31e9921
+AUX boost-1.85.0-05-fix_macro_name.patch 15312 BLAKE2B 2472e8bcbf63fdf3de1b6c26e0680f068f559f5b9ab59db5fce9505d07a8152766e7da2f2c8b5ae9671289dac8f22ca8395424a1384423ae7c4f05ec0bd1ac33 SHA512 d57e4d2f7a3f1a3fb0f0f280b980a76798ae82f0bfc5d54d9399ce1aa887a37bac945b476bb60cf3a9a3bcb85f7b1135a5a6e47f635274d06b1c971d35c72481
AUX boost-1.85.0-bcp-filesystem.patch 7299 BLAKE2B d2792ee52008955a6f4d233c0a130fe698df7d1e060e9a25a2c058fd7a1ba4c8f6b7a92af773183fa73b0511d7f85f5473d5f9cea1cd71ec08f2db92fa7bd09d SHA512 501f71fa1451af7699689c3befc477e6612612f11a3c33d350d680ce8c511ba9e6765e05aefa9608fe98eca0413a43755cf61fea1a4cd2d03ea0962f7884b452
AUX boost-1.85.0-container-aliasing.patch 15219 BLAKE2B 438e5cbeed4626b22172722a7173c215eb9f766e2b5c523d6a35ae6ae5f4c96ea8b8a7a346c716989d5e147f3c58a49368735c9709b2c5234815fbb036cdf7f8 SHA512 4130be6d83e9e19ddf42de2f12eaee906882f03d3487cb93c69b4ce7c4ec578d863f0900d1ad9654b30bdf99fc2e9623b4dcafc2bbaf6e52b1d9107ece201567
AUX boost-1.85.0-python-numpy-2.patch 986 BLAKE2B 5f4cd317c75f8eb3183f720ac76afeffeb4f1e2617f32a795a94d9db56c7c27cba7a1b2591f2f851223b85ce962293bf54733e0d3f830340d2ef174a869284ed SHA512 46b3831acbd89980abc8312d8ba0a991d9c8531f0f8b63f5218ef8920fcf18b1ff207748abef2f3753baf6ea0932dc0c4ef524daec7fb265f64e35c5335f7a96
DIST boost_1_84_0.tar.bz2 123110547 BLAKE2B a872ee00402be0383726020f4d13a7df6c2765c52eac2e09aab1604432931d26dd597503f5dcbbf788d7e7528d13c6d1dbfff1e85d22bf92c7828ef74cf2405d SHA512 5dfeb35198bb096e46cf9e131ef0334cb95bc0bf09f343f291b860b112598b3c36111bd8c232439c401a2b2fb832fa0c399a8d5b96afc60bd359dff070154497
DIST boost_1_85_0.tar.bz2 124015250 BLAKE2B dd72a9299cd78d2c260e1c94e28ba04daaa352f5bd023d99e43caa3540b1e0f8c09fc04b91f68db0ef8532e4a91fdef0b66a80bf0f9f838303bccaf0729bf581 SHA512 b4489813a4192b57626589457932338cfc47c4ec05c19b3a58b2d8df9e95f022ff2f5f452811ff82d1cec4fb0a490e991c8825bad0fb5a81318d07a8788d8ca0
EBUILD boost-1.84.0-r3.ebuild 11406 BLAKE2B d0534d67b863800cf37d7e848c69e8b360554dffa8b009959b5b91c85ff69c73e671ac94c07f1e03ae2d52b4ccf6d577526e7402d4f0c95ea93e9e2578444382 SHA512 415ad4e0844fa377fbdfaff5100c44889f30080507a4aa747c866d79bf7aed8b96224c1608cc896c24fe89b6d8c6ba3003adf7789dfb06567465a03254e46ca9
-EBUILD boost-1.85.0-r1.ebuild 11396 BLAKE2B 0832d797a3d8048ce75180466c328cd0098d38d2c43c1ef4e695ee58459a8ea25d6ae7bef16ae35162aca262a647eb669ac8afaa460c1fa29ce5d78c76064bce SHA512 63fb7fc0a5f902de91cd9f6fc7d8beebbd7a4f8a304b896069a99ae059293475e8974d7de27f601d6260c7a9a4b057653e975ab84728f9824eac13cd4e701878
+EBUILD boost-1.85.0-r1.ebuild 11741 BLAKE2B a61aa7beb0a959c70cfaf7353b9ccda128bf15a467152164ee94823b1536a4e072a371831c48bc791b7c8e3282ef309541dfe6194340ce769bc55585c8ba447c SHA512 6eb63a63c561b785f9bfc33469ecc4cdaedce00a116b54fa37debcdc6a3e49f8f90763f78a74933c9846b22799921672073cb330941804ba8cb84bf765f7c95a
MISC metadata.xml 9162 BLAKE2B c8df087c7fe1e4af3a59f21763777d3f1318aebcd524e077b6a93c374e0910ff31b1e73b8b4908130d63c2bb7d060348602cffd215648f09afd8015c782e2340 SHA512 3c45d74e046e0fd09f152fcfa7af942c9097e3ed91a0915a2541caad14a8b94b9faceccdbc74bf8aa7c8f7b383db7e91e09babba9c2c28fd7855a7b809616839
diff --git a/dev-libs/boost/boost-1.85.0-r1.ebuild b/dev-libs/boost/boost-1.85.0-r1.ebuild
index 0b18f5140d5c..db7aaf2052ea 100644
--- a/dev-libs/boost/boost-1.85.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.85.0-r1.ebuild
@@ -55,6 +55,11 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.85.0-bcp-filesystem.patch
"${FILESDIR}"/${PN}-1.85.0-python-numpy-2.patch
"${FILESDIR}"/${PN}-1.85.0-container-aliasing.patch
+ "${FILESDIR}"/${PN}-1.85.0-01-fix_unsupported_long_double_macros.patch
+ "${FILESDIR}"/${PN}-1.85.0-02-fix_unsupported_long_double_formats.patch
+ "${FILESDIR}"/${PN}-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
+ "${FILESDIR}"/${PN}-1.85.0-04-remove_cruft_codeblock.patch
+ "${FILESDIR}"/${PN}-1.85.0-05-fix_macro_name.patch
)
create_user-config.jam() {
diff --git a/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch b/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
new file mode 100644
index 000000000000..58387c211b44
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
@@ -0,0 +1,111 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/detail/bit_layouts.hpp
++++ b/boost/charconv/detail/bit_layouts.hpp
+@@ -107,6 +107,7 @@ struct IEEEl2bits
+
+ #else // Unsupported long double representation
+ # define BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++# define BOOST_CHARCONV_LDBL_BITS -1
+ #endif
+
+ struct IEEEbinary128
+--- a/boost/charconv/from_chars.hpp
++++ b/boost/charconv/from_chars.hpp
+@@ -139,7 +139,10 @@ BOOST_CHARCONV_GCC5_CONSTEXPR from_chars_result from_chars(boost::core::string_v
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -164,7 +167,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -193,7 +199,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -216,7 +225,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char*
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept;
+--- a/libs/charconv/src/from_chars.cpp
++++ b/libs/charconv/src/from_chars.cpp
+@@ -205,7 +205,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char
+ return r;
+ }
+
+-#else
++#elif !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+@@ -299,10 +299,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::cor
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept
+@@ -372,10 +374,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, __float128& value, boost::charconv::chars_format fmt) noexcept
+@@ -429,10 +433,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::stri
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch b/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch
new file mode 100644
index 000000000000..59a007907be6
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch
@@ -0,0 +1,29 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/to_chars.hpp
++++ b/boost/charconv/to_chars.hpp
+@@ -81,15 +81,21 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float value,
+ chars_format fmt, int precision) noexcept;
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt, int precision) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt, int precision) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, __float128 value,
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch b/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
new file mode 100644
index 000000000000..fc7a3e5b6aa5
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
@@ -0,0 +1,420 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/libs/charconv/test/from_chars_float.cpp
++++ b/libs/charconv/test/from_chars_float.cpp
+@@ -440,6 +440,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+9999", HUGE_VAL);
+ overflow_spot_value("-1.0e+9999", -HUGE_VAL);
+ }
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ else
+ {
+ overflow_spot_value("1e99999", HUGE_VALL);
+@@ -447,6 +448,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+99999", HUGE_VALL);
+ overflow_spot_value("-1.0e+99999", -HUGE_VALL);
+ }
++ #endif
+
+ overflow_spot_value("1e-99999", static_cast<T>(0.0L));
+ overflow_spot_value("-1.0e-99999", static_cast<T>(-0.0L));
+@@ -530,20 +532,22 @@ int main()
+ odd_strings_test<float>();
+ odd_strings_test<double>();
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ simple_integer_test<long double>();
+ simple_hex_integer_test<long double>();
+ simple_scientific_test<long double>();
+ simple_hex_scientific_test<long double>();
++ zero_test<long double>();
++ test_issue_37<long double>();
++ #endif
+
+ zero_test<float>();
+ zero_test<double>();
+- zero_test<long double>();
+
+ boost_json_test<double>();
+
+ test_issue_37<float>();
+ test_issue_37<double>();
+- test_issue_37<long double>();
+
+ test_issue_45<double>(static_cast<double>(-4109895455460520.5), "-4109895455460520.513430", 19);
+ test_issue_45<double>(1.035695536657502e-308, "1.0356955366575023e-3087", 23);
+@@ -1846,40 +1850,29 @@ int main()
+ spot_check_nan<float>("-nan", fmt);
+ spot_check_nan<double>("nan", fmt);
+ spot_check_nan<double>("-nan", fmt);
+- spot_check_nan<long double>("nan", fmt);
+- spot_check_nan<long double>("-nan", fmt);
+
+ spot_check_inf<float>("inf", fmt);
+ spot_check_inf<float>("-inf", fmt);
+ spot_check_inf<double>("inf", fmt);
+ spot_check_inf<double>("-inf", fmt);
+- spot_check_inf<long double>("inf", fmt);
+- spot_check_inf<long double>("-inf", fmt);
+
+ spot_check_nan<float>("NAN", fmt);
+ spot_check_nan<float>("-NAN", fmt);
+ spot_check_nan<double>("NAN", fmt);
+ spot_check_nan<double>("-NAN", fmt);
+- spot_check_nan<long double>("NAN", fmt);
+- spot_check_nan<long double>("-NAN", fmt);
+
+ spot_check_inf<float>("INF", fmt);
+ spot_check_inf<float>("-INF", fmt);
+ spot_check_inf<double>("INF", fmt);
+ spot_check_inf<double>("-INF", fmt);
+- spot_check_inf<long double>("INF", fmt);
+- spot_check_inf<long double>("-INF", fmt);
+
+ spot_check_nan<float>("nan(snan)", fmt);
+ spot_check_nan<float>("-nan(snan)", fmt);
+ spot_check_nan<double>("nan(snan)", fmt);
+ spot_check_nan<double>("-nan(snan)", fmt);
+- spot_check_nan<long double>("nan(snan)", fmt);
+- spot_check_nan<long double>("-nan(snan)", fmt);
+
+ spot_check_nan<float>("-nan(ind)", fmt);
+ spot_check_nan<double>("-nan(ind)", fmt);
+- spot_check_nan<long double>("-nan(ind)", fmt);
+
+ spot_check_invalid_argument<float>("na7", fmt);
+ spot_check_invalid_argument<float>("na", fmt);
+@@ -1889,8 +1882,22 @@ int main()
+ spot_check_invalid_argument<float>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ spot_check_nan<long double>("nan", fmt);
++ spot_check_nan<long double>("-nan", fmt);
++ spot_check_inf<long double>("inf", fmt);
++ spot_check_inf<long double>("-inf", fmt);
++ spot_check_nan<long double>("NAN", fmt);
++ spot_check_nan<long double>("-NAN", fmt);
++ spot_check_inf<long double>("INF", fmt);
++ spot_check_inf<long double>("-INF", fmt);
++ spot_check_nan<long double>("nan(snan)", fmt);
++ spot_check_nan<long double>("-nan(snan)", fmt);
++ spot_check_nan<long double>("-nan(ind)", fmt);
+ spot_check_invalid_argument<long double>(" 1.23", fmt);
+ spot_check_invalid_argument<long double>(" 1.23", fmt);
++ #endif
+ }
+
+ return boost::report_errors();
+--- a/libs/charconv/test/from_chars_string_view.cpp
++++ b/libs/charconv/test/from_chars_string_view.cpp
+@@ -116,17 +116,23 @@ int main()
+
+ test_float<float>();
+ test_float<double>();
+- test_float<long double>();
+
+ test_float<float, std::string>();
+ test_float<double, std::string>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ test_float<long double>();
+ test_float<long double, std::string>();
++ #endif
+
+ #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
+
+ test_float<float, std::string_view>();
+ test_float<double, std::string_view>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double, std::string_view>();
++ #endif
+
+ #endif
+
+--- a/libs/charconv/test/github_issue_110.cpp
++++ b/libs/charconv/test/github_issue_110.cpp
+@@ -42,7 +42,10 @@ int main()
+ {
+ test<float>();
+ test<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ test<__float128>();
+--- a/libs/charconv/test/github_issue_122.cpp
++++ b/libs/charconv/test/github_issue_122.cpp
+@@ -52,7 +52,10 @@ int main()
+ {
+ test<float>();
+ test<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/github_issue_152.cpp
++++ b/libs/charconv/test/github_issue_152.cpp
+@@ -188,7 +188,6 @@ int main()
+ {
+ test_non_finite<float>();
+ test_non_finite<double>();
+- test_non_finite<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT16
+ test_non_finite<std::float16_t>();
+ #endif
+@@ -204,7 +203,6 @@ int main()
+
+ test_non_finite_fixed_precision<float>();
+ test_non_finite_fixed_precision<double>();
+- test_non_finite_fixed_precision<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT16
+ test_non_finite_fixed_precision<std::float16_t>();
+ #endif
+@@ -220,7 +218,6 @@ int main()
+
+ test_min_buffer_size<float>();
+ test_min_buffer_size<double>();
+- test_min_buffer_size<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT32
+ test_min_buffer_size<std::float32_t>();
+ #endif
+@@ -232,5 +229,11 @@ int main()
+ test_failed_values();
+ #endif
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ test_non_finite<long double>();
++ test_non_finite_fixed_precision<long double>();
++ test_min_buffer_size<long double>();
++ #endif
++
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/github_issue_158.cpp
++++ b/libs/charconv/test/github_issue_158.cpp
+@@ -93,6 +93,7 @@ void test_values_with_negative_exp()
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000000099999999999999990753745222790");
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_negative_exp()
+ {
+ char buffer[256];
+@@ -126,6 +127,7 @@ void test_long_double_with_negative_exp()
+ // BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000999999999999999999997135886174218");
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000001000000000000000000000000000000000");
+ }
++#endif
+
+ void test_values_with_positive_exp()
+ {
+@@ -407,6 +409,7 @@ void test_zero()
+ BOOST_TEST_CSTR_EQ(buffer, "0");
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_positive_exp()
+ {
+ char buffer[256];
+@@ -438,6 +441,7 @@ void test_long_double_with_positive_exp()
+ BOOST_TEST(res);
+ BOOST_TEST_CSTR_EQ(buffer, "100000000000000000.00000000000000000000000000000000000000000000000000");
+ }
++#endif
+
+ template <typename T>
+ void test_spot_value(T value, int precision, const char* result, boost::charconv::chars_format fmt = boost::charconv::chars_format::fixed)
+--- a/libs/charconv/test/limits.cpp
++++ b/libs/charconv/test/limits.cpp
+@@ -227,7 +227,10 @@ int main()
+
+ test_floating_point<float>();
+ test_floating_point<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_floating_point<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/limits_link_1.cpp
++++ b/libs/charconv/test/limits_link_1.cpp
+@@ -3,6 +3,7 @@
+ // https://www.boost.org/LICENSE_1_0.txt
+
+ #include <boost/charconv/limits.hpp>
++#include <boost/charconv/detail/bit_layouts.hpp>
+
+ void test_odr_use( int const* );
+
+@@ -28,7 +29,9 @@ void f1()
+
+ test<float>();
+ test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/limits_link_2.cpp
++++ b/libs/charconv/test/limits_link_2.cpp
+@@ -3,6 +3,7 @@
+ // https://www.boost.org/LICENSE_1_0.txt
+
+ #include <boost/charconv/limits.hpp>
++#include <boost/charconv/detail/bit_layouts.hpp>
+
+ void test_odr_use( int const* );
+
+@@ -28,7 +29,9 @@ void f2()
+
+ test<float>();
+ test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/roundtrip.cpp
++++ b/libs/charconv/test/roundtrip.cpp
+@@ -347,6 +347,7 @@ template<typename FPType> int64_t Distance(FPType y, FPType x)
+ return ToOrdinal(y) - ToOrdinal(x);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ template <> void test_roundtrip<long double>(long double value)
+ {
+ char buffer[ 256 ];
+@@ -381,6 +382,7 @@ template <> void test_roundtrip<long double>(long double value)
+ // LCOV_EXCL_STOP
+ }
+ }
++#endif
+
+ // floating point types, boundary values
+
+@@ -601,7 +603,7 @@ int main()
+ #endif
+
+ // long double
+- #if !(BOOST_CHARCONV_LDBL_BITS == 128)
++ #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+
+ {
+ long double const ql = std::pow( 1.0L, -64 );
+--- a/libs/charconv/test/to_chars_float.cpp
++++ b/libs/charconv/test/to_chars_float.cpp
+@@ -202,7 +202,7 @@ int main()
+ non_finite_values<double>(boost::charconv::chars_format::hex, 2);
+
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484
+- #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__))
++ #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+ non_finite_values<long double>();
+ #endif
+
+--- a/libs/charconv/test/to_chars_float_STL_comp.cpp
++++ b/libs/charconv/test/to_chars_float_STL_comp.cpp
+@@ -212,7 +212,10 @@ int main()
+ // General format
+ random_test<float>();
+ random_test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>();
++ #endif
++
+ test_spot<double>(0.0);
+ test_spot<double>(-0.0);
+
+@@ -224,7 +227,9 @@ int main()
+ // Scientific
+ random_test<float>(boost::charconv::chars_format::scientific);
+ random_test<double>(boost::charconv::chars_format::scientific);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::scientific);
++ #endif
+ test_spot<double>(0.0, boost::charconv::chars_format::scientific);
+ test_spot<double>(-0.0, boost::charconv::chars_format::scientific);
+
+@@ -237,14 +242,20 @@ int main()
+ // Hex
+ random_test<float>(boost::charconv::chars_format::hex);
+ random_test<double>(boost::charconv::chars_format::hex);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex);
++ #endif
+
+ #if !defined(_LIBCPP_VERSION)
++
+ random_test<float>(boost::charconv::chars_format::hex, -1e5F, 1e5F);
+ random_test<double>(boost::charconv::chars_format::hex, -1e5, 1e5);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex, -1e5L, 1e5L);
+ #endif
+
++ #endif
++
+ test_spot<double>(-9.52743282403084637e+306, boost::charconv::chars_format::hex);
+ test_spot<double>(-9.52743282403084637e-306, boost::charconv::chars_format::hex);
+ test_spot<double>(-9.52743282403084637e+305, boost::charconv::chars_format::hex);
+@@ -261,13 +272,16 @@ int main()
+ // Various non-finite values
+ non_finite_test<float>();
+ non_finite_test<double>();
+- non_finite_test<long double>();
+ non_finite_test<float>(boost::charconv::chars_format::scientific);
+ non_finite_test<double>(boost::charconv::chars_format::scientific);
+- non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<float>(boost::charconv::chars_format::hex);
+ non_finite_test<double>(boost::charconv::chars_format::hex);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ non_finite_test<long double>();
++ non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<long double>(boost::charconv::chars_format::hex);
++ #endif
+
+ #if (defined(__GNUC__) && __GNUC__ >= 11) || (defined(_MSC_VER) && _MSC_VER >= 1924)
+ // Selected additional values
+@@ -288,7 +302,10 @@ int main()
+ // Reported in issue #93
+ test_spot<float>(3.3F);
+ test_spot<double>(3.3);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_spot<long double>(3.3L);
++ #endif
+
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/to_chars_sprintf.cpp
++++ b/libs/charconv/test/to_chars_sprintf.cpp
+@@ -627,6 +627,7 @@ int main()
+
+ // long double
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ {
+ for( int i = 0; i < N; ++i )
+ {
+@@ -665,6 +666,7 @@ int main()
+
+ test_sprintf_bv_fp<long double>();
+ }
++ #endif
+
+ return boost::report_errors();
+ }
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch b/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch
new file mode 100644
index 000000000000..8d91e5f41746
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch
@@ -0,0 +1,52 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/libs/charconv/src/to_chars.cpp
++++ b/libs/charconv/src/to_chars.cpp
+@@ -620,44 +620,6 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la
+ return boost::charconv::detail::to_chars_float_impl(first, last, value, fmt, precision);
+ }
+
+-#else
+-
+-boost::charconv::to_chars_result boost::charconv::to_chars( char* first, char* last, long double value,
+- boost::charconv::chars_format fmt, int precision) noexcept
+-{
+- if (std::isnan(value))
+- {
+- bool is_negative = false;
+- if (std::signbit(value))
+- {
+- is_negative = true;
+- *first++ = '-';
+- }
+-
+- if (issignaling(value))
+- {
+- std::memcpy(first, "nan(snan)", 9);
+- return { first + 9 + static_cast<int>(is_negative), std::errc() };
+- }
+- else
+- {
+- if (is_negative)
+- {
+- std::memcpy(first, "nan(ind)", 8);
+- return { first + 9, std::errc() };
+- }
+- else
+- {
+- std::memcpy(first, "nan", 3);
+- return { first + 3, std::errc() };
+- }
+- }
+- }
+-
+- // Fallback to printf
+- return boost::charconv::detail::to_chars_printf_impl(first, last, value, fmt, precision);
+-}
+-
+ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch b/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch
new file mode 100644
index 000000000000..69899ae3b850
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch
@@ -0,0 +1,356 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/detail/bit_layouts.hpp
++++ b/boost/charconv/detail/bit_layouts.hpp
+@@ -106,7 +106,7 @@ struct IEEEl2bits
+ #define BOOST_CHARCONV_LDBL_BITS 64
+
+ #else // Unsupported long double representation
+-# define BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++# define BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ # define BOOST_CHARCONV_LDBL_BITS -1
+ #endif
+
+--- a/boost/charconv/from_chars.hpp
++++ b/boost/charconv/from_chars.hpp
+@@ -140,7 +140,7 @@ BOOST_CHARCONV_GCC5_CONSTEXPR from_chars_result from_chars(boost::core::string_v
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -168,7 +168,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -200,7 +200,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -226,7 +226,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char*
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+--- a/boost/charconv/to_chars.hpp
++++ b/boost/charconv/to_chars.hpp
+@@ -82,7 +82,7 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt = chars_format::general) noexcept;
+ #endif
+@@ -92,7 +92,7 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt, int precision) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt, int precision) noexcept;
+ #endif
+--- a/libs/charconv/src/from_chars.cpp
++++ b/libs/charconv/src/from_chars.cpp
+@@ -205,7 +205,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char
+ return r;
+ }
+
+-#elif !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+@@ -299,7 +299,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::cor
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+@@ -374,7 +374,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(first, last, value, fmt);
+@@ -433,7 +433,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::stri
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+--- a/libs/charconv/src/to_chars.cpp
++++ b/libs/charconv/src/to_chars.cpp
+@@ -601,7 +601,7 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la
+ return boost::charconv::detail::to_chars_float_impl(first, last, static_cast<double>(value), fmt, precision);
+ }
+
+-#elif (BOOST_CHARCONV_LDBL_BITS == 80 || BOOST_CHARCONV_LDBL_BITS == 128)
++#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* last, long double value,
+ boost::charconv::chars_format fmt) noexcept
+--- a/libs/charconv/test/from_chars_float.cpp
++++ b/libs/charconv/test/from_chars_float.cpp
+@@ -440,7 +440,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+9999", HUGE_VAL);
+ overflow_spot_value("-1.0e+9999", -HUGE_VAL);
+ }
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ else
+ {
+ overflow_spot_value("1e99999", HUGE_VALL);
+@@ -532,7 +532,7 @@ int main()
+ odd_strings_test<float>();
+ odd_strings_test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ simple_integer_test<long double>();
+ simple_hex_integer_test<long double>();
+ simple_scientific_test<long double>();
+@@ -1883,7 +1883,7 @@ int main()
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ spot_check_nan<long double>("nan", fmt);
+ spot_check_nan<long double>("-nan", fmt);
+ spot_check_inf<long double>("inf", fmt);
+--- a/libs/charconv/test/from_chars_string_view.cpp
++++ b/libs/charconv/test/from_chars_string_view.cpp
+@@ -120,7 +120,7 @@ int main()
+ test_float<float, std::string>();
+ test_float<double, std::string>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double>();
+ test_float<long double, std::string>();
+ #endif
+@@ -130,7 +130,7 @@ int main()
+ test_float<float, std::string_view>();
+ test_float<double, std::string_view>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double, std::string_view>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_110.cpp
++++ b/libs/charconv/test/github_issue_110.cpp
+@@ -43,7 +43,7 @@ int main()
+ test<float>();
+ test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_122.cpp
++++ b/libs/charconv/test/github_issue_122.cpp
+@@ -53,7 +53,7 @@ int main()
+ test<float>();
+ test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_152.cpp
++++ b/libs/charconv/test/github_issue_152.cpp
+@@ -229,7 +229,7 @@ int main()
+ test_failed_values();
+ #endif
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_non_finite<long double>();
+ test_non_finite_fixed_precision<long double>();
+ test_min_buffer_size<long double>();
+--- a/libs/charconv/test/github_issue_158.cpp
++++ b/libs/charconv/test/github_issue_158.cpp
+@@ -93,7 +93,7 @@ void test_values_with_negative_exp()
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000000099999999999999990753745222790");
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_negative_exp()
+ {
+ char buffer[256];
+@@ -409,7 +409,7 @@ void test_zero()
+ BOOST_TEST_CSTR_EQ(buffer, "0");
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_positive_exp()
+ {
+ char buffer[256];
+--- a/libs/charconv/test/limits.cpp
++++ b/libs/charconv/test/limits.cpp
+@@ -228,7 +228,7 @@ int main()
+ test_floating_point<float>();
+ test_floating_point<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_floating_point<long double>();
+ #endif
+
+--- a/libs/charconv/test/limits_link_1.cpp
++++ b/libs/charconv/test/limits_link_1.cpp
+@@ -29,7 +29,7 @@ void f1()
+
+ test<float>();
+ test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/limits_link_2.cpp
++++ b/libs/charconv/test/limits_link_2.cpp
+@@ -29,7 +29,7 @@ void f2()
+
+ test<float>();
+ test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/roundtrip.cpp
++++ b/libs/charconv/test/roundtrip.cpp
+@@ -347,7 +347,7 @@ template<typename FPType> int64_t Distance(FPType y, FPType x)
+ return ToOrdinal(y) - ToOrdinal(x);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ template <> void test_roundtrip<long double>(long double value)
+ {
+ char buffer[ 256 ];
+@@ -603,7 +603,7 @@ int main()
+ #endif
+
+ // long double
+- #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++ #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ {
+ long double const ql = std::pow( 1.0L, -64 );
+--- a/libs/charconv/test/to_chars_float.cpp
++++ b/libs/charconv/test/to_chars_float.cpp
+@@ -202,7 +202,7 @@ int main()
+ non_finite_values<double>(boost::charconv::chars_format::hex, 2);
+
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484
+- #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++ #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+ non_finite_values<long double>();
+ #endif
+
+--- a/libs/charconv/test/to_chars_float_STL_comp.cpp
++++ b/libs/charconv/test/to_chars_float_STL_comp.cpp
+@@ -212,7 +212,7 @@ int main()
+ // General format
+ random_test<float>();
+ random_test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>();
+ #endif
+
+@@ -227,7 +227,7 @@ int main()
+ // Scientific
+ random_test<float>(boost::charconv::chars_format::scientific);
+ random_test<double>(boost::charconv::chars_format::scientific);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::scientific);
+ #endif
+ test_spot<double>(0.0, boost::charconv::chars_format::scientific);
+@@ -242,7 +242,7 @@ int main()
+ // Hex
+ random_test<float>(boost::charconv::chars_format::hex);
+ random_test<double>(boost::charconv::chars_format::hex);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex);
+ #endif
+
+@@ -250,7 +250,7 @@ int main()
+
+ random_test<float>(boost::charconv::chars_format::hex, -1e5F, 1e5F);
+ random_test<double>(boost::charconv::chars_format::hex, -1e5, 1e5);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex, -1e5L, 1e5L);
+ #endif
+
+@@ -277,7 +277,7 @@ int main()
+ non_finite_test<float>(boost::charconv::chars_format::hex);
+ non_finite_test<double>(boost::charconv::chars_format::hex);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ non_finite_test<long double>();
+ non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<long double>(boost::charconv::chars_format::hex);
+@@ -303,7 +303,7 @@ int main()
+ test_spot<float>(3.3F);
+ test_spot<double>(3.3);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_spot<long double>(3.3L);
+ #endif
+
+--- a/libs/charconv/test/to_chars_sprintf.cpp
++++ b/libs/charconv/test/to_chars_sprintf.cpp
+@@ -627,7 +627,7 @@ int main()
+
+ // long double
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ {
+ for( int i = 0; i < N; ++i )
+ {
+--
+2.45.2
+