Skip to content

Commit

Permalink
devel/cbang: fix the build with clang 16
Browse files Browse the repository at this point in the history
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
CauldronDevelopmentLLC/cbang#119 (comment)

PR:		271047
  • Loading branch information
thierry-FreeBSD committed Jun 25, 2023
1 parent 6bef86a commit 8b10907
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 11 deletions.
13 changes: 2 additions & 11 deletions devel/cbang/Makefile
Expand Up @@ -36,6 +36,7 @@ MAKE_ARGS+= cc="${CC}" \
cxx="${CXX}" \
ccflags="${CCFLAGS}" \
cxxflags="${CXXFLAGS}" \
cxxstd="c++17" \
libpath="/lib" \
sharedlib=1 \
prefix="${STAGEDIR}${PREFIX}" \
Expand All @@ -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
Expand All @@ -82,4 +73,4 @@ post-install:
do-test:
(cd ${TEST_WRKSRC} && ${DO_MAKE_TEST} && ./testHarness)

.include <bsd.port.post.mk>
.include <bsd.port.mk>
23 changes: 23 additions & 0 deletions 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; };

@@ -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:
//
@@ -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:
//
@@ -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:
//

0 comments on commit 8b10907

Please sign in to comment.