cvs commit: src/lib/msun Symbol.map

Alexander Kabaev kabaev at gmail.com
Fri Dec 14 07:12:55 PST 2007


On Fri, 14 Dec 2007 00:48:51 -0500 (EST)
Daniel Eischen <eischen at vigrid.com> wrote:

> On Thu, 13 Dec 2007, Alexander Kabaev wrote:
> 
> > On Fri, 14 Dec 2007 03:08:10 +0000 (UTC)
> > David Schultz <das at FreeBSD.org> wrote:
> >
> >> das         2007-12-14 03:08:10 UTC
> >>
> >>   FreeBSD src repository
> >>
> >>   Modified files:
> >>     lib/msun             Symbol.map
> >>   Log:
> >>   Typo in previous commit
> >>
> >>   Revision  Changes    Path
> >>   1.6       +2 -2      src/lib/msun/Symbol.map
> >>
> >> http://cvsweb.FreeBSD.org/src/lib/msun/Symbol.map.diff?r1=1.5&r2=1.6
> >
> > This is just wrong IMHO. New exported symbols should not be
> > introduced carelessly and certainly not should be added to the same
> > namespace that exists in 7.0. Either we add these to 7.0 before it
> > releases, or they should go into their own section which will start
> > collecting all new libc symbols to appear in 8.0.
> >
> > Daniel, Yar - what is your take on this?
> 
> 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.  If you were to add them to FBSD_1.1 in -current, then
> at a later time backport them to 7.0, then you would have to
> create a new namespace (FBSD_1.1) in 7.0 in order to add them.
> The only thing this buys you is being able to tell in what
> version they originated.  Perhaps that's reason enough?
> 
> 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.

I think this was our understanding last time, but I wanted to check
that I didn't forget anything. Adding symbols o FBSD_1.0 does not
technically breaks ABI, but creates namespace that is a superset of one
existing in 7.0. The 'classic' use of symbol versioning requires rtld
to check all the namespace dependencies recorded for the binary, and
the fact that namespace X exists in some library indicates that _all_
symbols from X are there and binary can run with this particular
version of the library. Extending FBSD_1.0 breaks this.

-- 
Alexander Kabaev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20071214/8ceeea41/signature.pgp


More information about the cvs-all mailing list