Unable to load shared library (signature?)
Greetings I've just emerged from a full day of hacking. It all started when I downloaded the latest update for SuSE 9.3. Along with everything else I accepted the kernel update (2.6.11.4-21.9-default) knowing full well I would have to deal with another iteration of the nvidia graphics driver download. After all the updates were properly sucked in and disseminated, I rebooted my computer. All of the boot sequence went well. However, the machine went into an endless login loop: while (1) { show login screen for 800ms clear screen } I was able to CTRL-ALT-BACKSPACE to get to a non-graphics login and then tried to figure out what was happening. startx would exit saying that kdeconfigure or some other binary in /opt/kde3/bin would fail. Upon closer examination, I was able to determine that the kde applications would complain of being "unable to load shared library lxxxxx.so.xxx". I used ldd, export LD_DEBUG=all, strace -f and other utilities to determine that the binary was unable to load the libkxxxx.so.y library. However, I was able to find the library manually at exactly the same location that the binary was complaining about. For example, I would see in strace: ... open("/lib64/libkxxxx.so.4", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\21\0"..., 640) = 640 ... "/lib64/libkxxxx.so.4 not found!" (or something like that) ..... ls -la /lib64/libkxxxx.so.4 had not problems finding the file with wide open permissions. After trying many other fruitless paths, I was able to recover by pointing /opt/kde3 to an older partition. I assume that even though the shared object files were found, they must have lacked some signature Questions: Is there some fine-grained tool that would have told me sooner what was going on? Am I the only one that has gone through this torture? TIA& Cheers P.S. Am I blowing etiquette by posting on two groups?
Pierre Patino wrote:
Greetings I've just emerged from a full day of hacking. It all started when I downloaded the latest update for SuSE 9.3. Along with everything else I accepted the kernel update (2.6.11.4-21.9-default) knowing full well I would have to deal with another iteration of the nvidia graphics driver download. After all the updates were properly sucked in and disseminated, I rebooted my computer. All of the boot sequence went well. However, the machine went into an endless login loop:
while (1) { show login screen for 800ms clear screen }
I was able to CTRL-ALT-BACKSPACE to get to a non-graphics login and then tried to figure out what was happening. startx would exit saying that kdeconfigure or some other binary in /opt/kde3/bin would fail. Upon closer examination, I was able to determine that the kde applications would complain of being "unable to load shared library lxxxxx.so.xxx". I used ldd, export LD_DEBUG=all, strace -f and other utilities to determine that the binary was unable to load the libkxxxx.so.y library. However, I was able to find the library manually at exactly the same location that the binary was complaining about. For example, I would see in strace:
... open("/lib64/libkxxxx.so.4", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\21\0"..., 640) = 640 ... "/lib64/libkxxxx.so.4 not found!" (or something like that) .....
ls -la /lib64/libkxxxx.so.4 had not problems finding the file with wide open permissions.
After trying many other fruitless paths, I was able to recover by pointing /opt/kde3 to an older partition.
I assume that even though the shared object files were found, they must have lacked some signature
Questions: Is there some fine-grained tool that would have told me sooner what was going on? Am I the only one that has gone through this torture?
TIA& Cheers
P.S. Am I blowing etiquette by posting on two groups?
You are talking about ONE specific library, right? Check /etc/ld.so.conf contains /opt/kde3/lib64, libkxxxx - the "k" suggests a KDE library which I'd expect to be in /opt/kde3/lib64. "l /lib64/libk*" says no such file or directory here - so if a KDE library exists in /lib64, it seems erroneous, you could rename it, run ldconfig and have another try. Regards Sid. -- Sid Boyce ... Hamradio License G3VBV, licensed Private Pilot Retired IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support Specialist Microsoft Windows Free Zone - Linux used for all Computing Tasks
On Friday 16 September 2005 07:14, Pierre Patino wrote:
Questions: Is there some fine-grained tool that would have told me sooner what was going on? Am I the only one that has gone through this torture?
Since you are talking about 64 bit, I feel I have to mention the most obvious cause for this. That it's looking for a 64 bit lib but finding a 32 bit, or vice versa. The "fine grained tool" in this case would be "file". Run it on the binary and on the lib, and see if they report the same bit count
P.S. Am I blowing etiquette by posting on two groups?
yes. If you want to send to two groups, send two email
Anders Johansson wrote:
On Friday 16 September 2005 07:14, Pierre Patino wrote:
Questions: Is there some fine-grained tool that would have told me sooner what was going on? Am I the only one that has gone through this torture?
Since you are talking about 64 bit, I feel I have to mention the most obvious cause for this. That it's looking for a 64 bit lib but finding a 32 bit, or vice versa. The "fine grained tool" in this case would be "file". Run it on the binary and on the lib, and see if they report the same bit count
P.S. Am I blowing etiquette by posting on two groups?
yes. If you want to send to two groups, send two email
OK, no more etiquette blunders. The libraries that the binaries were looking for were indeed 64-bit, just like the binaries themselves. Thanks to the tip, I've just found that there was a mismatch between the actual libraries stored in /opt/kde3/lib64 and /opt/kde3/bin. The libraries in /lib/kde3/lib64 were 32-bit! WTF? Now I need to find out how that happened. I blindly answered yes when the nvidia script asked if I wanted to dowload some stuff...
participants (3)
-
Anders Johansson
-
Pierre Patino
-
Sid Boyce