[cfe-dev] compilation problems using clang: boost-libs

Thomas Klausner tk at giga.or.at
Sun Apr 8 18:03:39 PDT 2012


Hi!

Please tell me if this is the wrong list to ask such questions.

I'm building various programs on NetBSD/amd64 using clang, currently
r153935, with c++ standard libraries from gcc-4.5.3.

This particular build failure is for boost-libs-1.49.0, and it looks like this:

compile.c++.without-pth bin.v2/libs/thread/build/clang-linux-3.1/release/threading-multi/pthread/thread.o
In file included from libs/thread/src/pthread/thread.cpp:10:
In file included from ./boost/thread/thread.hpp:17:
In file included from ./boost/thread/pthread/thread_data.hpp:12:
In file included from ./boost/thread/mutex.hpp:16:
In file included from ./boost/thread/pthread/mutex.hpp:12:
In file included from ./boost/thread/locks.hpp:12:
In file included from ./boost/thread/thread_time.hpp:11:
In file included from ./boost/date_time/posix_time/posix_time_types.hpp:12:
In file included from ./boost/date_time/posix_time/ptime.hpp:12:
In file included from ./boost/date_time/posix_time/posix_time_system.hpp:13:
In file included from ./boost/date_time/posix_time/posix_time_config.hpp:18:
In file included from ./boost/date_time/gregorian/gregorian_types.hpp:19:
In file included from ./boost/date_time/gregorian/greg_calendar.hpp:16:
In file included from ./boost/date_time/gregorian/greg_ymd.hpp:16:
In file included from ./boost/date_time/gregorian/greg_month.hpp:18:
In file included from /usr/include/g++/map:59:
/usr/include/g++/bits/stl_tree.h:136:4: error: call to implicitly-deleted copy constructor of 'std::pair<const void *const, boost::detail::tss_data_node>'
          _M_value_field(std::forward<_Args>(__args)...) { }
          ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/g++/ext/new_allocator.h:111:23: note: in instantiation of function template specialization 'std::_Rb_tree_node<std::pair<const void *const, boost::detail::tss_data_node> >::_Rb_tree_node<const std::pair<const void *const, boost::detail::tss_data_node> &>' requested here
        { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); }
                             ^
/usr/include/g++/bits/stl_tree.h:394:32: note: in instantiation of function template specialization '__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const void *const, boost::detail::tss_data_node> > >::construct<const std::pair<const void *const, boost::detail::tss_data_node> &>' requested here
              _M_get_Node_allocator().construct(__tmp,
                                      ^
/usr/include/g++/bits/stl_tree.h:899:24: note: in instantiation of function template specialization 'std::_Rb_tree<const void *, std::pair<const void *const, boost::detail::tss_data_node>, std::_Select1st<std::pair<const void *const, boost::detail::tss_data_node> >, std::less<const void *>, std::allocator<std::pair<const void *const, boost::detail::tss_data_node> > >::_M_create_node<const std::pair<const void *const, boost::detail::tss_data_node> &>' requested here
      _Link_type __z = _M_create_node(__v);
                       ^
/usr/include/g++/bits/stl_tree.h:1191:34: note: in instantiation of member function 'std::_Rb_tree<const void *, std::pair<const void *const, boost::detail::tss_data_node>, std::_Select1st<std::pair<const void *const, boost::detail::tss_data_node> >, std::less<const void *>, std::allocator<std::pair<const void *const, boost::detail::tss_data_node> > >::_M_insert_' requested here
            return pair<iterator, bool>(_M_insert_(__x, __y, __v), true);
                                        ^
/usr/include/g++/bits/stl_map.h:501:21: note: in instantiation of member function 'std::_Rb_tree<const void *, std::pair<const void *const, boost::detail::tss_data_node>, std::_Select1st<std::pair<const void *const, boost::detail::tss_data_node> >, std::less<const void *>, std::allocator<std::pair<const void *const, boost::detail::tss_data_node> > >::_M_insert_unique' requested here
      { return _M_t._M_insert_unique(__x); }
                    ^
libs/thread/src/pthread/thread.cpp:569:43: note: in instantiation of member function 'std::map<const void *, boost::detail::tss_data_node, std::less<const void *>, std::allocator<std::pair<const void *const, boost::detail::tss_data_node> > >::insert' requested here
            current_thread_data->tss_data.insert(std::make_pair(key,tss_data_node(func,tss_data)));
                                          ^
/usr/include/g++/bits/stl_pair.h:125:7: note: copy constructor is implicitly deleted because 'pair<const void *const, boost::detail::tss_data_node>' has a user-declared move assignment operator
      operator=(pair&& __p)
      ^
1 error generated.


Is this
http://llvm.org/bugs/show_bug.cgi?id=11309
?

Is there a patch available (I guess for libstdc++)?

Thanks,
 Thomas



More information about the cfe-dev mailing list