From owner-freebsd-hackers@FreeBSD.ORG Mon May 5 14:39:35 2008 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A48851065674 for ; Mon, 5 May 2008 14:39:35 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 8C9BF8FC17; Mon, 5 May 2008 14:39:34 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <481F1C24.3030405@FreeBSD.org> Date: Mon, 05 May 2008 16:39:32 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Daniel Eischen References: <4dcb5abd0805050540m292b319aw52aa2cb8ba018e12@mail.gmail.com> <481F0DB3.9070505@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, Carl Shapiro Subject: Re: binary compatibility query X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 May 2008 14:39:35 -0000 Daniel Eischen wrote: >> Binaries compiled on a certain version of FreeBSD will continue to run >> on later versions, but are not guaranteed to run on earlier versions >> (and in fact *will* not run depending on the binary). This is because >> over time the system libraries and kernel grow new features which may >> be used by applications, so they will therefore fail to run if >> executed on old systems that do not provide these features. > > For 7.0 and onwards, we will hopefully have a tool that you can > run on your application to do abi checking. One of the things > it should be able to do is tell under what releases it will run, > including previous releases. That sounds like a good idea! > For 6.x, you may be able to manually check the symbols your > application uses against the libraries from 6.0, 6.1, etc. > This should give a good idea as to whether your application > will run on those releases. I think checking symbols is > good enough for releases within a branch since we don't > change ABIs. Yeah, this should be enough for almost all cases. There are some aspects of the ABI that are not covered by library symbols though, such as file formats, the sysctl MIB, device ioctls, probably others. Kris