From owner-freebsd-questions@FreeBSD.ORG Tue Jun 17 10:48:36 2003 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5286537B404; Tue, 17 Jun 2003 10:48:36 -0700 (PDT) Received: from ns1.xcllnt.net (209-128-86-226.BAYAREA.NET [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id D14C843F75; Tue, 17 Jun 2003 10:48:34 -0700 (PDT) (envelope-from marcel@xcllnt.net) Received: from dhcp01.pn.xcllnt.net (dhcp01.pn.xcllnt.net [192.168.4.201]) by ns1.xcllnt.net (8.12.9/8.12.9) with ESMTP id h5HHmYDZ056139; Tue, 17 Jun 2003 10:48:34 -0700 (PDT) (envelope-from marcel@piii.pn.xcllnt.net) Received: from dhcp01.pn.xcllnt.net (localhost [127.0.0.1]) by dhcp01.pn.xcllnt.net (8.12.9/8.12.9) with ESMTP id h5HHmYst001133; Tue, 17 Jun 2003 10:48:34 -0700 (PDT) (envelope-from marcel@dhcp01.pn.xcllnt.net) Received: (from marcel@localhost) by dhcp01.pn.xcllnt.net (8.12.9/8.12.9/Submit) id h5HHmY1O001132; Tue, 17 Jun 2003 10:48:34 -0700 (PDT) (envelope-from marcel) Date: Tue, 17 Jun 2003 10:48:34 -0700 From: Marcel Moolenaar To: Alexander Kabaev Message-ID: <20030617174834.GA1012@dhcp01.pn.xcllnt.net> References: <3EEE4717.2090409@mail.flyingcroc.net> <1055804020.79093.2.camel@rushlight.kf8nh.apk.net> <3EEF19D5.9040706@mail.flyingcroc.net> <20030617154208.GA584@dhcp01.pn.xcllnt.net> <3EEF3883.1080500@mail.flyingcroc.net> <20030617160141.GB584@dhcp01.pn.xcllnt.net> <20030617130236.7c683e4c.ak03@gte.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030617130236.7c683e4c.ak03@gte.com> User-Agent: Mutt/1.5.4i cc: stable@freebsd.org cc: questions@freebsd.org cc: Joe Kelsey Subject: Re: Tools to modify shared libraries X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 17:48:36 -0000 On Tue, Jun 17, 2003 at 01:02:36PM -0400, Alexander Kabaev wrote: > On Tue, 17 Jun 2003 09:01:41 -0700 > Marcel Moolenaar wrote: > > > On Tue, Jun 17, 2003 at 08:49:23AM -0700, Joe Kelsey wrote: > > Linux uses the same linker (GNU ld). Fixing the linker will have the > > same effect on Linux as it will have on FreeBSD and hence will prevent > > unnecessary dependencies in Linux libraries to Linux libraries and > > thus remove the need to patch ELF files in the long run. > > > > LD putting a library in DT_NEEDED regardless of whether or not library > exports any required symbols as long as it appears on command line is a > feature, not a bug AFAIK. It's a bug because DT_NEEDED serves the purpose of recording library dependencies. Any library that does not contribute to symbol resolution is by definition not a dependency. Hence, its presence in DT_NEEDED only makes the dependency information wrong. Dependency information that's wrong is untrustworthy and unreliable and thus unusable. Hence, a bug. Immediate consequences of broken dependency information is the increased startup time of shared binaries, the restriction in use of libraries in cases where they can be used and the obstruction in replacing libraries with different implementations by possibly causing artificial conflicts due to unnecessary loading of libraries. Only explicit user directives should allow adding libraries to DT_NEEDED regardless of whether there's actually a dependency. -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net