cvs commit: src/lib/msun Symbol.map

Daniel Eischen deischen at freebsd.org
Fri Dec 14 08:31:48 PST 2007


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
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.

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.

-- 
DE


More information about the cvs-all mailing list