Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 May 2008 11:33:44 -0400 (EDT)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        Maxim Sobolev <sobomax@freebsd.org>, src-committers@freebsd.org, d@delphij.net, cvs-src@freebsd.org, cvs-all@freebsd.org, Xin LI <delphij@freebsd.org>, re@freebsd.org, Andre Oppermann <andre@freebsd.org>, David Schultz <das@freebsd.org>
Subject:   Re: cvs commit: src/include string.h src/lib/libc/string Makefile.inc memchr.3 memrchr.c src/sys/sys param.h
Message-ID:  <Pine.GSO.4.64.0805291122050.12774@sea.ntplx.net>
In-Reply-To: <20080529092022.E39873@fledge.watson.org>
References:  <200805272004.m4RK4SZt029194@repoman.freebsd.org> <483C7FF2.6000607@FreeBSD.org> <483C977F.20105@delphij.net> <20080528060333.GA4699@zim.MIT.EDU> <Pine.GSO.4.64.0805281049150.7240@sea.ntplx.net> <483E64D8.50802@freebsd.org> <20080529092022.E39873@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 29 May 2008, Robert Watson wrote:

>
> On Thu, 29 May 2008, Andre Oppermann wrote:
>
>> These symbol versioning discussion come up from time to time and actually 
>> as a developer who is not often confronted with it I have a hard time 
>> figuring out what exactly I'm supposed to do here.
>> 
>> Hence my pretty-please request to the guru(s) in residence to write up a 
>> section for the FreeBSD developers handbook explaining the concept of 
>> symbol versioning, its concrete implementation in FreeBSD and the rules we 
>> apply to versioning (including example cases like this and some earlier 
>> ones that came up).
>
> Daniel has a nice summary here:
>
>  http://people.freebsd.org/~deischen/symver/freebsd_versioning.txt
>
> However, I agree that this is something I'd like to see moved into the 
> developers handbook, and as we get more experience, fleshed out.  For 
> example, fts is one of the worked examples there, but I think the text could 
> talk a bit more about how a change in the layout of a structure, even though 
> function signatures remain the same, leads to an ABI change, and what other 
> implications there are.

I tried to do that with FILE, although it turns out it's not a good
example.  I think we're basically screwed with structures unless we
add versioning inside them.  An application can create a structure
using the new format from a recent libc, then pass it to a 3rd
party library that hasn't been rebuilt, and the 3rd party library
passes it back to libc using a compat function.

-- 
DE



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.0805291122050.12774>