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>