From owner-freebsd-hackers@FreeBSD.ORG Sat Apr 15 18:28:54 2006 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3F0CB16A402; Sat, 15 Apr 2006 18:28:54 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id B834B43D45; Sat, 15 Apr 2006 18:28:53 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (localhost.village.org [127.0.0.1] (may be forged)) by harmony.bsdimp.com (8.13.4/8.13.4) with ESMTP id k3FIQgCx032950; Sat, 15 Apr 2006 12:26:42 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sat, 15 Apr 2006 12:26:57 -0600 (MDT) Message-Id: <20060415.122657.111699385.imp@bsdimp.com> To: deischen@freebsd.org From: "M. Warner Losh" In-Reply-To: References: <20060415.120640.28764842.imp@bsdimp.com> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: victor@bsdes.net, hackers@freebsd.org Subject: Re: Missing dependencies on shared libraries X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Apr 2006 18:28:54 -0000 In message: Daniel Eischen writes: : On Sat, 15 Apr 2006, M. Warner Losh wrote: : : > In message: : > Daniel Eischen writes: : > : On Sat, 15 Apr 2006, M. Warner Losh wrote: : > : : > : > In message: : > : > Daniel Eischen 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