[
https://issues.apache.org/jira/browse/THRIFT-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15533278#comment-15533278
]
Aki Sukegawa edited comment on THRIFT-3937 at 9/29/16 4:57 PM:
---------------------------------------------------------------
[~jking3] our CI uses boost 1.53 on CentOS 7
https://travis-ci.org/apache/thrift/jobs/163474948#L406
So boost version does not need an update.
On the other hand, we list GCC 4.2 as minimum requirement that sounds unlikely
to work.
Our CI uses 4.8 on CentOS 7 and Ubuntu 14.04.
I'd suggest listing what we're testing as the required version.
One way to keep GCC req sufficiently low would be to build boost 1.53 on our
CentOS 6 CI (GCC 4.4) and then run C/C++/native extension builds.
Also a quick work around for GCC 4.6 or lower is to set WITH_PLUGIN default
value to OFF if old GCC is found when configuring.
was (Author: nsuke):
[~jking3] our CI uses boost 1.53 on CentOS 7
https://travis-ci.org/apache/thrift/jobs/163474948#L406
So boost version does not need an update.
On the other hand, we list GCC 4.2 as minimum requirement that sounds unlikely
to work.
Our CI uses 4.8 on CentOS 7 and Ubuntu 14.04.
I'd suggest listing what we're testing as the required version.
> Cannot compile 0.10.0 development tip with gcc-4.6.3 and boost-1.53
> -------------------------------------------------------------------
>
> Key: THRIFT-3937
> URL: https://issues.apache.org/jira/browse/THRIFT-3937
> Project: Thrift
> Issue Type: Bug
> Components: Build Process
> Affects Versions: 0.10.0
> Environment: Ubuntu 12.04.5 LTS with gcc-4.6.3 and boost 1.53.0,
> Ubuntu 14.04.2 LTS with gcc-4.6.4 and boost-1.54.0
> Reporter: James E. King, III
> Assignee: Aki Sukegawa
>
> While building the tip using cmake:
> {noformat}
> [ 51%] Building CXX object
> compiler/cpp/CMakeFiles/thriftc_static.dir/src/thrift/plugin/plugin_output.cc.o
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_enum, To =
> apache::thrift::plugin::t_enum]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:181:3:
> error: no matching function for call to
> ‘transform(std::vector<t_enum_value*>::const_iterator,
> std::vector<t_enum_value*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_enum_value>
> >, <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:181:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From =
> t_const_value, To = apache::thrift::plugin::t_const_value]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:212:5:
> error: no matching function for call to
> ‘transform(std::vector<t_const_value*>::const_iterator,
> std::vector<t_const_value*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_const_value>
> >, <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:212:5:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_struct, To
> = apache::thrift::plugin::t_struct]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:235:3:
> error: no matching function for call to
> ‘transform(std::vector<t_field*>::const_iterator,
> std::vector<t_field*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_field> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:235:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_service,
> To = apache::thrift::plugin::t_service]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:267:3:
> error: no matching function for call to
> ‘transform(std::vector<t_function*>::const_iterator,
> std::vector<t_function*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_function> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:267:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_program,
> To = apache::thrift::plugin::t_program]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:360:3:
> error: no matching function for call to
> ‘transform(std::vector<t_program*>::iterator,
> std::vector<t_program*>::iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_program> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:360:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> make[2]: ***
> [compiler/cpp/CMakeFiles/thriftc.dir/src/thrift/plugin/plugin_output.cc.o]
> Error 1
> make[1]: *** [compiler/cpp/CMakeFiles/thriftc.dir/all] Error 2
> make[1]: *** Waiting for unfinished jobs....
> [ 52%] Building CXX object
> compiler/cpp/CMakeFiles/thriftc_static.dir/src/thrift/plugin/plugin.cc.o
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_enum, To =
> apache::thrift::plugin::t_enum]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:181:3:
> error: no matching function for call to
> ‘transform(std::vector<t_enum_value*>::const_iterator,
> std::vector<t_enum_value*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_enum_value>
> >, <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:181:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From =
> t_const_value, To = apache::thrift::plugin::t_const_value]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:212:5:
> error: no matching function for call to
> ‘transform(std::vector<t_const_value*>::const_iterator,
> std::vector<t_const_value*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_const_value>
> >, <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:212:5:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_struct, To
> = apache::thrift::plugin::t_struct]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:235:3:
> error: no matching function for call to
> ‘transform(std::vector<t_field*>::const_iterator,
> std::vector<t_field*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_field> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:235:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_service,
> To = apache::thrift::plugin::t_service]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:267:3:
> error: no matching function for call to
> ‘transform(std::vector<t_function*>::const_iterator,
> std::vector<t_function*>::const_iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_function> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:267:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc: In
> function ‘void plugin_output::convert(From*, To&) [with From = t_program,
> To = apache::thrift::plugin::t_program]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:360:3:
> error: no matching function for call to
> ‘transform(std::vector<t_program*>::iterator,
> std::vector<t_program*>::iterator,
> std::back_insert_iterator<std::vector<apache::thrift::plugin::t_program> >,
> <unresolved overloaded function type>)’
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin_output.cc:360:3:
> note: candidates are:
> /usr/include/c++/4.6/bits/stl_algo.h:4871:5: note: template<class _IIter,
> class _OIter, class _UnaryOperation> _OIter std::transform(_IIter, _IIter,
> _OIter, _UnaryOperation)
> /usr/include/c++/4.6/bits/stl_algo.h:4907:5: note: template<class _IIter1,
> class _IIter2, class _OIter, class _BinaryOperation> _OIter
> std::transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation)
> make[2]: ***
> [compiler/cpp/CMakeFiles/thriftc_static.dir/src/thrift/plugin/plugin_output.cc.o]
> Error 1
> make[2]: *** Waiting for unfinished jobs....
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc: In function
> ‘void apache::thrift::plugin::convert(const From&, To*) [with From =
> apache::thrift::plugin::t_enum, To = t_enum]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc:220:86: error: no
> match for call to ‘(const
> boost::range_detail::forwarder<boost::range_detail::transform_holder>)
> (<unresolved overloaded function type>)’
> /usr/include/boost/range/adaptor/argument_fwd.hpp:42:16: note: candidate is:
> /usr/include/boost/range/adaptor/argument_fwd.hpp:45:23: note: template<class
> T> Holder<T> boost::range_detail::forwarder::operator()(T) const [with T = T,
> Holder = boost::range_detail::transform_holder]
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc: In function
> ‘void apache::thrift::plugin::convert(const From&, To*) [with From =
> apache::thrift::plugin::t_const_value, To = t_const_value]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc:257:89: error: no
> match for call to ‘(const
> boost::range_detail::forwarder<boost::range_detail::transform_holder>)
> (<unresolved overloaded function type>)’
> /usr/include/boost/range/adaptor/argument_fwd.hpp:42:16: note: candidate is:
> /usr/include/boost/range/adaptor/argument_fwd.hpp:45:23: note: template<class
> T> Holder<T> boost::range_detail::forwarder::operator()(T) const [with T = T,
> Holder = boost::range_detail::transform_holder]
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc: In function
> ‘void apache::thrift::plugin::convert(const From&, To*) [with From =
> apache::thrift::plugin::t_struct, To = t_struct]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc:284:79: error: no
> match for call to ‘(const
> boost::range_detail::forwarder<boost::range_detail::transform_holder>)
> (<unresolved overloaded function type>)’
> /usr/include/boost/range/adaptor/argument_fwd.hpp:42:16: note: candidate is:
> /usr/include/boost/range/adaptor/argument_fwd.hpp:45:23: note: template<class
> T> Holder<T> boost::range_detail::forwarder::operator()(T) const [with T = T,
> Holder = boost::range_detail::transform_holder]
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc: In function
> ‘void apache::thrift::plugin::convert(const From&, To*) [with From =
> apache::thrift::plugin::t_service, To = t_service]’:
> /home/jking/thrift/compiler/cpp/src/thrift/plugin/plugin.cc:311:84: error: no
> match for call to ‘(const
> boost::range_detail::forwarder<boost::range_detail::transform_holder>)
> (<unresolved overloaded function type>)’
> /usr/include/boost/range/adaptor/argument_fwd.hpp:42:16: note: candidate is:
> /usr/include/boost/range/adaptor/argument_fwd.hpp:45:23: note: template<class
> T> Holder<T> boost::range_detail::forwarder::operator()(T) const [with T = T,
> Holder = boost::range_detail::transform_holder]
> make[2]: ***
> [compiler/cpp/CMakeFiles/thriftc_static.dir/src/thrift/plugin/plugin.cc.o]
> Error 1
> make[1]: *** [compiler/cpp/CMakeFiles/thriftc_static.dir/all] Error 2
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)