Gentoo Archives: gentoo-user

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Why doesn't revdep-rebuild catch undefined symbol errors?
Date: Sun, 28 Oct 2018 10:37:14
Message-Id: 20181028133657.aeedd2d7fe129f5e545521e6@gentoo.org
In Reply to: [gentoo-user] Why doesn't revdep-rebuild catch undefined symbol errors? by Nikos Chantziaras
1 On Thu, 25 Oct 2018 09:30:00 +0300 Nikos Chantziaras wrote:
2 > Trying to rebuild media-sound/pavucontrol or any other package that uses
3 > dev-cpp/cairomm (like pulseeffects) will fail with:
4 >
5 > /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld:
6 > /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libcairomm-1.0.so:
7 > undefined reference to `cairo_script_create'
8 >
9 > and a bunch of other "undefined reference" errors in libcairomm-1.0.so.
10 > I don't know what broke cairomm. But I thought revdep-rebuild would
11 > catch this. It doesn't.
12 >
13 > Now this is a rebuild of pavucontrol, so if I run:
14 >
15 > ldd -r /usr/bin/pavucontrol
16 >
17 > I will get:
18 >
19 > undefined symbol: cairo_script_create_for_stream
20 > (/usr/lib64/libcairomm-1.0.so.1)
21 > undefined symbol: cairo_script_set_mode (/usr/lib64/libcairomm-1.0.so.1)
22 > undefined symbol: cairo_script_surface_create
23 > (/usr/lib64/libcairomm-1.0.so.1)
24 > undefined symbol: cairo_script_from_recording_surface
25 > (/usr/lib64/libcairomm-1.0.so.1)
26 > undefined symbol: cairo_script_create (/usr/lib64/libcairomm-1.0.so.1)
27 > undefined symbol: cairo_script_surface_create_for_target
28 > (/usr/lib64/libcairomm-1.0.so.1)
29 > undefined symbol: cairo_script_get_mode (/usr/lib64/libcairomm-1.0.so.1)
30 > undefined symbol: cairo_script_write_comment
31 > (/usr/lib64/libcairomm-1.0.so.1)
32 >
33 > If I rebuild dev-cpp/cairomm manually (emerge -1 dev-cpp/cairomm), the
34 > error goes away, and the affected packages can now be emerged successfully.
35 >
36 > Shouldn't revdep-rebuild catch this problem? Shouldn't it check
37 > installed binaries for "undefined symbol" errors?
38
39 revdep-rebuild catches libraries from removed packages (including
40 removed older versions) still in use by other packages. Though with
41 proper subslot dependencies revdep-rebuild is rarely needed.
42
43 If for some reason library containing required symbol was
44 forcefully removed, revdep-rebuild cannot magically recreate that
45 symbol.
46
47 Best regards,
48 Andrew Savchenko

Replies

Subject Author
[gentoo-user] Re: Why doesn't revdep-rebuild catch undefined symbol errors? Nikos Chantziaras <realnc@×××××.com>