autc04 / Retro68

a gcc-based cross-compiler for classic 68K and PPC Macintoshes
GNU General Public License v3.0
553 stars 54 forks source link

Rez fails to link #45

Closed MaddTheSane closed 6 years ago

MaddTheSane commented 6 years ago

I'm having issues trying to link the Rez executable:

cd /Users/.../makestuff/Retro68/build/build-host/Rez && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/Rez.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  --std=c++11 -Wall -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/Rez.dir/Rez.cc.o  -o Rez libRezLib.a ../ResourceFiles/libResourceFiles.a /opt/local/lib/libboost_wave-mt.dylib /opt/local/lib/libboost_filesystem-mt.dylib /opt/local/lib/libboost_system-mt.dylib /opt/local/lib/libboost_thread-mt.dylib /opt/local/lib/libboost_regex-mt.dylib /opt/local/lib/libboost_program_options-mt.dylib /opt/local/lib/libboost_serialization-mt.dylib /opt/local/lib/libboost_chrono-mt.dylib /opt/local/lib/libboost_date_time-mt.dylib /opt/local/lib/libboost_atomic-mt.dylib /Users/.../makestuff/Retro68/build/toolchain/lib/libhfs.a 
Undefined symbols for architecture x86_64:
  "boost::wave::grammars::cpp_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >::parse_cpp_grammar(boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > const&, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > const&, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > const&, bool&, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::impl::pp_iterator_functor<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::pp_directive() in libRezLib.a(RezLexer.cc.o)
  "boost::wave::grammars::defined_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > >::parse_operator_defined(boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > const& boost::wave::util::macromap<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::resolve_defined<boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >(boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >&, boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&) in libRezLib.a(RezLexer.cc.o)
  "boost::wave::grammars::defined_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > >::parse_operator_defined(boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > const& boost::wave::util::macromap<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::resolve_defined<boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >(boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >&, boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&) in libRezLib.a(RezLexer.cc.o)

Both Bison and Boost are installed via MacPorts, with Bison being version 3.0.4, and Boost is version 1.65.1 (1.65.1_1 as reported by MacPorts).

autc04 commented 6 years ago

I can't test this at the moment, so I'l start voicing some random guesses...

Is the Boost installed via MacPorts built for C++11 (using the newer C++ standard library, libc++, instead of the older libstdc++? I would have assumed that this is the default for current systems, but maybe you are using an older system? If that's the case, this might be relevant: https://trac.macports.org/wiki/LibcxxOnOlderSystems

MaddTheSane commented 6 years ago

I'm on High Sierra. And Boost is linking/using libc++

There's also this warning that pops up. It's probably related:

In file included from /Users/cwbetts/makestuff/Retro68/Retro68/Rez/RezLexer.cc:3:
In file included from /opt/local/include/boost/wave.hpp:21:
In file included from /opt/local/include/boost/wave/cpp_context.hpp:38:
/opt/local/include/boost/wave/util/cpp_macromap.hpp:585:69: warning: unused typedef 'iterator_type' [-Wunused-local-typedef]
    typedef unput_queue_iterator<IteratorT, token_type, ContainerT> iterator_type;
                                                                    ^
craigbaker commented 6 years ago

I hit this problem as well on El Capitain with Macports. I then tried building Boost 1.65 from source (1.66 doesn't work with my cmake version), with the options for linking to libc++, and again it gives the same error as @MaddTheSane reported about the missing symbol. It looks to me like maybe a template wasn't instantiated, although I do seem to see that exact symbol in the Boost Wave dynamic object.

I tried compiling on Ubuntu 14, using Boost 1.54 (or was it 1.45? I tried a few versions...). It finishes compiling Rez, and after making a minor change in Elf2Mac/Section.cc:75, Elf2Mac builds and it gets stuck building LaunchAPPL. The problem looks related to changes in the Boost API. I compiled Boost 1.66 from source on Ubuntu, and now it's back to failed linking of Rez with the same old error cpp_iterator.hpp:1379: undefined reference to boost::wave::grammars::cpp_grammar_gen<boost::wave::cpplexer::lex_iterator<...

@autc04 Which version of Boost have you been using? It looks like the current Homebrew version is 1.66, but maybe you still had an older one when developing this? I can try compiling whatever version you have.

Thanks for developing this, I'm really looking forward to using it!

craigbaker commented 6 years ago

I just had a successful build of Retro68k on Ubuntu, including the samples for 68k. I built Boost 1.59 as follows, after downloading, expanding, and changing to the resulting directory:

./bootstrap.sh
sudo ./b2 --with=all cxxflags="-std=c++11" --target=shared,static install

I'm not sure whether the difference was the Boost version, or the --target=shared,static and --with=all flags which I had not used previously. I'll try this approach in OSX another day.

autc04 commented 6 years ago

I'm currently building on my Ubuntu 17.10 box with gcc 7.2.0 and boost 1.62 installed from the Ubuntu packages, and on macOS 10.13.3 with Apple clang-900.0.39.2 (Xcode 9.2) and boost 1.66 installed from the Homebrew binary package.

MaddTheSane commented 6 years ago

It looks like whatever was causing the issue has been fixed as of May 12, 2018. At least on MacPorts (using Boost 1.66.0_3).

autc04 commented 6 years ago

Thanks!

As I've never reproduced this (I'm using homebrew, not MacPorts), I'm closing this for now.

If anyone is still having problems, feel free to reopen this or start a new issue.