This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: Signal handling broken on alpha since glibc-2.16
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Matt Turner <mattst88 at gmail dot com>
- Cc: Richard Henderson <rth at twiddle dot net>, libc-ports at sourceware dot org, Mike Frysinger <vapier at gentoo dot org>, Gentoo alpha AT <alpha at gentoo dot org>
- Date: Thu, 14 Nov 2013 18:29:08 +0100
- Subject: Re: Signal handling broken on alpha since glibc-2.16
- Authentication-results: sourceware.org; auth=none
- References: <CAEdQ38FPugwGndv9szKjuM82e5dBr2FKDfrq4CMoP1N_ax8Sqg at mail dot gmail dot com> <52840226 dot 4010801 at twiddle dot net> <CAEdQ38G=EEMStAX32+O+VXwNowTO8wFmFXE7ovY4bb2pCx34EA at mail dot gmail dot com> <CAFULd4Z_DswBeGmVJ3ZYfO3DV88c9M+gDr2Vk4VETjWvpZ96eA at mail dot gmail dot com> <CAEdQ38HNXss1h58n4+ar2dWZtv8KPycoyrhvnogfbt2RbdNOrA at mail dot gmail dot com>
On Thu, Nov 14, 2013 at 5:43 PM, Matt Turner <mattst88@gmail.com> 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.