Missing dependencies on shared libraries
M. Warner Losh
imp at bsdimp.com
Sat Apr 15 18:28:54 UTC 2006
In message: <Pine.GSO.4.64.0604151411140.9269 at sea.ntplx.net>
Daniel Eischen <deischen at freebsd.org> writes:
: On Sat, 15 Apr 2006, M. Warner Losh wrote:
:
: > In message: <Pine.GSO.4.64.0604151358210.9220 at sea.ntplx.net>
: > Daniel Eischen <deischen at freebsd.org> writes:
: > : On Sat, 15 Apr 2006, M. Warner Losh wrote:
: > :
: > : > In message: <Pine.GSO.4.64.0604141439280.3685 at sea.ntplx.net>
: > : > Daniel Eischen <deischen at freebsd.org> writes:
: > : > : On Fri, 14 Apr 2006, Victor Balada Diaz wrote:
: > : > :
: > : > : > Hi,
: > : > : > I found that ldd doesn't report libc as a dependency on most (all?)
: > : > : > libraries:
: > : > : >
: > : > : > pato> ldd /usr/lib/libfetch.so
: > : > : > /usr/lib/libfetch.so:
: > : > : > libssl.so.3 => /usr/lib/libssl.so.3 (0x4816a000)
: > : > : > libcrypto.so.3 => /lib/libcrypto.so.3 (0x48198000)
: > : > : >
: > : > : > does anyone know why?
: > : > :
: > : > : AFAIK, it's being worked on. It's not just libc either, -pthread
: > : > : also has to start linking to libpthread.
: > : >
: > : > We don't record libc dependencies into shared libraries right now. If
: > : > we did, that would create some problems and solve some problems. With
: > : > symbol versioning, it most likely will become moot, since we'll never
: > : > have to bump libc major version again...
: > :
: > : kan stated he was working on doing this, which is what I was
: > : referring to above.
: >
: > That makes sense. If you explicitly include libc on the command line
: > to build the library, it is included...
:
: Here's the link to his original reply to -current. Also, if you
: look at linux shared libraries, you'll note they have dependencies
: to libc.
I guess what I'm saying is that on FreeBSD, the system built shared
libraries don't have libc recorded in them because we don't add -lc on
the commnad line to build them. Other libraries do have it recorded
in them, for example I have libxvidcore.so from some port on my
system:
readelf -d libxvidcore.so
Dynamic segment at offset 0x8a39c contains 20 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.4]
If we hacked bsd.lib.mk to include -lc always, all shared libraries
would have a libc dependency.
Warner
More information about the freebsd-hackers
mailing list