From owner-freebsd-current@FreeBSD.ORG Tue Aug 28 14:39:14 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 CE58316A419 for ; Tue, 28 Aug 2007 14:39:14 +0000 (UTC) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (comp.chem.msu.su [158.250.32.97]) by mx1.freebsd.org (Postfix) with ESMTP id 21BE013C45B for ; Tue, 28 Aug 2007 14:39:13 +0000 (UTC) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (localhost [127.0.0.1]) by comp.chem.msu.su (8.13.4/8.13.4) with ESMTP id l7SE3gGx002664; Tue, 28 Aug 2007 18:03:43 +0400 (MSD) (envelope-from yar@comp.chem.msu.su) Received: (from yar@localhost) by comp.chem.msu.su (8.13.4/8.13.4/Submit) id l7SE3WIf002656; Tue, 28 Aug 2007 18:03:32 +0400 (MSD) (envelope-from yar) Date: Tue, 28 Aug 2007 18:03:32 +0400 From: Yar Tikhiy To: Daniel Eischen Message-ID: <20070828140331.GA598@comp.chem.msu.su> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.9i 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 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 14:39:14 -0000 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. 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? -- Yar