Gentoo Archives: gentoo-amd64

From: Chris Brennan <xaero@××××××××××.net>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] Re: revdep-rebuild keep on detecting a broken link referred to libqt-mt.so.3
Date: Sat, 01 Mar 2008 04:12:06
Message-Id: 47C8D787.5060100@xaerolimit.net
In Reply to: [gentoo-amd64] Re: revdep-rebuild keep on detecting a broken link referred to libqt-mt.so.3 by Duncan <1i5t5.duncan@cox.net>
1 Duncan wrote:
2 > Chris Brennan <xaero@××××××××××.net> posted
3 > 47C83FBF.3080905@××××××××××.net, excerpted below, on Fri, 29 Feb 2008
4 > 12:24:15 -0500:
5 >
6 > [Duncan wrote...]
7 >>> Hmm... so what about /usr/qt/3/lib/libqt-mt.so ? Here, it's a symlink
8 >>> pointing to libqt-mt.so.3, a symlink pointing to libqt-mt.so.3.3, again
9 >>> a symlink, pointing at libqt-mt.so.3.3.8, which is the actual
10 >>> shared-object library file.
11 >> the point was the error msg from the emerge output about wrong format.
12 >
13 > The problem is, "wrong format" can mean symlink pointed at nothing, in some
14 > contexts. If the target file doesn't exist...
15 >
16 > It can also mean it's for some reason it's pointed at a text file, or a
17 > file of the wrong bitness, or a file-system corrupt file, or..., which
18 > is what the next part is about.
19 >
20 >>> If you have a valid set of symlinks, pick any one of them and see what
21 >>> readelf -h says about it. If the class entry (right under magic) is
22 >>> anything other than ELF64, then you have a corrupted library and
23 >>> probably need to remerge qt (be sure you remerge qt3 not 4, if you have
24 >>> it merged as well). If it's ELF64 and appears to be readable, then you
25 >>> have other deeper problems.
26 >> I have re-emerged qt-3 numerous times, here is the output of readelf
27 >>
28 >> xaero@Leviathan ~ $ readelf -h /usr/qt/3/lib/libqt-mt.so.3.3.8 ELF
29 >> Header:
30 >> Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
31 >> Class: ELF32
32 >
33 > That's the problem right there. It's trying to link a 32-bit library
34 > into (presumably, since this is the amd64 list/group) a 64-bit
35 > ELF binary. That's just not going to work, period, and remerging
36 > the 64-bit qt isn't going to correct the problem either (unless it
37 > overwrites the file, which it obviously doesn't if you've tried it
38 > already).
39 >
40 > That's progress. Now, we need to find out if any packages you have
41 > merged, probably emul-linux-x86-* packages since that's where the
42 > 32-bit stuff comes from unless you are running a full 32-bit chroot,
43 > and I've no indication of that.
44 >
45 > equery belongs libqt-mt.so.3.3.8
46 >
47 > I didn't use the path, since lib and lib64 are normally symlinked
48 > one way or the other on amd64, and if you searched by path, you'd
49 > need to search for both paths.
50 >
51 > Here, I get one (just one) entry, but I'm running no-multilib since
52 > I don't do binary-only and that's about the only reason one might
53 > have for 32-bit.
54 >
55 > [ Searching for file(s) libqt-mt.so.3.3.8 in *... ]
56 > x11-libs/qt-3.3.8-r4 (/usr/qt/3/lib64/libqt-mt.so.3.3.8)
57 >
58 > So it's the 64-bit qt package that owns it, here. What about
59 > there? Do two packages own it and do both point at the same
60 > file, possibly thru different directory/symlink paths? None?
61 >
62 > If none it's an orphaned file and you /should/ be able to remove
63 > it safely, but you may want to move it somewhere out of the
64 > library search path but keep it around for awhile just in case.
65 >
66 > If only the 64-bit package points to it, same thing, but
67 > remerge the 64-bit qt afterward, and I frankly don't know why
68 > remerging it with that file in place didn't fix the problem.
69 >
70 > If one and it's 32-bit, then you have a problem with the
71 > lib-linking search path. First, check for updates to the 32-bit
72 > emul-linux-* package and try that if there are any. Else there
73 > are ways to fix it but you'll need to get someone with more
74 > knowledge in the field to help, as I never had the problem on
75 > multilib myself and now am 64-bit only so haven't bothered with
76 > the details.
77 >
78 > If two, and both paths point to the same thing, it's something
79 > portage's config-protect FEATURE should have caught if you
80 > have it enabled. Again, check for updates on the 32-bit
81 > package and try them first, then seek further help, but in
82 > this case it's a bug that should either be in Gentoo's bugzilla
83 > already or that you can file if not.
84 >
85
86 app-emulation/emul-linux-x86-qtlibs seems to have been the culprit, I
87 don't need it for anything that I can tell. It's been removed for now
88 and I have moved on to building the app I intended to build when all
89 this started (which was The Gimp). As of the writing of this, it is
90 building.
91 --
92 gentoo-amd64@l.g.o mailing list

Replies