Hi
Further to the previous post we can work around the compiler error by removing the -fpermissive flag, but have now hit a problem at the link stage. I'm not able to provide a small reproducible example for this unfortunately, but the link errors we get are:
LINK /.../linux_icc64_release/bin/test_suite /...//linux_64/lib/libboost_unit_test_framework-gcc49-mt-1_59.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_unit_test_framework-gcc49-mt-1_59.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20' /...//linux_64/lib/libboost_regex-gcc49-mt-1_59.so: undefined reference to `std::overflow_error::~overflow_error()@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_regex-gcc49-mt-1_59.so: undefined reference to `std::invalid_argument::~invalid_argument()@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_signals-gcc49-mt-1_59.so: undefined reference to `std::__detail::_List_node_base::_M_reverse()@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_signals-gcc49-mt-1_59.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_unit_test_framework-gcc49-mt-1_59.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15' /...//linux_64/lib/libboost_unit_test_framework-gcc49-mt-1_59.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
We build our boost libs using gcc4.9, so I'm wondering if there's a binary compatibility issue between gcc4.9 and icpc 16?
I've tried using the gnu linker (ld v2.25) instead of icpc and get the following, I don't know if relevant
LINK /.../linux_icc64_release/bin/test_suite /.../ld: unrecognised emulation mode: 64 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om
Thanks,