On Sat, 10 May 2008, Mike Meyer wrote:

On Sat, 10 May 2008 13:50:48 +0100 (BST)
Robert Watson <[EMAIL PROTECTED]> 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.

Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to