On Sat, Oct 10, 2009 at 02:11:07PM -0400, Alex Goncharov wrote: > ,--- You/Dag-Erling (Sat, 10 Oct 2009 19:11:50 +0200) ----* > | "Simon L. Nielsen" <[email protected]> writes: > | > It's not entirely that simple. The ABI on a stable branch like 7.x > | > should be backward compatible, but there isn't a guarantee of forward > | > compatibility. IE, 7.0 binary should be able to run on 7.x, but a 7.2 > | > binary might not run on 7.0. It should be more or less the same with > | > the API's. > | > | Correct, but we're getting closer to that now that we have symbol > | versioning - although we won't reach 100% until we have versioned > | symbols in *all* libraries, which is currently not the case. Even then, > | a developer might break the ABI by mistake, but hopefully we'd catch > | that before it made it into a release. > > It's important to note that symbol compatibility is not the whole > thing -- the behaviour on exceptions may be equally important to some > applications. E.g. CMUCL code has to handle different ways to notify > of memory protection failures this way: > > #if __FreeBSD_version < 700004 > #define PROTECTION_VIOLATION_SIGNAL SIGBUS > #define PROTECTION_VIOLATION_CODE BUS_PAGE_FAULT > #else > #define PROTECTION_VIOLATION_SIGNAL SIGSEGV > #define PROTECTION_VIOLATION_CODE SEGV_ACCERR > #endif > > A CMUCL binary built on a pre-7.1 (?) release of FreeBSD, will crash > almost immediately when run on 7.1 (well, "if memory serves").
This has been an issue for 7.0, and it was explicitely handled, see r174254.
pgpFdLByvBSc7.pgp
Description: PGP signature

