Am Sam, 2002-09-21 um 16.47 schrieb cwaki@medynet.sk: > > Please send me the output of: > > > > strace openssl version > execve("/usr/bin/openssl", ["openssl", "version"], [/* 17 vars */]) = 0 > uname({sys="Linux", node="onyx", ...}) = 0 > brk(0) = 0x808ab64 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 > open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) > open("/etc/ld.so.cache", O_RDONLY) = 3 > fstat64(3, {st_mode=S_IFREG|0644, st_size=11858, ...}) = 0 > old_mmap(NULL, 11858, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 > close(3) = 0 > open("/usr/lib/i686/libssl.so.0.9.6", O_RDONLY) = 3 This would mean, that it works if you call LD_LIBRARY_PATH=/usr/lib strace openssl version but not if you call strace openssl version That looks like a big bug in the dynamic linker. I just verified it on a 486 box. If I use LD_LIBRARY_PATH=/usr/lib, the library gets loaded from /usr/lib/i486. If I don't use it, the library gets loaded from /usr/lib/i686. On a second thought, it looks like a problem with ldconfig. ldconfig searches all the directories i686, i586 etc. and puts it in the cache. This way, the i686 library is allways found, as long as one does not use an LD_LIBRARY_PATH=/usr/lib. Here ld.so does it correctly. If this is really the case, I have to cancel the optimisation for openssl. Christoph
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil