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 |