Skip site navigation (1)Skip section navigation (2)
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>