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


Reply via email to