From owner-freebsd-hackers@FreeBSD.ORG Sat Oct 10 18:11:10 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 8FCCB106566B for ; Sat, 10 Oct 2009 18:11:10 +0000 (UTC) (envelope-from alex-goncharov@comcast.net) Received: from QMTA11.westchester.pa.mail.comcast.net (qmta11.westchester.pa.mail.comcast.net [76.96.59.211]) by mx1.freebsd.org (Postfix) with ESMTP id 2A9788FC18 for ; Sat, 10 Oct 2009 18:11:09 +0000 (UTC) Received: from OMTA22.westchester.pa.mail.comcast.net ([76.96.62.73]) by QMTA11.westchester.pa.mail.comcast.net with comcast id r5i01c0071ap0As5B6BA53; Sat, 10 Oct 2009 18:11:10 +0000 Received: from daland.home ([24.61.85.144]) by OMTA22.westchester.pa.mail.comcast.net with comcast id r6Fl1c00X36qgMk3i6FmZk; Sat, 10 Oct 2009 18:15:47 +0000 Received: from algo by daland.home with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1MwgPL-000Neg-W2; Sat, 10 Oct 2009 14:11:07 -0400 From: Alex Goncharov To: Dag-Erling Smørgrav In-reply-to: <86d44vp415.fsf@ds4.des.no> (message from Dag-Erling Smørgrav on Sat, 10 Oct 2009 19:11:50 +0200) References: <4ABBD5FA.5070507@memberwebs.com> <20091010142758.GB1225@arthur.nitro.dk> <86d44vp415.fsf@ds4.des.no> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: Sender: Alex Goncharov Date: Sat, 10 Oct 2009 14:11:07 -0400 Cc: freebsd-hackers@freebsd.org, stef@memberwebs.com, simon@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 Reply-To: Alex Goncharov 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:11:10 -0000 ,--- 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. | | 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-goncharov@comcast.net --