* Signal handling broken on alpha since glibc-2.16
@ 2013-11-04 1:11 Matt Turner
2013-11-13 22:52 ` Richard Henderson
0 siblings, 1 reply; 6+ messages in thread
From: Matt Turner @ 2013-11-04 1:11 UTC (permalink / raw)
To: libc-ports
Cc: Richard Henderson, Uros Bizjak, Mike Frysinger, Gentoo alpha AT
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?
Thanks,
Matt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Signal handling broken on alpha since glibc-2.16
2013-11-04 1:11 Signal handling broken on alpha since glibc-2.16 Matt Turner
@ 2013-11-13 22:52 ` Richard Henderson
2013-11-14 2:18 ` Matt Turner
0 siblings, 1 reply; 6+ messages in thread
From: Richard Henderson @ 2013-11-13 22:52 UTC (permalink / raw)
To: Matt Turner, libc-ports; +Cc: Uros Bizjak, Mike Frysinger, Gentoo alpha AT
[-- Attachment #1: Type: text/plain, Size: 470 bytes --]
On 11/04/2013 11:10 AM, 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.
r~
[-- Attachment #2: zz --]
[-- Type: text/plain, Size: 818 bytes --]
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index 3d291fd..bd55418 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -83,14 +83,15 @@ PSEUDO_END(__syscall_rt_sigaction)
cfi_offset (64, \base + 2 * 8)
.endm
- .align 4
-
cfi_startproc
cfi_return_column (64)
.cfi_signal_frame
SIGCONTEXT_REGS -648
-
cfi_def_cfa_offset (648)
+
+ nop
+ .align 4
+
__syscall_sigreturn:
mov sp, a0
ldi v0, __NR_sigreturn
@@ -98,8 +99,9 @@ __syscall_sigreturn:
.size __syscall_sigreturn, .-__syscall_sigreturn
.type __syscall_sigreturn, @function
- .align 4
cfi_def_cfa_offset (176 + 648)
+ .align 4
+
__syscall_rt_sigreturn:
mov sp,a0
ldi v0,__NR_rt_sigreturn
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Signal handling broken on alpha since glibc-2.16
2013-11-13 22:52 ` Richard Henderson
@ 2013-11-14 2:18 ` Matt Turner
2013-11-14 7:27 ` Uros Bizjak
0 siblings, 1 reply; 6+ messages in thread
From: Matt Turner @ 2013-11-14 2:18 UTC (permalink / raw)
To: Richard Henderson
Cc: libc-ports, Uros Bizjak, Mike Frysinger, Gentoo alpha AT
On Wed, Nov 13, 2013 at 2:50 PM, Richard Henderson <rth@twiddle.net> wrote:
> On 11/04/2013 11:10 AM, 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Signal handling broken on alpha since glibc-2.16
2013-11-14 2:18 ` Matt Turner
@ 2013-11-14 7:27 ` Uros Bizjak
2013-11-14 16:43 ` Matt Turner
0 siblings, 1 reply; 6+ messages in thread
From: Uros Bizjak @ 2013-11-14 7:27 UTC (permalink / raw)
To: Matt Turner
Cc: Richard Henderson, libc-ports, Mike Frysinger, Gentoo alpha AT
On Thu, Nov 14, 2013 at 3:18 AM, Matt Turner <mattst88@gmail.com> wrote:
> On Wed, Nov 13, 2013 at 2:50 PM, Richard Henderson <rth@twiddle.net> wrote:
>> On 11/04/2013 11:10 AM, 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?
Uros.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Signal handling broken on alpha since glibc-2.16
2013-11-14 7:27 ` Uros Bizjak
@ 2013-11-14 16:43 ` Matt Turner
2013-11-14 17:29 ` Uros Bizjak
0 siblings, 1 reply; 6+ messages in thread
From: Matt Turner @ 2013-11-14 16:43 UTC (permalink / raw)
To: Uros Bizjak
Cc: Richard Henderson, libc-ports, Mike Frysinger, Gentoo alpha AT
On Wed, Nov 13, 2013 at 11:27 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Thu, Nov 14, 2013 at 3:18 AM, Matt Turner <mattst88@gmail.com> wrote:
>> On Wed, Nov 13, 2013 at 2:50 PM, Richard Henderson <rth@twiddle.net> wrote:
>>> On 11/04/2013 11:10 AM, 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
Thanks.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Signal handling broken on alpha since glibc-2.16
2013-11-14 16:43 ` Matt Turner
@ 2013-11-14 17:29 ` Uros Bizjak
0 siblings, 0 replies; 6+ messages in thread
From: Uros Bizjak @ 2013-11-14 17:29 UTC (permalink / raw)
To: Matt Turner
Cc: Richard Henderson, libc-ports, Mike Frysinger, Gentoo alpha AT
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.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-11-14 17:29 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-04 1:11 Signal handling broken on alpha since glibc-2.16 Matt Turner
2013-11-13 22:52 ` Richard Henderson
2013-11-14 2:18 ` Matt Turner
2013-11-14 7:27 ` Uros Bizjak
2013-11-14 16:43 ` Matt Turner
2013-11-14 17:29 ` Uros Bizjak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).