Mailinglist Archive: opensuse (4343 mails)

< Previous Next >
Re: [SLE] library dependency?
  • From: Philipp Thomas <pth@xxxxxxxxx>
  • Date: Wed, 06 Nov 2002 01:34:07 +0100
  • Message-id: <dfngsukdcvghbuf13bkmd4se12q934gkb2@xxxxxxx>
zentara <zentara@xxxxxxxxxxx> [Tue, 5 Nov 2002 06:21:12 -0500]:

>Yeah, this happens with alot of apps.

Well, but correctly solving it ain't that easy :)

>Go into /usr/lib and make symlinks
>@libcrypto.so

No, this is provided by openssl-devel.rpm and in nearly every case only
needed for compiling an application/binary.

>@libcrypto.so.0

Is useless, as libcrypto.so.0.9.6 of 8.1 has an internal name (the so
called soname of libcrypto.so.0.9.6.

>The apps look for the simple name of the lib instead of the full name.

What apps look for are the names recorded in special fields of the
binary, the so called DT_NEEDED. A ldd on the binary will show you those
names and what library it resolves to.

In the case of libcrypto creating the symlink is *wrong*. If you do a
'objdump -p /usr/lib/libcrypto.so.0.9.6', you'll find in the output
this:

SONAME libcrypto.so.0.9.6

This is the name that gets written into DT_NEEDED of the application.
The contents of this Field may be viewed by ldd or by 'objdump -p'.

If this fresh jpilot RPM lists libcrypto.so.0 as needed, it has been
compiled on a system where libcrypto.so points to the wrong library!
Creating random symlinks won't cure the root cause.

Philipp

--
Philipp Thomas work: pthomas@xxxxxxx
Development SuSE Linux AG private: pth@xxxxxxxxx

< Previous Next >
Follow Ups
References