Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Oct 2009 21:20:48 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Alex Goncharov <alex-goncharov@comcast.net>
Cc:        Dag-Erling =?koi8-r?B?U23DuHJncmF2?= <des@des.no>, stef@memberwebs.com, simon@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Re: Is the FreeBSD ABI compatibility policy documented anywhere
Message-ID:  <20091010182048.GD2259@deviant.kiev.zoral.com.ua>
In-Reply-To: <E1MwgPL-000Neg-W2@daland.home>
References:  <4ABBD5FA.5070507@memberwebs.com> <20091010142758.GB1225@arthur.nitro.dk> <86d44vp415.fsf@ds4.des.no> <E1MwgPL-000Neg-W2@daland.home>

next in thread | previous in thread | raw e-mail | index | archive | help

--ikjtAgnMx2oLjqdX
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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" <simon@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.
> |=20
> | 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.
>=20
> 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:
>=20
>     #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
>=20
> 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.

--ikjtAgnMx2oLjqdX
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkrQ0H8ACgkQC3+MBN1Mb4j0/QCgmO6ebLZv2r+7EXnXQXA/MMRA
Ye0AoK+fpUt2MJctQ/tEvt3mm4VzIyk5
=IagP
-----END PGP SIGNATURE-----

--ikjtAgnMx2oLjqdX--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091010182048.GD2259>