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>