From owner-freebsd-hackers@FreeBSD.ORG Sat Oct 10 18:21:07 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C9A53106566B; Sat, 10 Oct 2009 18:21:07 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194]) by mx1.freebsd.org (Postfix) with ESMTP id B9ED58FC12; Sat, 10 Oct 2009 18:21:06 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id n9AIKmJJ013162 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 10 Oct 2009 21:20:48 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id n9AIKmn6084638; Sat, 10 Oct 2009 21:20:48 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id n9AIKmcL084637; Sat, 10 Oct 2009 21:20:48 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 10 Oct 2009 21:20:48 +0300 From: Kostik Belousov To: Alex Goncharov Message-ID: <20091010182048.GD2259@deviant.kiev.zoral.com.ua> References: <4ABBD5FA.5070507@memberwebs.com> <20091010142758.GB1225@arthur.nitro.dk> <86d44vp415.fsf@ds4.des.no> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ikjtAgnMx2oLjqdX" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Dag-Erling =?koi8-r?B?U23DuHJncmF2?= , stef@memberwebs.com, simon@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: Is the FreeBSD ABI compatibility policy documented anywhere X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Oct 2009 18:21:08 -0000 --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" 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--