#315 aria2 1.18.x build failures under Mac OS X

1.18.1
closed
nobody
None
1
2015-02-27
2013-10-21
Marius
No

Using the latest gcc (4.8.2), I get the following linking error:

  CXXLD    aria2c
Undefined symbols for architecture x86_64:
  "std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const", referenced from:
      aria2::DomainNode::DomainNode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, aria2::DomainNode*) in libaria2.a(CookieStorage.o)
      aria2::DomainNode::DomainNode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, aria2::DomainNode*) in libaria2.a(CookieStorage.o)
      aria2::RequestGroupMan::RequestGroupMan(std::vector<std::shared_ptr<aria2::RequestGroup>, std::allocator<std::shared_ptr<aria2::RequestGroup> > >, int, aria2::Option const*) in libaria2.a(RequestGroupMan.o)
      aria2::RequestGroupMan::RequestGroupMan(std::vector<std::shared_ptr<aria2::RequestGroup>, std::allocator<std::shared_ptr<aria2::RequestGroup> > >, int, aria2::Option const*) in libaria2.a(RequestGroupMan.o)
      aria2::IndexedList<unsigned long long, std::shared_ptr<aria2::RequestGroup> >::IndexedList() in libaria2.a(RequestGroupMan.o)
  "std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const", referenced from:
      std::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > > >, std::__detail::_Select1st, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > >, true>*) in libaria2.a(CookieStorage.o)
      std::_Hashtable<unsigned long long, std::pair<unsigned long long const, std::shared_ptr<aria2::RequestGroup> >, std::allocator<std::pair<unsigned long long const, std::shared_ptr<aria2::RequestGroup> > >, std::__detail::_Select1st, std::equal_to<unsigned long long>, std::hash<unsigned long long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<unsigned long long const, std::shared_ptr<aria2::RequestGroup> >, false>*) in libaria2.a(RequestGroupMan.o)
      std::_Hashtable<unsigned long long, std::pair<unsigned long long const, std::shared_ptr<aria2::DownloadResult> >, std::allocator<std::pair<unsigned long long const, std::shared_ptr<aria2::DownloadResult> > >, std::__detail::_Select1st, std::equal_to<unsigned long long>, std::hash<unsigned long long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<unsigned long long const, std::shared_ptr<aria2::DownloadResult> >, false>*) in libaria2.a(RequestGroupMan.o)
  "std::random_device::_M_fini()", referenced from:
      aria2::SimpleRandomizer::init()     in libaria2.a(SimpleRandomizer.o)
  "std::random_device::_M_init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      aria2::SimpleRandomizer::init()     in libaria2.a(SimpleRandomizer.o)
  "std::random_device::_M_getval()", referenced from:
      aria2::SimpleRandomizer::init()     in libaria2.a(SimpleRandomizer.o)
  "std::_Hash_bytes(void const*, unsigned long, unsigned long)", referenced from:
      std::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > > >, std::__detail::_Select1st, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_erase(std::integral_constant<bool, true>, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .isra.300] in libaria2.a(CookieStorage.o)
      aria2::DomainNode::addNext(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> >) in libaria2.a(CookieStorage.o)
      std::_Hashtable<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<aria2::DomainNode, std::default_delete<aria2::DomainNode> > > >, std::__detail::_Select1st, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const in libaria2.a(CookieStorage.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
Makefile:1755: recipe for target 'aria2c' failed
make[3]: *** [aria2c] Error 1
make[3]: Leaving directory '/private/tmp/aria2-1.18.1/src'
Makefile:2296: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/private/tmp/aria2-1.18.1/src'
Makefile:525: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/private/tmp/aria2-1.18.1'
Makefile:435: recipe for target 'all' failed
make: *** [all] Error 2

Discussion

  • tujikawa

    tujikawa - 2013-10-21

    I'm not sure this comes from the configuration, but please check your library path configuration of compilers, cause the error says standard library is missing.

     
  • Marius

    Marius - 2013-10-21

    Thanks,

    This is what I get for using a non-standard compiler (gcc 4.8.2, due to C++11) in a non-standard path…

    Fixed using LDFLAGS.

     
  • tujikawa

    tujikawa - 2013-10-22
    • status: open --> closed
     

Log in to post a comment.