On Mon, 26 Dec 2016 21:09:08 +0100, lee wrote: > Hi, > > there are some things that refuse to compile. One of them is > openimageio. > > Is this a bug, or am I missing something? Do I need to update something > else first?
The latter, sort of. The error in question.. [..] > | [100%] Linking CXX executable oiiotool > | cd > /var/tmp/portage/media-libs/openimageio-1.6.13/work/openimageio-1.6.13_build/src/oiiotool > && /usr/bin/cmake -E cmake_link_script CMakeFiles/oiiotool.dir/link.txt > --verbose=1 > | ccache /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -pipe -march=westmere -mmmx > -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -maes -mpclmul -mpopcnt -msse4.2 > -msse4.1 -mfxsr --param l1-cache-size=32 --param l1-cache-line-size=64 > --param l2-cache-s > | ize=12288 -mtune=westmere -fomit-frame-pointer -fno-stack-protector > -Wl,-O1 -Wl,--as-needed CMakeFiles/oiiotool.dir/oiiotool.cpp.o > CMakeFiles/oiiotool.dir/diff.cpp.o CMakeFiles/oiiotool.dir/imagerec.cpp.o > CMakeFiles/oiiotool.dir/printi > | nfo.cpp.o -o oiiotool -rdynamic ../libOpenImageIO/libOpenImageIO.so.1.6.13 > -lboost_filesystem-mt -lboost_regex-mt -lboost_system-mt -lboost_thread-mt > -lboost_chrono-mt -lboost_date_time-mt -lboost_atomic-mt -lrt -ldl -lssl > -lcrypto -lfre > | etype -lpng -lz -ltiff -ljpeg -lIlmImf -lImath -lIex -lHalf -lIlmThread > -lpthread -lopenjpeg -lwebp -lgif -lz -ltiff -ljpeg -lIlmImf -lImath -lIex > -lHalf -lIlmThread -lpthread -lopenjpeg -lwebp -lgif -lpugixml > -Wl,-rpath,/var/tmp/portage/ > | > media-libs/openimageio-1.6.13/work/openimageio-1.6.13_build/src/libOpenImageIO: > > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > std::allocator<std::__cxx11::basic_string<char, std:: > | char_traits<char>, std::allocator<char> > > > > >::writeValueTo(Imf_2_1::OStream&, int) const' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > > >::readValueFrom(Imf_2_1::IStream&, int, int)' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::Header::type[abi:cxx11]() const' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > std::allocator<std::__cxx11::basic_string<char, std:: > | char_traits<char>, std::allocator<char> > > > > >::readValueFrom(Imf_2_1::IStream&, int, int)' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > >::staticTypeName()' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::vector<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >, > std::allocator<std::__cxx11::basic_string<char, std:: > | char_traits<char>, std::allocator<char> > > > >::staticTypeName()' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::Header::name[abi:cxx11]() const' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::Header::setType(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to > `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > > >::writeValueTo(Imf_2_1::OStream&, int) const' > | collect2: error: ld returned 1 exit status [..] ..indicates a mismatch in C++11 ABI which changed in gcc5. What happens is that one the dependencies of openimageio was built against the old C++11 std::string ABI (hence the link errors), and needs to be rebuilt. It looks to be "Imf" aka libIlmImf, whatever that is. Try to rebuild it with --oneshot and it should work. If a similar error pops up for a different dependency, repeat. :) -h