From owner-freebsd-current@FreeBSD.ORG Tue Aug 28 16:53:13 2007 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F2E616A420 for ; Tue, 28 Aug 2007 16:53:13 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 34C3B13C478 for ; Tue, 28 Aug 2007 16:53:13 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.1/8.14.1/NETPLEX) with ESMTP id l7SGqpGi023927; Tue, 28 Aug 2007 12:52:51 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-3.0 (mail.netplex.net [204.213.176.10]); Tue, 28 Aug 2007 12:52:51 -0400 (EDT) Date: Tue, 28 Aug 2007 12:52:51 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Yar Tikhiy In-Reply-To: <20070828140331.GA598@comp.chem.msu.su> Message-ID: References: <20070824.172212.74696955.imp@bsdimp.com> <20070825053302.GG99474@comp.chem.msu.su> <20070825.093925.43008968.imp@bsdimp.com> <1188071752.1853.44.camel@neo.cse.buffalo.edu> <20070826073535.GD21352@comp.chem.msu.su> <20070828140331.GA598@comp.chem.msu.su> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Ken Smith , current@freebsd.org, "M. Warner Losh" Subject: Re: Symbol versioning conventions (was Re: cvs commit: src/lib/libc/gen ...) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Aug 2007 16:53:13 -0000 On Tue, 28 Aug 2007, Yar Tikhiy wrote: > On Sun, Aug 26, 2007 at 12:48:41PM -0400, Daniel Eischen wrote: >> >> Here it is on -current, feel free to redirect it to arch. >> >> I updated my notes on symbol versioning - see "Version naming conventions" >> on downwards at: >> >> http://people.freebsd.org/~deischen/symver/freebsd_versioning.txt >> >> Feel free to cut&paste anything from it in replies. > > It seems that we've failed to divert the main discussion from the > cvs lists, so I'll comment on other sides of the symbol versioning > issue. > > First, you wrote that a symbol having multiple versions needs to > be listed in the symbol map file under each of its versions. I'm > afraid that the GNU ld(1) documentation doesn't suggest that. I > believe that it is correct to list each symbol in the symbol map > only once, under its default version. Ok, I'll update it. I think that part of my notes was written a long time ago. > Second, we need to decide how to handle SV consistently at source > tree level. In a trivial case, cut'n'paste or a stub function will > do, but in the more complex case of massive changes it can be hard > to reproduce the old ABI using stubs, e.g., because the new > implementation lost old bugs. In this case, CVS history should be > preserved for the old version at file level. A uniform approach > can be to repocopy the respective file(s) and add the version to > their name(s), e.g.: fts.c -> fts_fbsd_1_0.c. Does it sound > reasonable? Sure, I don't know if you have to use the version namespace in the filename, though. You could always put compat shim files into a separate directory too, but that might make building them a little more difficult if they rely on local headers. -- DE