Holger Hoffstätte <hol...@applied-asynchrony.com> writes: > 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.. >
> [...] >> | ../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. :) Hm, this is really bad because it's difficult to figure out what needs to be rebuilt. Is there a way to rebuild everything in some order that works? Here's the next one already, and what would I need to rebuild for that? I can remove the package, though there will probably many more that don't compile. ,---- | >>> Emerging (19 of 109) dev-ml/camlp4-4.02.1_p3::gentoo | * camlp4-4.02.1_p3.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] | >>> Unpacking source... | >>> Unpacking camlp4-4.02.1_p3.tar.gz to /var/tmp/portage/dev-ml/camlp4-4.02.1_p3/work | >>> Source unpacked in /var/tmp/portage/dev-ml/camlp4-4.02.1_p3/work | >>> Preparing source in /var/tmp/portage/dev-ml/camlp4-4.02.1_p3/work/camlp4-4.02.1-3 ... | >>> Source prepared. | >>> Configuring source in /var/tmp/portage/dev-ml/camlp4-4.02.1_p3/work/camlp4-4.02.1-3 ... | >>> Source configured. | >>> Compiling source in /var/tmp/portage/dev-ml/camlp4-4.02.1_p3/work/camlp4-4.02.1-3 ... | make -j16 byte | ocamlbuild -classic-display -no-ocamlfind `./build/camlp4-byte-only.sh` | + echo camlp4/Camlp4.cmo camlp4/Camlp4Top.cmo camlp4/camlp4prof.byte camlp4/mkcamlp4.byte camlp4/camlp4.byte camlp4/camlp4fulllib.cma camlp4/camlp4boot.byte camlp4/camlp4boot.cma camlp4/camlp4r.byte camlp4/camlp4r.cma camlp4/camlp4rf.byte | camlp4/camlp4rf.cma camlp4/camlp4o.byte camlp4/camlp4o.cma camlp4/camlp4of.byte camlp4/camlp4of.cma camlp4/camlp4oof.byte camlp4/camlp4oof.cma camlp4/camlp4orf.byte camlp4/camlp4orf.cma camlp4/Camlp4Parsers/Camlp4AstLoader.cmo camlp4/Cam | lp4Parsers/Camlp4DebugParser.cmo camlp4/Camlp4Parsers/Camlp4GrammarParser.cmo camlp4/Camlp4Parsers/Camlp4ListComprehension.cmo camlp4/Camlp4Parsers/Camlp4MacroParser.cmo camlp4/Camlp4Parsers/Camlp4OCamlOriginalQuotationExpander.cmo camlp4 | /Camlp4Parsers/Camlp4OCamlParser.cmo camlp4/Camlp4Parsers/Camlp4OCamlParserParser.cmo camlp4/Camlp4Parsers/Camlp4OCamlReloadedParser.cmo camlp4/Camlp4Parsers/Camlp4OCamlRevisedParser.cmo camlp4/Camlp4Parsers/Camlp4OCamlRevisedParserParser | .cmo camlp4/Camlp4Parsers/Camlp4OCamlRevisedQuotationExpander.cmo camlp4/Camlp4Parsers/Camlp4QuotationCommon.cmo camlp4/Camlp4Parsers/Camlp4QuotationExpander.cmo camlp4/Camlp4Printers/Camlp4AstDumper.cmo camlp4/Camlp4Printers/Camlp4AutoPr | inter.cmo camlp4/Camlp4Printers/Camlp4NullDumper.cmo camlp4/Camlp4Printers/Camlp4OCamlAstDumper.cmo camlp4/Camlp4Printers/Camlp4OCamlPrinter.cmo camlp4/Camlp4Printers/Camlp4OCamlRevisedPrinter.cmo camlp4/Camlp4Filters/Camlp4AstLifter.cmo | camlp4/Camlp4Filters/Camlp4ExceptionTracer.cmo camlp4/Camlp4Filters/Camlp4FoldGenerator.cmo camlp4/Camlp4Filters/Camlp4LocationStripper.cmo camlp4/Camlp4Filters/Camlp4MapGenerator.cmo camlp4/Camlp4Filters/Camlp4MetaGenerator.cmo camlp4/Ca | mlp4Filters/Camlp4Profiler.cmo camlp4/Camlp4Filters/Camlp4TrashRemover.cmo | /usr/bin/ocamlopt.opt unix.cmxa -I /usr/lib64/ocaml/ocamlbuild /usr/lib64/ocaml/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild_config.ml myocamlbuild.ml /usr/lib64/ocaml/ocamlbuild/ocamlbuild.cmx -o myocamlbuild | /usr/bin/ocamldep.opt -modules camlp4/boot/camlp4boot.ml > camlp4/boot/camlp4boot.ml.depends | /usr/bin/ocamldep.opt -modules camlp4/boot/Camlp4.ml > camlp4/boot/Camlp4.ml.depends | /usr/bin/ocamldep.opt -modules camlp4/config/Camlp4_config.mli > camlp4/config/Camlp4_config.mli.depends | cp /usr/lib64/ocaml/compiler-libs/warnings.cmi camlp4/import/warnings.cmi | cp /usr/lib64/ocaml/compiler-libs/location.cmi camlp4/import/location.cmi | cp /usr/lib64/ocaml/compiler-libs/longident.cmi camlp4/import/longident.cmi | cp /usr/lib64/ocaml/compiler-libs/asttypes.cmi camlp4/import/asttypes.cmi | cp /usr/lib64/ocaml/compiler-libs/parsetree.cmi camlp4/import/parsetree.cmi | cp /usr/lib64/ocaml/compiler-libs/outcometree.cmi camlp4/import/outcometree.cmi | cp /usr/lib64/ocaml/compiler-libs/oprint.cmi camlp4/import/oprint.cmi | cp /usr/lib64/ocaml/compiler-libs/toploop.cmi camlp4/import/toploop.cmi | /usr/bin/ocamlc.opt -c -g -w Z -I camlp4/import -warn-error A-3 -I camlp4/config -I camlp4 -o camlp4/config/Camlp4_config.cmi camlp4/config/Camlp4_config.mli | /usr/bin/ocamlc.opt -c -g -w a -I camlp4/import -warn-error A-3 -I camlp4/config -I camlp4/boot -o camlp4/boot/Camlp4.cmo camlp4/boot/Camlp4.ml | + /usr/bin/ocamlc.opt -c -g -w a -I camlp4/import -warn-error A-3 -I camlp4/config -I camlp4/boot -o camlp4/boot/Camlp4.cmo camlp4/boot/Camlp4.ml | File "camlp4/boot/Camlp4.ml", line 14866, characters 41-44: | Error: This expression has type string but an expression was expected of type | Asttypes.arg_label | Command exited with code 2. | Makefile:13: recipe for target 'byte' failed | make: *** [byte] Error 10 | * ERROR: dev-ml/camlp4-4.02.1_p3::gentoo failed (compile phase): | * emake failed `----