Date: Mon, 20 Jul 2009 09:51:56 -0400 From: John Baldwin <jhb@freebsd.org> To: arch@freebsd.org Subject: Re: svn commit: r195767 - in head: . cddl/lib cddl/lib/libctf cddl/lib/libdtrace gnu/lib/libdialog gnu/lib/libg2c gnu/lib/libobjc gnu/lib/libreadline gnu/lib/libregex lib lib/libalias/libalias lib/liba... Message-ID: <200907200951.56551.jhb@freebsd.org> In-Reply-To: <200907191725.n6JHPOBe049379@svn.freebsd.org> References: <200907191725.n6JHPOBe049379@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 19 July 2009 1:25:24 pm Ken Smith wrote: > Author: kensmith > Date: Sun Jul 19 17:25:24 2009 > New Revision: 195767 > URL: http://svn.freebsd.org/changeset/base/195767 > > Log: > Bump the version of all non-symbol-versioned shared libraries in > preparation for 8.0-RELEASE. Add the previous version of those > libraries to ObsoleteFiles.inc and bump __FreeBSD_Version. > > Reviewed by: kib > Approved by: re (rwatson) I think we should figure out a plan for 9.0 for non-versioned libraries in the base system. If we are still going to bump most libraries every release, then I don't think symbol versioning is buying us much. I'm not sure if we want to just add versioning to all non-versioned libraries in the base system that aren't from contrib software, or if we want to relax the "bump everything" policy back to the older policy of "bump when you make the first ABI change" with a possible corollary of "add symbol versioning when you do". I'd probably vote for the latter. I know that someone missed bumping libm.so.2 at some point in the past because they didn't realize that a change adjusted the ABI. However, the same issue there exists with symbol versioning: you have to realize that you need to bump the version of a symbol. If we are going to trust our developers to manage the versions of versioned symbols, then we should trust them to manage non-versioned library versions as well. Or the contrapositive: if we do not trust them to manage non-versioned library versions, perhaps we can't trust them (us) to manage symbol versions either. I guess specifically I see a disconnect in that in our current policy we trust developers to know when a change is an ABI change for a library with versioned symbols, but we don't trust them to know when a change is an ABI change for a library without versioned symbols. Either we trust developers to recognize an ABI change or not. Whether or not the library has versioned symbols doesn't change that, and the resulting mess if we get it wrong is just as ugly in either case. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907200951.56551.jhb>