[tlbuild] gc compilation failure

Karl Berry karl at freefriends.org
Thu Mar 28 23:56:27 CET 2019


However, after everything ...  on CentOS7, with CXXFLAGS=-std=c++11,
compilation of gc fails. Both gc-7.6.2 (--enable-gc=7.6.2) and 8.0.2
(the default), in exactly the same way, as below. Help?

g++ -Wall -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -DUSEGC  -pthread -DFFTWPP_SINGLE_THREAD  -I. -Igc-8.0.2/include -I/usr/include/tirpc -std=c++11 -g -fno-var-tracking -o entry.o -c entry.cc
In file included from /usr/include/c++/4.8.2/unordered_map:47:0,
                 from memory.h:23,
                 from common.h:35,
                 from entry.h:15,
                 from entry.cc:15:
/usr/include/c++/4.8.2/bits/hashtable.h: In instantiation of 'std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::__node_type* std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::_M_allocate_node(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const sym::symbol&>, std::tuple<>}; _Key = sym::symbol; _Value = std::pair<const sym::symbol, trans::venv::namevalue>; _Alloc = gc_allocator<std::pair<const sym::symbol, trans::venv::namevalue> >; _ExtractKey = std::__detail::_Select1st; _Equal = trans::venv::nameeq; _H1 = trans::venv::namehash; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>; std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>::__node_type = std::__detail::_Hash_node<std::pair<const sym::symbol, trans::venv::namevalue>, true>]':
/usr/include/c++/4.8.2/bits/hashtable_policy.h:493:8:   required from 'std::__detail::_Map_base<_Key, _Pair, _Alloc, std::__detail::_Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::mapped_type& std::__detail::_Map_base<_Key, _Pair, _Alloc, std::__detail::_Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::operator[](const key_type&) [with _Key = sym::symbol; _Pair = std::pair<const sym::symbol, trans::venv::namevalue>; _Alloc = gc_allocator<std::pair<const sym::symbol, trans::venv::namevalue> >; _Equal = trans::venv::nameeq; _H1 = trans::venv::namehash; _H2 = std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>; std::__detail::_Map_base<_Key, _Pair, _Alloc, std::__detail::_Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::mapped_type = trans::venv::namevalue; std::__detail::_Map_base<_Key, _Pair, _Alloc, std::__detail::_Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>::key_type = sym::symbol]'
/usr/include/c++/4.8.2/bits/unordered_map.h:596:20:   required from 'std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type& std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type&) [with _Key = sym::symbol; _Tp = trans::venv::namevalue; _Hash = trans::venv::namehash; _Pred = trans::venv::nameeq; _Alloc = gc_allocator<std::pair<const sym::symbol, trans::venv::namevalue> >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type = trans::venv::namevalue; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_type = sym::symbol]'
entry.cc:511:33:   required from here
/usr/include/c++/4.8.2/bits/hashtable.h:727:6: error: no matching function for call to 'gc_allocator<std::__detail::_Hash_node<std::pair<const sym::symbol, trans::venv::namevalue>, true> >::construct(std::_Hashtable<sym::symbol, std::pair<const sym::symbol, trans::venv::namevalue>, gc_allocator<std::pair<const sym::symbol, trans::venv::namevalue> >, std::__detail::_Select1st, trans::venv::nameeq, trans::venv::namehash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::__node_type*&, const std::piecewise_construct_t&, std::tuple<const sym::symbol&>, std::tuple<>)'
      _M_node_allocator().construct(__n, std::forward<_Args>(__args)...);
      ^
/usr/include/c++/4.8.2/bits/hashtable.h:727:6: note: candidate is:
In file included from memory.h:87:0,
                 from common.h:35,
                 from entry.h:15,
                 from entry.cc:15:
gc-8.0.2/include/gc_allocator.h:177:8: note: void gc_allocator<GC_Tp>::construct(gc_allocator<GC_Tp>::pointer, const GC_Tp&) [with GC_Tp = std::__detail::_Hash_node<std::pair<const sym::symbol, trans::venv::namevalue>, true>; gc_allocator<GC_Tp>::pointer = std::__detail::_Hash_node<std::pair<const sym::symbol, trans::venv::namevalue>, true>*]
   void construct(pointer __p, const GC_Tp& __val) { new(__p) GC_Tp(__val); }
        ^
gc-8.0.2/include/gc_allocator.h:177:8: note:   candidate expects 2 arguments, 4 provided



More information about the tlbuild mailing list