,--- You/Dag-Erling (Sat, 10 Oct 2009 19:11:50 +0200) ----* | "Simon L. Nielsen" <si...@freebsd.org> 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"). -- Alex -- alex-goncha...@comcast.net -- _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"