From owner-cvs-all@FreeBSD.ORG Sun Dec 16 16:21:29 2007 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7376416A417; Sun, 16 Dec 2007 16:21:29 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from redbull.bpaserver.net (redbullneu.bpaserver.net [213.198.78.217]) by mx1.freebsd.org (Postfix) with ESMTP id C4E6B13C447; Sun, 16 Dec 2007 16:21:28 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from outgoing.leidinger.net (p54A57E90.dip.t-dialin.net [84.165.126.144]) by redbull.bpaserver.net (Postfix) with ESMTP id 9D6342E273; Sun, 16 Dec 2007 17:03:50 +0100 (CET) Received: from deskjail (deskjail.Leidinger.net [192.168.1.109]) by outgoing.leidinger.net (Postfix) with ESMTP id 7C5E67D7A6; Sun, 16 Dec 2007 17:03:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=Leidinger.net; s=outgoing-alex; t=1197821026; bh=Ax2m9NWXhL7Gr3y/17CN7YpsNC/fEBmKk S7tboqIuH8=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To: References:X-Mailer:Mime-Version:Content-Type: Content-Transfer-Encoding; b=0NcqvscUzx6sF0W4lgZlLTSyC5eBwToe0aFuS kpABTex+xrhUmftdjS+2Fl+jwG7UagpkMjXfZMb5MgQYAGU6j1ADcSeizmVXypfOZjE hnQJ3r9PvmKanFy2ybOHrFItSA6kOwUQ1yYDOkG1a1zIojLVU0klDu9VMhKQhXHpw0P iLZgIsavDUUStsLKbluI0uqcLSLFK6uh+tztC+RA4438N4MixFyt3V+uYrEhDs9A1+r P9IBUhr7uy04rxylwfn2mgTY/A2eMKnRdQPuAtKS4sbP3CSaAStrnX/KplYgRu+sfKj nyoJQxEbeNsmMdQfK0nhlyRjKKH85trwxXspg== Date: Sun, 16 Dec 2007 17:03:45 +0100 From: Alexander Leidinger To: Daniel Eischen Message-ID: <20071216170345.384e6e06@deskjail> In-Reply-To: References: <200712140308.lBE38Ae7061160@repoman.freebsd.org> <20071213235617.2b554b60@kan.dnsalias.net> <20071214083507.GA33635@VARK.MIT.EDU> X-Mailer: Claws Mail 3.0.1 (GTK+ 2.10.14; i686-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BPAnet-MailScanner-Information: Please contact the ISP for more information X-BPAnet-MailScanner: Found to be clean X-BPAnet-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-14.9, required 6, BAYES_00 -15.00, DKIM_SIGNED 0.00, DKIM_VERIFIED -0.00, RDNS_DYNAMIC 0.10) X-BPAnet-MailScanner-From: alexander@leidinger.net X-Spam-Status: No Cc: Kabaev , David Schultz , Yar Tikhiy , cvs-all@freebsd.org, Alexander Subject: Re: cvs commit: src/lib/msun Symbol.map X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Dec 2007 16:21:29 -0000 Quoting Daniel Eischen (Fri, 14 Dec 2007 11:31:46 -0500 (EST)): > On Fri, 14 Dec 2007, David Schultz wrote: > > > On Fri, Dec 14, 2007, Daniel Eischen wrote: > >> I think we reached some sort of consensus that the namespace would be > >> bumped for every release...? So unless these get added to 7.0 before > >> it goes out the door, they should be put in a separate namespace. > >> > >> On the other hand, newly added symbols don't break the ABI. I > >> don't think there is a technical reason why symbols can't be > >> added to FBSD_1.0 in -current; they can be easily backported > >> to 7.0. > > > > The only reason I can think of---and perhaps this is why Alex was > > objecting---is that someone could write a library that exports a > > symbol with the same name but a different purpose. Then a binary > > that was linked against both that library and libm.so.5 could get > > different results on later versions of FreeBSD. > > No, that's not the reason - see Alex' other email. > > >> At a minimum, we need to create one new namespace in each > >> release branched from -current when there is one or more > >> ABI changes from the prior release. Perhaps we should just > >> move to FBSD_1.1 now in 8-current just to make things easier. > >> When we go to 9-current, we move to FBSD_1.2, etc. If you > >> need to backport changes back to 7.x, then you also have to > >> create the matching version in 7.x. > > > > The trouble with that is that if I MFC one thing now and another > > thing between 7.0-RELEASE and 7.1-RELEASE, then people can just as > > easily complain that I polluted the FBSD_1.1 namespace. The only > > pedantically correct resolution I can think of is to add a new > > version for each new symbol that I might possibly ever want to > > MFC. (Usually I don't plan on MFCing due to limited time, but > > ports maintainers sometimes ask. This happens less now that we're > > free from the overly long 4.x release cycle.) > > No, everytime we branch a release from -current (e.g, at 8.0, > 9.0, etc), we should increment the namespace. -current typically > stays at the same number for quite a while (1-3 years?). We > go to FBSD_1.1 now in 8-current. Check with re@ and see if I don't know much about the policy for symbol versioning, but from reading some mails here I'm a little bit puzzled. Wouldn't it make more sense to go to FBSD_2.0 in -current, so that we can go to FBSD_1.1 for 7.1 if needed? This way we can add new symbols for 7.1 in the FBSD_1.1 namespace. If we do it like this (I don't know if this is possible, or if an increase of the major number has a different meaning in the current policy), applications compiled for 7.1 which use the new symbols, give a better understandable error message to the user (when he looks up FBSD_1.1 he sees it is the namespace for a change in 7.1). > you can MFC your symbols before 7.0. If not, then move them > to FBSD_1.1 in -current. If you have to MFC symbols from > FBSD_1.1 in -current, then just add those symbols to FBSD_1.1 > in 7.x. And here a big part of lack of understanding for this shows up on my side. If I have a library with symbols from the FBSD_1.1 namespace, I can not expect that it has all the symbols from the FBSD_1.1 namespace. The problem on my side is, that I would expect that it contains all the symbols from the FBSD_1.1 namespace of this library. With our old scheme (library versioning without symbol versioning), this was the case. I don't know what the best solution would be, as I'm not that deep in toolchain issues, but whatever the way is we go, we should document changes like this (maybe it's even POLA..., at least I think it is a very big change) promintently. > Whatever happens, the symbols in release N.x must be present in > the same namespaces as release N.x+y through -current to > maintain backward compatibility. The opposite is not true, > as release N.x+y can contain a superset of symbols from > release N.x. Bye, Alexander. -- I'm DESPONDENT ... I hope there's something DEEP-FRIED under this miniature DOMED STADIUM ... http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137