Date: Sat, 15 Apr 2006 12:26:57 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: deischen@freebsd.org Cc: victor@bsdes.net, hackers@freebsd.org Subject: Re: Missing dependencies on shared libraries Message-ID: <20060415.122657.111699385.imp@bsdimp.com> In-Reply-To: <Pine.GSO.4.64.0604151411140.9269@sea.ntplx.net> References: <Pine.GSO.4.64.0604151358210.9220@sea.ntplx.net> <20060415.120640.28764842.imp@bsdimp.com> <Pine.GSO.4.64.0604151411140.9269@sea.ntplx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <Pine.GSO.4.64.0604151411140.9269@sea.ntplx.net>
Daniel Eischen <deischen@freebsd.org> writes:
: On Sat, 15 Apr 2006, M. Warner Losh wrote:
:
: > In message: <Pine.GSO.4.64.0604151358210.9220@sea.ntplx.net>
: > Daniel Eischen <deischen@freebsd.org> writes:
: > : On Sat, 15 Apr 2006, M. Warner Losh wrote:
: > :
: > : > In message: <Pine.GSO.4.64.0604141439280.3685@sea.ntplx.net>
: > : > Daniel Eischen <deischen@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060415.122657.111699385.imp>
