From owner-freebsd-hackers@FreeBSD.ORG Mon May 5 14:26:21 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 AE6BE106567B; Mon, 5 May 2008 14:26:21 +0000 (UTC) (envelope-from eischen@vigrid.com) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 6655E8FC16; Mon, 5 May 2008 14:26:21 +0000 (UTC) (envelope-from eischen@vigrid.com) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.2/8.14.2/NETPLEX) with ESMTP id m45Dw8qA010893; Mon, 5 May 2008 09:58:08 -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]); Mon, 05 May 2008 09:58:08 -0400 (EDT) Date: Mon, 5 May 2008 09:58:08 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Kris Kennaway In-Reply-To: <481F0DB3.9070505@FreeBSD.org> Message-ID: References: <4dcb5abd0805050540m292b319aw52aa2cb8ba018e12@mail.gmail.com> <481F0DB3.9070505@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed 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:26:21 -0000 On Mon, 5 May 2008, Kris Kennaway wrote: > Carl Shapiro wrote: >> FreeBSD Hackers, >> >> I have a general question about the compatibility of FreeBSD binaries >> within major releases. If I build a binary for a given release of >> FreeBSD can I make a reasonable guarantee that the binary will run on >> both previous and subsequent minor releases of the same major release? >> In other words, if I build on FreeBSD 6.3 and do not rely on anything >> unique to 6.3 (such as the presence of specific version strings) how >> certain can I be that the code will or will not run on 6.2, 6.1 etc.? >> >> Also, is this documented anywhere on the FreeBSD web site? The >> closest thing I could find is the following guidance for driver >> vendors which falls just short of answering my question: >> >> http://wiki.freebsd.org/VendorInformation >> >> (Too bad the fancy illustration is missing.) > > 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. 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. -- DE