From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3625 invoked by alias); 14 Nov 2013 17:29:17 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 3600 invoked by uid 89); 14 Nov 2013 17:29:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_20,FREEMAIL_FROM,RDNS_NONE,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-ob0-f181.google.com Received: from Unknown (HELO mail-ob0-f181.google.com) (209.85.214.181) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 14 Nov 2013 17:29:16 +0000 Received: by mail-ob0-f181.google.com with SMTP id uz6so2495802obc.40 for ; Thu, 14 Nov 2013 09:29:08 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.60.141.225 with SMTP id rr1mr2545363oeb.55.1384450148410; Thu, 14 Nov 2013 09:29:08 -0800 (PST) Received: by 10.182.137.136 with HTTP; Thu, 14 Nov 2013 09:29:08 -0800 (PST) In-Reply-To: References: <52840226.4010801@twiddle.net> Date: Thu, 14 Nov 2013 17:29:00 -0000 Message-ID: Subject: Re: Signal handling broken on alpha since glibc-2.16 From: Uros Bizjak To: Matt Turner Cc: Richard Henderson , libc-ports@sourceware.org, Mike Frysinger , Gentoo alpha AT Content-Type: text/plain; charset=ISO-8859-1 X-SW-Source: 2013-11/txt/msg00015.txt.bz2 On Thu, Nov 14, 2013 at 5:43 PM, Matt Turner wrote: >>>>> A test from the gcc test suite shows that signal handling is broken on >>>>> alpha since glibc-2.16. Bisecting before the glibc-ports merge is >>>>> rather hard. >>>>> >>>>> See: https://bugs.gentoo.org/show_bug.cgi?id=480740 (includes test case) >>>>> >>>>> Off hand, do any changes between 2.15 and 2.16 seem to be likely >>>>> candidates to cause this bug? >>>> >>>> It's likely to be change 7d1feb5693be7e606104cc2b6657c746a93e5926. >>>> >>>> Please try this. >>> >>> Looks like it works here. Thanks! >>> >>> RA = 0x120000c44, CFA = 0x11fc9e800 >>> RA = 0x120000c78, CFA = 0x11fc9e810 >>> RA = 0x200000b49d0, CFA = 0x11fc9e820 >>> RA = 0x120000aac, CFA = 0x11fc9eb58 >>> RA = 0x120000b38, CFA = 0x11fc9eb90 >>> RA = 0x120000b58, CFA = 0x11fc9ec30 >>> RA = 0x1200008e8, CFA = 0x11fc9ec40 >>> RA = 0x2000009ad00, CFA = 0x11fc9ec50 >>> Aborted >> >> The test should not abort. Did you compiled it with -fexceptions >> -fnon-call-exceptions? > > Whoops. Compiling with the proper CFLAGS leads to better results: > > RA = 0x120000bdc, CFA = 0x11f8f8f00 > RA = 0x120000c14, CFA = 0x11f8f8f00 > RA = 0x120000c38, CFA = 0x11f8f8f10 > RA = 0x120000c5c, CFA = 0x11f8f8f10 > RA = 0x2000009e9d0, CFA = 0x11f8f8f20 > RA = 0x120000aec, CFA = 0x11f8f9258 > RA = 0x120000b84, CFA = 0x11f8f9280 > RA = 0x120000d28, CFA = 0x11f8f9320 Yes, this is the correct sequence (the signal frame is the 5th frame), and we are able to unwind through the signal frame again. Thanks, Uros.