After bug 229569 lands this port will end up BROKEN. Can you help? I've already reported upstream. In file included from cpp-ethereum/libethereum/ChainParams.cpp:23: In file included from ./cpp-ethereum/utils/json_spirit/JsonSpiritHeaders.h:28: In file included from ./cpp-ethereum/utils/json_spirit/../json_spirit/json_spirit_reader_template.h:19: In file included from /usr/local/include/boost/spirit/include/classic_core.hpp:11: In file included from /usr/local/include/boost/spirit/home/classic/core.hpp:33: In file included from /usr/local/include/boost/spirit/home/classic/core/primitives/numerics.hpp:18: /usr/local/include/boost/spirit/home/classic/core/primitives/impl/numerics.ipp:407:31: error: no matching function for call to 'pow' * pow(T(10), T(-hit.length()))); ^~~ /usr/local/include/boost/spirit/home/classic/core/composite/impl/directives.ipp:98:24: note: in instantiation of function template specialization 'boost::spirit::classic::impl::real_parser_impl<boost::spirit::classic::match<double>, double, boost::spirit::classic::strict_real_parser_policies<double> >::parse_main<boost::spirit::classic::scanner<std::__1::__wrap_iter<const char *>, boost::spirit::classic::scanner_policies<boost::spirit::classic::no_skipper_iteration_policy<boost::spirit::classic::skipper_iteration_policy<boost::spirit::classic::iteration_policy> >, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> > >' requested here RT hit = p.parse_main(scan.change_policies(policies_t(scan))); ^ /usr/local/include/boost/spirit/home/classic/core/primitives/impl/numerics.ipp:463:30: note: in instantiation of function template specialization 'boost::spirit::classic::impl::implicit_lexeme_parse<boost::spirit::classic::match<double>, boost::spirit::classic::impl::real_parser_impl<boost::spirit::classic::match<double>, double, boost::spirit::classic::strict_real_parser_policies<double> >, boost::spirit::classic::scanner<std::__1::__wrap_iter<const char *>, boost::spirit::classic::scanner_policies<boost::spirit::classic::skipper_iteration_policy<boost::spirit::classic::iteration_policy>, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> >, boost::spirit::classic::iteration_policy>' requested here return impl::implicit_lexeme_parse<RT>(this_, scan, scan); ^ /usr/local/include/boost/spirit/home/classic/core/primitives/numerics.hpp:245:72: note: in instantiation of function template specialization 'boost::spirit::classic::impl::real_parser_impl<boost::spirit::classic::match<double>, double, boost::spirit::classic::strict_real_parser_policies<double> >::parse<boost::spirit::classic::scanner<std::__1::__wrap_iter<const char *>, boost::spirit::classic::scanner_policies<boost::spirit::classic::skipper_iteration_policy<boost::spirit::classic::iteration_policy>, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> > >' requested here return impl::real_parser_impl<result_t, T, RealPoliciesT>::parse(scan); ^ /usr/local/include/boost/spirit/home/classic/core/composite/actions.hpp:113:44: note: in instantiation of function template specialization 'boost::spirit::classic::real_parser<double, boost::spirit::classic::strict_real_parser_policies<double> >::parse<boost::spirit::classic::scanner<std::__1::__wrap_iter<const char *>, boost::spirit::classic::scanner_policies<boost::spirit::classic::skipper_iteration_policy<boost::spirit::classic::iteration_policy>, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> > >' requested here result_t hit = this->subject().parse(scan); ^ /usr/local/include/boost/spirit/home/classic/core/composite/alternative.hpp:67:49: note: in instantiation of function template specialization 'boost::spirit::classic::action<boost::spirit::classic::real_parser<double, boost::spirit::classic::strict_real_parser_policies<double> >, boost::function<void (double)> >::parse<boost::spirit::classic::scanner<std::__1::__wrap_iter<const char *>, boost::spirit::classic::scanner_policies<boost::spirit::classic::skipper_iteration_policy<boost::spirit::classic::iteration_policy>, boost::spirit::classic::match_policy, boost::spirit::classic::action_policy> > >' requested here if (result_t hit = this->left().parse(scan)) ^ /usr/local/include/boost/spirit/home/classic/core/composite/alternative.hpp:67:49: note: (skipping 11 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) /usr/local/include/boost/spirit/home/classic/core/scanner/impl/skipper.ipp:155:13: note: in instantiation of function template specialization 'boost::spirit::classic::impl::phrase_parser<boost::spirit::classic::space_parser>::parse<std::__1::__wrap_iter<const char *>, json_spirit::Json_grammer<json_spirit::Value_impl<json_spirit::Config_map<std::__1::basic_string<char> > >, std::__1::__wrap_iter<const char *> > >' requested here parse(first, last, p.derived(), skip.derived()); ^ ./cpp-ethereum/utils/json_spirit/../json_spirit/json_spirit_reader_template.h:523:47: note: in instantiation of function template specialization 'boost::spirit::classic::parse<std::__1::__wrap_iter<const char *>, json_spirit::Json_grammer<json_spirit::Value_impl<json_spirit::Config_map<std::__1::basic_string<char> > >, std::__1::__wrap_iter<const char *> >, boost::spirit::classic::space_parser>' requested here spirit_namespace::parse( begin, end, ^ ./cpp-ethereum/utils/json_spirit/../json_spirit/json_spirit_reader_template.h:552:21: note: in instantiation of function template specialization 'json_spirit::read_range_or_throw<std::__1::__wrap_iter<const char *>, json_spirit::Value_impl<json_spirit::Config_map<std::__1::basic_string<char> > > >' requested here begin = read_range_or_throw( begin, end, value ); ^ ./cpp-ethereum/utils/json_spirit/../json_spirit/json_spirit_reader_template.h:573:16: note: in instantiation of function template specialization 'json_spirit::read_range<std::__1::__wrap_iter<const char *>, json_spirit::Value_impl<json_spirit::Config_map<std::__1::basic_string<char> > > >' requested here return read_range( begin, s.end(), value ); ^ cpp-ethereum/libethereum/ChainParams.cpp:58:15: note: in instantiation of function template specialization 'json_spirit::read_string<std::__1::basic_string<char>, json_spirit::Value_impl<json_spirit::Config_map<std::__1::basic_string<char> > > >' requested here json_spirit::read_string(_json, val); ^ /usr/local/include/boost/rational.hpp:873:26: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'double' inline rational<IntType> pow(rational<IntType> base, IntType exponent) ^ In file included from cpp-ethereum/libethereum/ChainParams.cpp:23: In file included from ./cpp-ethereum/utils/json_spirit/JsonSpiritHeaders.h:28: In file included from ./cpp-ethereum/utils/json_spirit/../json_spirit/json_spirit_reader_template.h:19: In file included from /usr/local/include/boost/spirit/include/classic_core.hpp:11: In file included from /usr/local/include/boost/spirit/home/classic/core.hpp:33: In file included from /usr/local/include/boost/spirit/home/classic/core/primitives/numerics.hpp:18: /usr/local/include/boost/spirit/home/classic/core/primitives/impl/numerics.ipp:446:30: error: no matching function for call to 'pow' n *= pow(T(10), T(e_n_hit.value())); ^~~ /usr/local/include/boost/rational.hpp:873:26: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'double' inline rational<IntType> pow(rational<IntType> base, IntType exponent) ^
https://reviews.freebsd.org/differential/changeset/?ref=545488