1 |
Chris Brennan <xaero@××××××××××.net> posted |
2 |
47C83FBF.3080905@××××××××××.net, excerpted below, on Fri, 29 Feb 2008 |
3 |
12:24:15 -0500: |
4 |
|
5 |
[Duncan wrote...] |
6 |
>> Hmm... so what about /usr/qt/3/lib/libqt-mt.so ? Here, it's a symlink |
7 |
>> pointing to libqt-mt.so.3, a symlink pointing to libqt-mt.so.3.3, again |
8 |
>> a symlink, pointing at libqt-mt.so.3.3.8, which is the actual |
9 |
>> shared-object library file. |
10 |
> |
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 |
> |
27 |
> I have re-emerged qt-3 numerous times, here is the output of readelf |
28 |
> |
29 |
> xaero@Leviathan ~ $ readelf -h /usr/qt/3/lib/libqt-mt.so.3.3.8 ELF |
30 |
> Header: |
31 |
> Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |
32 |
> Class: ELF32 |
33 |
|
34 |
That's the problem right there. It's trying to link a 32-bit library |
35 |
into (presumably, since this is the amd64 list/group) a 64-bit |
36 |
ELF binary. That's just not going to work, period, and remerging |
37 |
the 64-bit qt isn't going to correct the problem either (unless it |
38 |
overwrites the file, which it obviously doesn't if you've tried it |
39 |
already). |
40 |
|
41 |
That's progress. Now, we need to find out if any packages you have |
42 |
merged, probably emul-linux-x86-* packages since that's where the |
43 |
32-bit stuff comes from unless you are running a full 32-bit chroot, |
44 |
and I've no indication of that. |
45 |
|
46 |
equery belongs libqt-mt.so.3.3.8 |
47 |
|
48 |
I didn't use the path, since lib and lib64 are normally symlinked |
49 |
one way or the other on amd64, and if you searched by path, you'd |
50 |
need to search for both paths. |
51 |
|
52 |
Here, I get one (just one) entry, but I'm running no-multilib since |
53 |
I don't do binary-only and that's about the only reason one might |
54 |
have for 32-bit. |
55 |
|
56 |
[ Searching for file(s) libqt-mt.so.3.3.8 in *... ] |
57 |
x11-libs/qt-3.3.8-r4 (/usr/qt/3/lib64/libqt-mt.so.3.3.8) |
58 |
|
59 |
So it's the 64-bit qt package that owns it, here. What about |
60 |
there? Do two packages own it and do both point at the same |
61 |
file, possibly thru different directory/symlink paths? None? |
62 |
|
63 |
If none it's an orphaned file and you /should/ be able to remove |
64 |
it safely, but you may want to move it somewhere out of the |
65 |
library search path but keep it around for awhile just in case. |
66 |
|
67 |
If only the 64-bit package points to it, same thing, but |
68 |
remerge the 64-bit qt afterward, and I frankly don't know why |
69 |
remerging it with that file in place didn't fix the problem. |
70 |
|
71 |
If one and it's 32-bit, then you have a problem with the |
72 |
lib-linking search path. First, check for updates to the 32-bit |
73 |
emul-linux-* package and try that if there are any. Else there |
74 |
are ways to fix it but you'll need to get someone with more |
75 |
knowledge in the field to help, as I never had the problem on |
76 |
multilib myself and now am 64-bit only so haven't bothered with |
77 |
the details. |
78 |
|
79 |
If two, and both paths point to the same thing, it's something |
80 |
portage's config-protect FEATURE should have caught if you |
81 |
have it enabled. Again, check for updates on the 32-bit |
82 |
package and try them first, then seek further help, but in |
83 |
this case it's a bug that should either be in Gentoo's bugzilla |
84 |
already or that you can file if not. |
85 |
|
86 |
-- |
87 |
Duncan - List replies preferred. No HTML msgs. |
88 |
"Every nonfree program has a lord, a master -- |
89 |
and if you use the program, he is your master." Richard Stallman |
90 |
|
91 |
-- |
92 |
gentoo-amd64@l.g.o mailing list |