<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/db1145364631136657b3a77bae8cc5f8e2676575">https://github.com/macports/macports-ports/commit/db1145364631136657b3a77bae8cc5f8e2676575</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit db1145364631136657b3a77bae8cc5f8e2676575
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Fri Dec 13 16:30:23 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    boost171: patch for clang16+
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/69103
</span>---
 devel/boost171/Portfile                            |  4 +
 .../files/patch-boost-clang16-cpp17-compat.diff    | 97 ++++++++++++++++++++++
 2 files changed, 101 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/boost171/Portfile b/devel/boost171/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d133cf0fda9..9c993f1f050 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/boost171/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/boost171/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -98,6 +98,10 @@ patchfiles-append patch-clang_version.diff
</span> # both alone as well as +universal
 patchfiles-append patch-add-support-for-arm64.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Upstream fix to allow building Boost with Clang 16+. Included in versions v181+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/67324
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-boost-clang16-cpp17-compat.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc write_jam s {
     global worksrcpath
     set config [open ${worksrcpath}/user-config.jam a]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/boost171/files/patch-boost-clang16-cpp17-compat.diff b/devel/boost171/files/patch-boost-clang16-cpp17-compat.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d98fb2f9100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/boost171/files/patch-boost-clang16-cpp17-compat.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,97 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- boost/config/stdlib/libcpp.hpp.orig    2023-05-02 17:53:04.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ boost/config/stdlib/libcpp.hpp 2023-05-02 19:47:26.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,4 +166,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if _LIBCPP_VERSION >= 15000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Unary function is now deprecated in C++11 and later:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __cplusplus >= 201103L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define BOOST_NO_CXX98_FUNCTION_BASE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //  --- end ---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- boost/numeric/conversion/detail/int_float_mixture.hpp.orig     2023-03-02 21:34:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ boost/numeric/conversion/detail/int_float_mixture.hpp  2023-05-02 18:34:05.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,15 +16,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/int_float_mixture_enum.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/detail/meta.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "boost/mpl/integral_c.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "boost/type_traits/integral_constant.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace boost { namespace numeric { namespace convdetail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Integral Constants for 'IntFloatMixture'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_float>    int2float_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<int_float_mixture_enum, float_to_integral>    float2int_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<int_float_mixture_enum, float_to_float>       float2float_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<int_float_mixture_enum, integral_to_float>    int2float_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<int_float_mixture_enum, float_to_integral>    float2int_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<int_float_mixture_enum, float_to_float>       float2float_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Metafunction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- boost/numeric/conversion/detail/sign_mixture.hpp.orig  2023-03-02 21:34:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ boost/numeric/conversion/detail/sign_mixture.hpp       2023-05-02 18:35:21.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,15 +16,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/sign_mixture_enum.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/detail/meta.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "boost/mpl/integral_c.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "boost/type_traits/integral_constant.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace boost { namespace numeric { namespace convdetail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Integral Constants for 'SignMixture'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<sign_mixture_enum, signed_to_signed>     sig2sig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned>   sig2unsig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed>   unsig2sig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<sign_mixture_enum, signed_to_signed>     sig2sig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned>   sig2unsig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed>   unsig2sig_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Metafunction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- boost/numeric/conversion/detail/udt_builtin_mixture.hpp.orig   2023-03-02 21:34:55.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ boost/numeric/conversion/detail/udt_builtin_mixture.hpp        2023-05-02 18:36:25.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,15 +15,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "boost/numeric/conversion/detail/meta.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "boost/mpl/integral_c.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "boost/type_traits/integral_constant.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace boost { namespace numeric { namespace convdetail
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Integral Constants for 'UdtMixture'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt>     builtin2udt_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin>     udt2builtin_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt>         udt2udt_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt>     builtin2udt_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin>     udt2builtin_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt>         udt2udt_c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Metafunction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- boost/mpl/aux_/integral_wrapper.hpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ boost/mpl/aux_/integral_wrapper.hpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,7 +56,8 @@ struct AUX_WRAPPER_NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // while some other don't like 'value + 1' (Borland), and some don't like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // either
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || __clang_major__ >= 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
</span></pre><pre style='margin:0'>

</pre>