Date: Sat, 10 May 2008 20:54:09 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: Robert Watson <rwatson@freebsd.org> Cc: freebsd-hackers@freebsd.org, Mike Meyer <mwm@mired.org>, Carl Shapiro <carl.shapiro@gmail.com>, Julian Elischer <julian@elischer.org> Subject: Re: binary compatibility query Message-ID: <Pine.GSO.4.64.0805102050340.4851@sea.ntplx.net> In-Reply-To: <20080510213323.E35578@fledge.watson.org> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <rwatson@FreeBSD.org> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.0805102050340.4851>