From 8b109070f7a17b38b78a4c21b080d02650f9f65e Mon Sep 17 00:00:00 2001 From: Thierry Thomas Date: Sun, 25 Jun 2023 22:53:26 +0200 Subject: [PATCH] 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 ++--------- ...h-src_boost_boost_container__hash_hash.hpp | 23 +++++++++++++++++++ ..._conversion_detail_int__float__mixture.hpp | 23 +++++++++++++++++++ ...umeric_conversion_detail_sign__mixture.hpp | 23 +++++++++++++++++++ ...onversion_detail_udt__builtin__mixture.hpp | 23 +++++++++++++++++++ 5 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 devel/cbang/files/patch-src_boost_boost_container__hash_hash.hpp create mode 100644 devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_int__float__mixture.hpp create mode 100644 devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_sign__mixture.hpp create mode 100644 devel/cbang/files/patch-src_boost_boost_numeric_conversion_detail_udt__builtin__mixture.hpp diff --git a/devel/cbang/Makefile b/devel/cbang/Makefile index 366723807e858..7fa4ead2f66e2 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 - -.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 +.include 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 0000000000000..13713185011fc --- /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 + 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 +- struct hash_base : std::unary_function {}; +-#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 0000000000000..0ed51bc4eab0f --- /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 int2int_c ; +- typedef mpl::integral_c int2float_c ; +- typedef mpl::integral_c float2int_c ; +- typedef mpl::integral_c float2float_c ; ++ typedef boost::integral_constant int2int_c ; ++ typedef boost::integral_constant int2float_c ; ++ typedef boost::integral_constant float2int_c ; ++ typedef boost::integral_constant 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 0000000000000..7d5876ed2468c --- /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 unsig2unsig_c ; +- typedef mpl::integral_c sig2sig_c ; +- typedef mpl::integral_c sig2unsig_c ; +- typedef mpl::integral_c unsig2sig_c ; ++ typedef boost::integral_constant unsig2unsig_c ; ++ typedef boost::integral_constant sig2sig_c ; ++ typedef boost::integral_constant sig2unsig_c ; ++ typedef boost::integral_constant 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 0000000000000..0683f76f2cdd1 --- /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 builtin2builtin_c ; +- typedef mpl::integral_c builtin2udt_c ; +- typedef mpl::integral_c udt2builtin_c ; +- typedef mpl::integral_c udt2udt_c ; ++ typedef boost::integral_constant builtin2builtin_c ; ++ typedef boost::integral_constant builtin2udt_c ; ++ typedef boost::integral_constant udt2builtin_c ; ++ typedef boost::integral_constant udt2udt_c ; + + // Metafunction: + //