cvs commit: src/include string.h src/lib/libc/string Makefile.inc memchr.3 memrchr.c src/sys/sys param.h

Daniel Eischen deischen at freebsd.org
Thu May 29 15:33:55 UTC 2008


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


More information about the cvs-all mailing list