From owner-freebsd-hackers@FreeBSD.ORG Sun May 11 01:18:03 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 292231065676; Sun, 11 May 2008 01:18:03 +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 B1B528FC13; Sun, 11 May 2008 01:18:02 +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 m4B0s96I027040; Sat, 10 May 2008 20:54:09 -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]); Sat, 10 May 2008 20:54:10 -0400 (EDT) Date: Sat, 10 May 2008 20:54:09 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Robert Watson In-Reply-To: <20080510213323.E35578@fledge.watson.org> Message-ID: References: <4dcb5abd0805050540m292b319aw52aa2cb8ba018e12@mail.gmail.com> <481F0DB3.9070505@FreeBSD.org> <481F48EE.3050806@elischer.org> <481F4EED.2030300@FreeBSD.org> <4dcb5abd0805051132o77d68e36u3f0ad38630a02afd@mail.gmail.com> <481F6990.9010007@elischer.org> <20080510134833.J63808@fledge.watson.org> <20080510152718.788d638f@bhuda.mired.org> <20080510213323.E35578@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, Mike Meyer , Carl Shapiro , Julian Elischer Subject: Re: binary compatibility query X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 May 2008 01:18:03 -0000 On Sat, 10 May 2008, Robert Watson wrote: > On Sat, 10 May 2008, Mike Meyer wrote: > >> On Sat, 10 May 2008 13:50:48 +0100 (BST) >> Robert Watson wrote: >>> On Mon, 5 May 2008, Julian Elischer wrote: >>>> basically if you rely only on the standard posix interfaces and don't do >>>> anything exotic then you will "probably" be safe. >>> For "raw" UNIX applications, this rule of thumb works well, but not for >>> applications that depend on third-party libraries, languages, or daemons. >> >> You can lose the dependency on third party libraries by compiling your >> application to a static binary. That will also help with the few breakages >> that occur with the system libraries, and with compatibility across major >> releases using the backwards compatX packages. > > However, if you do that, we'll probably shoot you in the foot by removing > kernel support for the thread library you are linking against. Since the > removal of KSE, it appears our ABI compatibility promise is at the libc or > libpthread layer, and not at the system call layer. We haven't done the > necessary compat work to let 6.x binaries using libkse work on an 8.x system > yet, but will presumably do that with a backport of libthr to a 6.x userspace > (i.e., 6.x library version). > > On almost all (serious) OS's I'm aware of, static linking for applications is > essentially forbidden for that reason -- vendors promise library > compatibility, not system call compatibility, and rely on being able to > change the implementations of system calls. I've brought this up before - we should seriously look at removing our static libraries, or at least make the statement that static binaries are not guaranteed to be ABI compatible. -- DE