Gentoo Archives: gentoo-user

From: lee <lee@××××××××.de>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: should everything compile?
Date: Tue, 27 Dec 2016 07:50:34
Message-Id: 87zijhdd5l.fsf@heimdali.yagibdah.de
In Reply to: [gentoo-user] Re: should everything compile? by "Holger Hoffstätte"
1 Holger Hoffstätte <holger@××××××××××××××××××.com> writes:
2
3 > On Mon, 26 Dec 2016 22:25:59 +0100, lee wrote:
4 >
5 >> Holger Hoffstätte <holger@××××××××××××××××××.com> writes:
6 >>
7 >>> On Mon, 26 Dec 2016 21:09:08 +0100, lee wrote:
8 >>>
9 >>>> Hi,
10 >>>>
11 >>>> there are some things that refuse to compile. One of them is
12 >>>> openimageio.
13 >>>>
14 >>>> Is this a bug, or am I missing something? Do I need to update something
15 >>>> else first?
16 >>>
17 >>> The latter, sort of. The error in question..
18 >>>
19 >>
20 >>> [...]
21 >>>> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to `Imf_2_1::Header::name[abi:cxx11]() const'
22 >>>> | ../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&)'
23 >>>> | ../libOpenImageIO/libOpenImageIO.so.1.6.13: undefined reference to
24 >>>> | `Imf_2_1::TypedAttribute<std::__cxx11::basic_string<char,
25 >>>> | std::char_traits<char>, std::allocator<char> >
26 >>>> | >::writeValueTo(Imf_2_1::OStream&, int) const'
27 >>>> | collect2: error: ld returned 1 exit status
28 >>> [..]
29 >>>
30 >>> ..indicates a mismatch in C++11 ABI which changed in gcc5. What happens is that one the
31 >>> dependencies of openimageio was built against the old C++11 std::string ABI (hence the
32 >>> link errors), and needs to be rebuilt. It looks to be "Imf" aka libIlmImf,
33 >>> whatever that is. Try to rebuild it with --oneshot and it should work.
34 >>> If a similar error pops up for a different dependency, repeat. :)
35 >>
36 >> Hm, this is really bad because it's difficult to figure out what needs
37 >> to be rebuilt. Is there a way to rebuild everything in some order that
38 >> works?
39 >
40 > equery b <file> or epm -qif tells you which package a file belongs to.
41 > Purely by searching vie emerge -s it looks like libIlmImf could be
42 > media-libs/ilmbase.
43
44 Yes, I have rebuilt those, and others, using trial and error to figure
45 out what needs to be rebuilt.
46
47 > A full-system approach (probably better in your case) is explained here:
48 > https://wiki.gentoo.org/wiki/Upgrading_from_gcc-4.x_to_gcc-5.x
49
50 Thanks! Seems all I need to do is the 'revdep-rebuild', which is now
51 running.
52
53 I hope I don't end up with an unbootable system ...
54
55 >> Here's the next one already, and what would I need to rebuild for that?
56 >
57 > That looks like a completely different problem (hard to tell from the error)
58 > but in any case _fix one problem at a time_.
59
60 That was some more packages that needed to be rebuilt.
61
62 The only thing that doesn't compile yet is cinelerra, which I don't
63 need for now. Maybe it works once all the libraries are rebuilt.