[OpenAFS-devel] Re: [OpenAFS] jafs et al

Russ Allbery rra@stanford.edu
Fri, 16 Mar 2007 11:39:01 -0700


Derrick J Brashear <shadow@dementia.org> writes:
> On Fri, 16 Mar 2007, Russ Allbery wrote:

>> I expect symbol versioning to do what symbol versioning does, namely to
>> provide a mechanism for maintaining a stable ABI even when introducing
>> new function signatures so that the library ABI doesn't have to be
>> changed unnecessarily and so that the SONAME can remain fairly stable.
>> A stable SONAME is important for packaging to avoid unnecessary shared
>> library transitions and backward compatibility issues when building
>> related programs.  There are lots of web pages out there about what
>> symbol versioning is used for; I want it for all of the standard
>> reasons.

> The soname should be what it always is: a name. When you add stuff, bump
> the minor so version. When you change stuff, bump the major version. Of
> course, the tools don't actually necessarily work right when you do
> this, but there's no excuse for that. It dates to SunOS 4. Of course, we
> have to live in the world we've got, not the one we should have.

Oh, I agree with all this.  What symbol versioning additionally buys you
is that if you change something in a way that you can still provide the
old interface for backward compatibility, there is a means to do that
which works correctly with both old code and new code.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>