git: 8b109070f7a1 - main - devel/cbang: fix the build with clang 16
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 25 Jun 2023 20:58:11 UTC
The branch main has been updated by thierry:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8b109070f7a17b38b78a4c21b080d02650f9f65e
commit 8b109070f7a17b38b78a4c21b080d02650f9f65e
Author: Thierry Thomas <thierry@FreeBSD.org>
AuthorDate: 2023-06-25 20:53:26 +0000
Commit: Thierry Thomas <thierry@FreeBSD.org>
CommitDate: 2023-06-25 20:58:08 +0000
devel/cbang: fix the build with clang 16
Do not force clang 15, but apply a patch provided by dim@ for the first
error, and other patches from boost upstream, pointed out by dim@ in
https://github.com/CauldronDevelopmentLLC/cbang/issues/119#issuecomment-1606232478
PR: 271047
---
devel/cbang/Makefile | 13 ++----------
.../patch-src_boost_boost_container__hash_hash.hpp | 23 ++++++++++++++++++++++
...meric_conversion_detail_int__float__mixture.hpp | 23 ++++++++++++++++++++++
...ost_numeric_conversion_detail_sign__mixture.hpp | 23 ++++++++++++++++++++++
...ric_conversion_detail_udt__builtin__mixture.hpp | 23 ++++++++++++++++++++++
5 files changed, 94 insertions(+), 11 deletions(-)
diff --git a/devel/cbang/Makefile b/devel/cbang/Makefile
index 366723807e85..7fa4ead2f66e 100644
--- a/devel/cbang/Makefile
+++ b/devel/cbang/Makefile
@@ -36,6 +36,7 @@ MAKE_ARGS+= cc="${CC}" \
cxx="${CXX}" \
ccflags="${CCFLAGS}" \
cxxflags="${CXXFLAGS}" \
+ cxxstd="c++17" \
libpath="/lib" \
sharedlib=1 \
prefix="${STAGEDIR}${PREFIX}" \
@@ -51,16 +52,6 @@ PLIST_SUB= VER=${LIBVER}
TEST_WRKSRC= ${WRKSRC}/tests
DO_MAKE_TEST= ${SETENV} ${TEST_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${TEST_ARGS}
-.include <bsd.port.pre.mk>
-
-.if ${COMPILER_VERSION} >= 160
-# See https://github.com/CauldronDevelopmentLLC/cbang/issues/119
-BUILD_DEPENDS+= clang15:devel/llvm15
-CPP= clang-cpp15
-CC= clang15
-CXX= clang++15
-.endif
-
pre-configure:
${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \
${TEST_WRKSRC}/testHarness
@@ -82,4 +73,4 @@ post-install:
do-test:
(cd ${TEST_WRKSRC} && ${DO_MAKE_TEST} && ./testHarness)
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/cbang/files/patch-src_boost_boost_container__hash_hash.hpp b/devel/cbang/files/patch-src_boost_boost_container__hash_hash.hpp
new file mode 100644
index 000000000000..13713185011f
--- /dev/null
+++ b/devel/cbang/files/patch-src_boost_boost_container__hash_hash.hpp
@@ -0,0 +1,23 @@
+--- src/boost/boost/container_hash/hash.hpp.orig 2023-03-09 16:36:47 UTC
++++ src/boost/boost/container_hash/hash.hpp
+@@ -118,20 +118,12 @@ namespace boost
+ {
+ namespace hash_detail
+ {
+-#if defined(_HAS_AUTO_PTR_ETC) && !_HAS_AUTO_PTR_ETC
+ template <typename T>
+ struct hash_base
+ {
+ typedef T argument_type;
+ typedef std::size_t result_type;
+ };
+-#else
+-#pragma GCC diagnostic push
+-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+- template <typename T>
+- struct hash_base : std::unary_function<T, std::size_t> {};
+-#pragma GCC diagnostic pop
+-#endif
+
+ struct enable_hash_value { typedef std::size_t type; };
+
diff --git a/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_int__float__mixture.hpp b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_int__float__mixture.hpp
new file mode 100644
index 000000000000..0ed51bc4eab0
--- /dev/null
+++ b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_int__float__mixture.hpp
@@ -0,0 +1,23 @@
+--- src/boost/boost/numeric/conversion/detail/int_float_mixture.hpp.orig 2023-03-09 16:36:47 UTC
++++ src/boost/boost/numeric/conversion/detail/int_float_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/int_float_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'IntFloatMixture'
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ;
+
+ // Metafunction:
+ //
diff --git a/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_sign__mixture.hpp b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_sign__mixture.hpp
new file mode 100644
index 000000000000..7d5876ed2468
--- /dev/null
+++ b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_sign__mixture.hpp
@@ -0,0 +1,23 @@
+--- src/boost/boost/numeric/conversion/detail/sign_mixture.hpp.orig 2023-03-09 16:36:47 UTC
++++ src/boost/boost/numeric/conversion/detail/sign_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/sign_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'SignMixture'
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
+
+ // Metafunction:
+ //
diff --git a/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_udt__builtin__mixture.hpp b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_udt__builtin__mixture.hpp
new file mode 100644
index 000000000000..0683f76f2cdd
--- /dev/null
+++ b/devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_udt__builtin__mixture.hpp
@@ -0,0 +1,23 @@
+--- src/boost/boost/numeric/conversion/detail/udt_builtin_mixture.hpp.orig 2023-03-09 16:36:47 UTC
++++ src/boost/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
+@@ -15,15 +15,15 @@
+ #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'UdtMixture'
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
+
+ // Metafunction:
+ //