From owner-freebsd-hackers@FreeBSD.ORG Mon May 5 17:50:38 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 25BA11065675 for ; Mon, 5 May 2008 17:50:38 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outK.internet-mail-service.net (outk.internet-mail-service.net [216.240.47.234]) by mx1.freebsd.org (Postfix) with ESMTP id 0DCCB8FC22 for ; Mon, 5 May 2008 17:50:37 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.40) with ESMTP; Mon, 05 May 2008 18:52:15 -0700 Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 2F5D12D6013; Mon, 5 May 2008 10:50:37 -0700 (PDT) Message-ID: <481F48EE.3050806@elischer.org> Date: Mon, 05 May 2008 10:50:38 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.12 (Macintosh/20080213) MIME-Version: 1.0 To: Kris Kennaway References: <4dcb5abd0805050540m292b319aw52aa2cb8ba018e12@mail.gmail.com> <481F0DB3.9070505@FreeBSD.org> In-Reply-To: <481F0DB3.9070505@FreeBSD.org> 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 17:50:38 -0000 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. > > If your goal is to provide an application that runs on a range of > FreeBSD versions, then either build it for the oldest of these versions, > or provide multiple versions if there is a reason to do so (e.g. if > there have been major improvements in the OS that are relevant to your > application). I agree in general, however we do make an attempt to keep ABI compatibility within a release line, so that there is a high probability that a binary compiled on a later one will run on an earlier one as long as it does not rely on new features. It's not guaranteed, but if you test it on the oldest of the line it should work on all intermmediate releases too. > > Kris > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"