From owner-freebsd-hackers@FreeBSD.ORG Mon May 5 18:24:33 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 5EC80106566B for ; Mon, 5 May 2008 18:24:33 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outS.internet-mail-service.net (outs.internet-mail-service.net [216.240.47.242]) by mx1.freebsd.org (Postfix) with ESMTP id 45CB08FC20 for ; Mon, 5 May 2008 18:24:33 +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 19:26:17 -0700 Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 3B94C2D601A; Mon, 5 May 2008 11:24:32 -0700 (PDT) Message-ID: <481F50E1.3010902@elischer.org> Date: Mon, 05 May 2008 11:24:33 -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> <481F48EE.3050806@elischer.org> <481F4EED.2030300@FreeBSD.org> In-Reply-To: <481F4EED.2030300@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 18:24:33 -0000 Kris Kennaway wrote: > Julian Elischer wrote: >> 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. > > Actually we don't attempt to keep this form of ABI compatibility > (running 6.3 binaries on 6.0, for example), because it basically > precludes ever adding new functions to libc within a branch, or new > syscalls to the kernel. You are correct that often binaries will not > notice these accumulated changes though, or can be carefully constructed > to avoid them. that's all that I said.. I said that because we keep a stable ABI there is a HIGH PROBABLILITY of stuff working, but not a guarantee. > > 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"