From owner-cvs-all@FreeBSD.ORG Thu May 29 15:33:55 2008 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 703DB106566B; Thu, 29 May 2008 15:33:55 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id E1F898FC1F; Thu, 29 May 2008 15:33:54 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.3/8.14.3/NETPLEX) with ESMTP id m4TFXiMp020009; Thu, 29 May 2008 11:33:44 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Thu, 29 May 2008 11:33:45 -0400 (EDT) Date: Thu, 29 May 2008 11:33:44 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Robert Watson In-Reply-To: <20080529092022.E39873@fledge.watson.org> Message-ID: References: <200805272004.m4RK4SZt029194@repoman.freebsd.org> <483C7FF2.6000607@FreeBSD.org> <483C977F.20105@delphij.net> <20080528060333.GA4699@zim.MIT.EDU> <483E64D8.50802@freebsd.org> <20080529092022.E39873@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Mailman-Approved-At: Thu, 29 May 2008 16:04:42 +0000 Cc: Maxim Sobolev , src-committers@freebsd.org, d@delphij.net, cvs-src@freebsd.org, cvs-all@freebsd.org, Xin LI , re@freebsd.org, Andre Oppermann , David Schultz Subject: Re: cvs commit: src/include string.h src/lib/libc/string Makefile.inc memchr.3 memrchr.c src/sys/sys param.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2008 15:33:55 -0000 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