From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3144 invoked by alias); 12 Jun 2006 18:12:31 -0000 Received: (qmail 2395 invoked by uid 48); 12 Jun 2006 18:11:30 -0000 Date: Mon, 12 Jun 2006 18:53:00 -0000 Message-ID: <20060612181130.2394.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug ada/27937] [4.2 Regression] Ada bootstrap failure on Solaris 10/x86 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ebotcazou at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-06/txt/msg01187.txt.bz2 List-Id: ------- Comment #5 from ebotcazou at gcc dot gnu dot org 2006-06-12 18:11 ------- > Ok, I see. Thanks for the explanation. Any reason this is done this way? > Solaris/SPARC doesn't use this, nor does Linux/x86, so it seems like both > the Solaris and x86 parts of the code are there. Short answer: seamless support for synchronous signals. Long answer: we want to be able to turn synchronous signals into regular Ada exceptions. This means unwinding through signal handler frames (easy) and unwinding through kernel frames (tricky). With SJLJ exceptions, the latter turns out to be transparent; but with DWARF-2 EH exceptions, you need specific support code under the form of MD_FALLBACK_FRAME_STATE_FOR macros, defined in the *-unwind.h files. The FSF tree contains some M_F_F_S_F macros, we have a few more, in particular for SPARC/Solaris but not for x86/Solaris. We should already have contributed them, but there is a discrepancy between Java and Ada in this domain that should be sorted out first. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27937