GridTools / gridtools_verification

Other
0 stars 0 forks source link

Unable to link test_verification with Boost 1.65 (1.64.0_1 is working) #15

Closed pspoerri closed 6 years ago

pspoerri commented 7 years ago

I'm not sure what is going on here, but it looks like as if the verification framework does not pick up all the libraries from Serialbox.

[100%] Linking CXX executable test_verification
Undefined symbols for architecture x86_64:
  "boost::filesystem::path::operator/=(boost::filesystem::path const&)", referenced from:
      boost::filesystem::operator/(boost::filesystem::path const&, boost::filesystem::path const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::filesystem::operator/(boost::filesystem::path const&, boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::dir_itr_close(void*&, void*&)", referenced from:
      boost::filesystem::detail::dir_itr_imp::~dir_itr_imp() in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::last_write_time(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::last_write_time(boost::filesystem::path const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
  "boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::create_directories(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)", referenced from:
      boost::filesystem::directory_iterator::increment() in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::remove(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::remove(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      boost::filesystem::exists(boost::filesystem::path const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::filesystem::is_directory(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::filesystem::exists(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::filesystem::is_regular_file(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::log::v2_mt_posix::record_view::public_data::destroy(boost::log::v2_mt_posix::record_view::public_data const*)", referenced from:
      boost::log::v2_mt_posix::record::reset() in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::record::reset() in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::record::reset() in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::aux::stream_provider<char>::release_compound(boost::log::v2_mt_posix::aux::stream_provider<char>::stream_compound*)", referenced from:
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::auto_release::~auto_release() in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::auto_release::~auto_release() in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::auto_release::~auto_release() in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::aux::stream_provider<char>::allocate_compound(boost::log::v2_mt_posix::record&)", referenced from:
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::aux::unhandled_exception_count()", referenced from:
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::~record_pump() in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::~record_pump() in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::record_pump(boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>&, boost::log::v2_mt_posix::record&) in libSerialboxCore.a(ArchiveFactory.cpp.o)
      boost::log::v2_mt_posix::aux::record_pump<boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level> >::~record_pump() in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::core::open_record(boost::log::v2_mt_posix::attribute_set const&)", referenced from:
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::open_record_unlocked<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::open_record_unlocked<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::open_record_unlocked<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::core::push_record_move(boost::log::v2_mt_posix::record&)", referenced from:
      boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::push_record_unlocked(boost::log::v2_mt_posix::record&&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::push_record_unlocked(boost::log::v2_mt_posix::record&&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::sources::basic_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex> >::push_record_unlocked(boost::log::v2_mt_posix::record&&) in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::sources::aux::get_severity_level()", referenced from:
      boost::log::v2_mt_posix::sources::aux::severity_level<boost::log::v2_mt_posix::trivial::severity_level>::set_value(boost::log::v2_mt_posix::trivial::severity_level) in libSerialboxCore.a(SerializerImpl.cpp.o)
  1 #!/usr/bin/env bash
      boost::log::v2_mt_posix::sources::aux::severity_level<boost::log::v2_mt_posix::trivial::severity_level>::set_value(boost::log::v2_mt_posix::trivial::severity_level) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::sources::aux::severity_level<boost::log::v2_mt_posix::trivial::severity_level>::set_value(boost::log::v2_mt_posix::trivial::severity_level) in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::trivial::logger::get()", referenced from:
      serialbox::SerializerImpl::SerializerImpl(serialbox::OpenModeKind, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::upgradeMetaData() in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::constructMetaDataFromJson() in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::write(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, serialbox::SavepointImpl const&, serialbox::StorageView const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::updateMetaData() in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::read(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, serialbox::SavepointImpl const&, serialbox::StorageView&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      serialbox::SerializerImpl::toJSON() const in libSerialboxCore.a(SerializerImpl.cpp.o)
      ...
  "boost::system::system_category()", referenced from:
      ___cxx_global_var_init.5 in test_serialization.cpp.o
      ___cxx_global_var_init.5 in test_verification.cpp.o
      ___cxx_global_var_init.5 in libSerialboxCore.a(SerializerImpl.cpp.o)
      ___cxx_global_var_init.5 in libSerialboxCore.a(BinaryArchive.cpp.o)
      ___cxx_global_var_init.5 in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::system::generic_category()", referenced from:
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in test_serialization.cpp.o
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in test_serialization.cpp.o
      ___cxx_global_var_init.3 in test_serialization.cpp.o
      ___cxx_global_var_init.4 in test_serialization.cpp.o
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in test_verification.cpp.o
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in test_verification.cpp.o
      ___cxx_global_var_init.3 in test_verification.cpp.o
      ...
  "boost::filesystem::path::filename() const", referenced from:
      serialbox::BinaryArchive::write(serialbox::StorageView const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<serialbox::FieldMetainfoImpl>) in libSerialboxCore.a(BinaryArchive.cpp.o)
      serialbox::BinaryArchive::clear() in libSerialboxCore.a(BinaryArchive.cpp.o)
  "boost::filesystem::path::extension() const", referenced from:
      boost::filesystem::extension(boost::filesystem::path const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      serialbox::ArchiveFactory::archiveFromExtension(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in libSerialboxCore.a(ArchiveFactory.cpp.o)
  "boost::log::v2_mt_posix::core::get_logging_enabled() const", referenced from:
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_composite_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex>, boost::log::v2_mt_posix::sources::features<boost::log::v2_mt_posix::sources::severity<boost::log::v2_mt_posix::trivial::severity_level> > >::open_record<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(SerializerImpl.cpp.o)
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_composite_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex>, boost::log::v2_mt_posix::sources::features<boost::log::v2_mt_posix::sources::severity<boost::log::v2_mt_posix::trivial::severity_level> > >::open_record<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(BinaryArchive.cpp.o)
      boost::log::v2_mt_posix::record boost::log::v2_mt_posix::sources::basic_composite_logger<char, boost::log::v2_mt_posix::sources::severity_logger_mt<boost::log::v2_mt_posix::trivial::severity_level>, boost::log::v2_mt_posix::sources::multi_thread_model<boost::log::v2_mt_posix::aux::light_rw_mutex>, boost::log::v2_mt_posix::sources::features<boost::log::v2_mt_posix::sources::severity<boost::log::v2_mt_posix::trivial::severity_level> > >::open_record<boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2_mt_posix::keywords::tag::severity, boost::log::v2_mt_posix::trivial::severity_level const> const&) in libSerialboxCore.a(ArchiveFactory.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [unittest/test_verification] Error 1
make[1]: *** [unittest/CMakeFiles/test_verification.dir/all] Error 2
make: *** [all] Error 2

Serialbox Setup:

-- Found PythonInterp: /usr/local/bin/python3 (found suitable version "3.6.2", minimum required is "3.4")
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   filesystem
--   system
--   log
--   date_time
--   log_setup
--   thread
--   regex
--   chrono
--   atomic

Gridtools Verification Setup:

-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   system
--   program_options

hacked with the additional libraries:

-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   filesystem
--   log
--   system
--   program_options
--   system
--   log_setup
--   thread
--   regex
--   chrono
--   atomic
--   date_time

but it somehow still has linking issues.

havogt commented 6 years ago

I think this should be solved by the serialbox2 updates.