Project

General

Profile

Actions

Bug #11397

closed

fail to compile with boost 1.55 and gcc 5.0

Added by Kefu Chai about 9 years ago. Updated about 9 years ago.

Status:
Won't Fix
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

just want to note this down in case others run into the same problem. this is a bug in boost 1.55, and will/should be fixed in boost 1.56. see https://svn.boost.org/trac/boost/ticket/10125 .

  CXX      json_spirit/json_spirit_reader.lo
In file included from /usr/include/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:15:0,
                 from /usr/include/boost/spirit/home/classic/core/non_terminal/grammar.hpp:21,
                 from /usr/include/boost/spirit/home/classic/core.hpp:42,
                 from /usr/include/boost/spirit/include/classic_core.hpp:11,
                 from json_spirit/json_spirit_reader_template.h:23,
                 from json_spirit/json_spirit_reader.cpp:7:
/usr/include/boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp: In instantiation of ‘IdT boost::spirit::classic::impl::object_with_id_base<TagT, IdT>::a\
cquire_object_id() [with TagT = boost::spirit::classic::impl::grammar_tag; IdT = long unsigned int]’:
/usr/include/boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:78:60:   required from ‘boost::spirit::classic::impl::object_with_id<TagT, IdT>::object_w\
ith_id() [with TagT = boost::spirit::classic::impl::grammar_tag; IdT = long unsigned int]’
/usr/include/boost/spirit/home/classic/core/non_terminal/grammar.hpp:51:15:   required from ‘boost::spirit::classic::grammar<DerivedT, ContextT>::grammar() [with DerivedT\
 = json_spirit::Json_grammer<json_spirit::Value_impl<json_spirit::Config_vector<std::basic_string<char> > >, __gnu_cxx::__normal_iterator<const char*, std::basic_string<c\
har> > >; ContextT = boost::spirit::classic::parser_context<>]’
json_spirit/json_spirit_reader_template.h:381:38:   required from ‘json_spirit::Json_grammer<Value_type, Iter_type>::Json_grammer(json_spirit::Json_grammer<Value_type, It\
er_type>::Semantic_actions_t&) [with Value_type = json_spirit::Value_impl<json_spirit::Config_vector<std::basic_string<char> > >; Iter_type = __gnu_cxx::__normal_iterator\
<const char*, std::basic_string<char> >; json_spirit::Json_grammer<Value_type, Iter_type>::Semantic_actions_t = json_spirit::Semantic_actions<json_spirit::Value_impl<json\
_spirit::Config_vector<std::basic_string<char> > >, __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> > >]’
json_spirit/json_spirit_reader_template.h:565:58:   required from ‘Iter_type json_spirit::read_range_or_throw(Iter_type, Iter_type, Value_type&) [with Iter_type = __gnu_c\
xx::__normal_iterator<const char*, std::basic_string<char> >; Value_type = json_spirit::Value_impl<json_spirit::Config_vector<std::basic_string<char> > >]’
json_spirit/json_spirit_reader.cpp:39:56:   required from here
/usr/include/boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:140:33: error: no matching function for call to ‘call_once(boost::once_flag&, void (&)())\
’
                 boost::call_once(been_here, mutex_init);
                                 ^
In file included from /usr/include/boost/thread/once.hpp:20:0,
                 from /usr/include/boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:18,
                 from /usr/include/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:15,
                 from /usr/include/boost/spirit/home/classic/core/non_terminal/grammar.hpp:21,
                 from /usr/include/boost/spirit/home/classic/core.hpp:42,
                 from /usr/include/boost/spirit/include/classic_core.hpp:11,
                 from json_spirit/json_spirit_reader_template.h:23,
                 from json_spirit/json_spirit_reader.cpp:7:
/usr/include/boost/thread/pthread/once_atomic.hpp:121:15: note: candidate: template<class Function, class ... ArgTypes> void boost::call_once(boost::once_flag&, boost::de\
tail::thread_move_t<T>, boost::detail::thread_move_t<Args>...)
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
               ^
/usr/include/boost/thread/pthread/once_atomic.hpp:121:15: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:15:0,
                 from /usr/include/boost/spirit/home/classic/core/non_terminal/grammar.hpp:21,
                 from /usr/include/boost/spirit/home/classic/core.hpp:42,
                 from /usr/include/boost/spirit/include/classic_core.hpp:11,
                 from json_spirit/json_spirit_reader_template.h:23,
                 from json_spirit/json_spirit_reader.cpp:7:
/usr/include/boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:140:33: note:   mismatched types ‘boost::detail::thread_move_t<T>’ and ‘void (*)()’
                 boost::call_once(been_here, mutex_init);
                                 ^

and the call_once() error repeats many times.

Actions #1

Updated by Kefu Chai about 9 years ago

  • Description updated (diff)
Actions

Also available in: Atom PDF