Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jul 2018 23:14:45 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r474652 - head/net-p2p/qtum
Message-ID:  <201807142314.w6ENEjjp029895@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Sat Jul 14 23:14:45 2018
New Revision: 474652
URL: https://svnweb.freebsd.org/changeset/ports/474652

Log:
  net-p2p/qtum: unbreak with boost 1.68 on FreeBSD 10.*
  
  After https://github.com/boostorg/multiprecision/commit/3cedeeab3048
  building with Clang 3.4.1 fails like the following:
  
  In file included from cpp-ethereum/libethereum/State.cpp:22:
  In file included from cpp-ethereum/libethereum/State.h:24:
  In file included from /usr/include/c++/v1/array:108:
  In file included from /usr/include/c++/v1/algorithm:628:
  In file included from /usr/include/c++/v1/memory:607:
  /usr/include/c++/v1/tuple:187:73: error: reference to type 'boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>' requires an initializer
               _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : value()
                                                                          ^
  /usr/include/c++/v1/type_traits:2359:44: note: in instantiation of member function 'std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>::__tuple_leaf' requested here
  typename __select_2nd<decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...))), true_type>::type
                                             ^
  /usr/include/c++/v1/type_traits:2360:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>, _Args = <>]
  __is_constructible_test(_Tp&&, _Args&& ...);
  ^
  /usr/include/c++/v1/type_traits:2419:14: note: in instantiation of template class 'std::__1::__libcpp_is_constructible<false, std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public __libcpp_is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
               ^
  /usr/include/c++/v1/type_traits:2445:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check<false, std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
               ^
  /usr/include/c++/v1/type_traits:2653:14: note: in instantiation of template class 'std::__1::is_constructible<std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public is_constructible<_Tp>
               ^
  /usr/local/include/boost/multiprecision/number.hpp:645:119: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
     template <class T, class = typename boost::disable_if_c<std::is_constructible<T, self_type const&>::value || !std::is_default_constructible<T>::value, T>::type>
                                                                                                                        ^
  /usr/local/include/boost/multiprecision/number.hpp:647:13: note: in instantiation of default argument for 'operator type-parameter-0-0<std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false> >' required here
     explicit operator T ()const
              ^~~~~~~~~~~~~~~~~~
  /usr/local/include/boost/multiprecision/number.hpp:647:13: note: while substituting deduced template arguments into function template 'operator type-parameter-0-0' [with T = std::__1::__tuple_leaf<0, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>, $1 = <no value>]
     explicit operator T ()const
              ^
  /usr/include/c++/v1/tuple:573:15: note: in instantiation of function template specialization 'std::__1::__tuple_impl<std::__1::__tuple_indices<0, 1, 2, 3, 4>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::__tuple_impl<0, 1, 2, 3, 4, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>
 , dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here
              : base_(typename __make_tuple_indices<sizeof...(_Up)>::type(),
                ^
  /usr/include/c++/v1/tuple:882:12: note: in instantiation of function template specialization 'std::__1::tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness, false>' requested here
      return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);
             ^
  cpp-ethereum/libethereum/State.cpp:186:8: note: in instantiation of function template specialization 'std::__1::forward_as_tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here
                  std::forward_as_tuple(state[0].toInt<u256>(), state[1].toInt<u256>(), state[2].toHash<h256>(), state[3].toHash<h256>(), Account::Unchanged)
                       ^
  In file included from cpp-ethereum/libethereum/State.cpp:22:
  In file included from cpp-ethereum/libethereum/State.h:24:
  In file included from /usr/include/c++/v1/array:108:
  In file included from /usr/include/c++/v1/algorithm:628:
  In file included from /usr/include/c++/v1/memory:607:
  /usr/include/c++/v1/tuple:188:9: error: static_assert failed "Attempted to default construct a reference element in a tuple"
         {static_assert(!is_reference<_Hp>::value,
          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~
  /usr/include/c++/v1/tuple:187:73: error: reference to type 'boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>' requires an initializer
               _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : value()
                                                                          ^
  /usr/include/c++/v1/type_traits:2359:44: note: in instantiation of member function 'std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>::__tuple_leaf' requested here
  typename __select_2nd<decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...))), true_type>::type
                                             ^
  /usr/include/c++/v1/type_traits:2360:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>, _Args = <>]
  __is_constructible_test(_Tp&&, _Args&& ...);
  ^
  /usr/include/c++/v1/type_traits:2419:14: note: in instantiation of template class 'std::__1::__libcpp_is_constructible<false, std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public __libcpp_is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
               ^
  /usr/include/c++/v1/type_traits:2445:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check<false, std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
               ^
  /usr/include/c++/v1/type_traits:2653:14: note: in instantiation of template class 'std::__1::is_constructible<std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>>' requested here
      : public is_constructible<_Tp>
               ^
  /usr/local/include/boost/multiprecision/number.hpp:645:119: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
     template <class T, class = typename boost::disable_if_c<std::is_constructible<T, self_type const&>::value || !std::is_default_constructible<T>::value, T>::type>
                                                                                                                        ^
  /usr/local/include/boost/multiprecision/number.hpp:647:13: note: in instantiation of default argument for 'operator type-parameter-0-0<std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false> >' required here
     explicit operator T ()const
              ^~~~~~~~~~~~~~~~~~
  /usr/local/include/boost/multiprecision/number.hpp:647:13: note: while substituting deduced template arguments into function template 'operator type-parameter-0-0' [with T = std::__1::__tuple_leaf<1, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, false>, $1 = <no value>]
     explicit operator T ()const
              ^
  /usr/include/c++/v1/tuple:573:15: note: in instantiation of function template specialization 'std::__1::__tuple_impl<std::__1::__tuple_indices<0, 1, 2, 3, 4>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::__tuple_impl<0, 1, 2, 3, 4, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>
 , dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here
              : base_(typename __make_tuple_indices<sizeof...(_Up)>::type(),
                ^
  /usr/include/c++/v1/tuple:882:12: note: in instantiation of function template specialization 'std::__1::tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness, false>' requested here
      return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);
             ^
  cpp-ethereum/libethereum/State.cpp:186:8: note: in instantiation of function template specialization 'std::__1::forward_as_tuple<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<256, 256, 0, 0, void>, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here
                  std::forward_as_tuple(state[0].toInt<u256>(), state[1].toInt<u256>(), state[2].toHash<h256>(), state[3].toHash<h256>(), Account::Unchanged)
                       ^
  In file included from cpp-ethereum/libethereum/State.cpp:22:
  In file included from cpp-ethereum/libethereum/State.h:24:
  In file included from /usr/include/c++/v1/array:108:
  In file included from /usr/include/c++/v1/algorithm:628:
  In file included from /usr/include/c++/v1/memory:607:
  /usr/include/c++/v1/tuple:188:9: error: static_assert failed "Attempted to default construct a reference element in a tuple"
         {static_assert(!is_reference<_Hp>::value,
          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~
  
  PR:		229569
  Reported by:	antoine (via exp-run)

Modified:
  head/net-p2p/qtum/Makefile   (contents, props changed)

Modified: head/net-p2p/qtum/Makefile
==============================================================================
--- head/net-p2p/qtum/Makefile	Sat Jul 14 22:27:10 2018	(r474651)
+++ head/net-p2p/qtum/Makefile	Sat Jul 14 23:14:45 2018	(r474652)
@@ -36,7 +36,7 @@ CONFIGURE_ARGS=	--disable-man \
 		--with-qrencode \
 		--without-libs
 
-USES=		autoreconf bdb:5+ compiler:c++11-lib gmake libtool pkgconfig qt:5 ssl
+USES=		autoreconf bdb:5+ compiler:c++14-lang gmake libtool pkgconfig qt:5 ssl
 USE_QT=		buildtools core dbus gui linguisttools network testlib widgets
 USE_GITHUB=	yes
 GH_TUPLE=	qtumproject:qtum:${DISTVERSIONPREFIX}${PORTVERSION} \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807142314.w6ENEjjp029895>