Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/glibc/2.17: 6024_all_alpha-fix-signal-thunk-unwind-info.patch
Date: Sat, 23 Nov 2013 05:14:53
Message-Id: 20131123051446.2717C2004E@flycatcher.gentoo.org
1 vapier 13/11/23 05:14:46
2
3 Added: 6024_all_alpha-fix-signal-thunk-unwind-info.patch
4 Log:
5 add fix from upstream for signal handling #480740 by Tobias Klausmann
6
7 Revision Changes Path
8 1.1 src/patchsets/glibc/2.17/6024_all_alpha-fix-signal-thunk-unwind-info.patch
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.17/6024_all_alpha-fix-signal-thunk-unwind-info.patch?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.17/6024_all_alpha-fix-signal-thunk-unwind-info.patch?rev=1.1&content-type=text/plain
12
13 Index: 6024_all_alpha-fix-signal-thunk-unwind-info.patch
14 ===================================================================
15 https://bugs.gentoo.org/480740
16
17 From 027e32bd42314e17095ba39df82ef293f4a72c09 Mon Sep 17 00:00:00 2001
18 From: Richard Henderson <rth@×××××××.net>
19 Date: Sat, 16 Nov 2013 06:34:39 +1000
20 Subject: [PATCH] alpha: Fix signal thunk unwind info
21
22 2013-11-16 Richard Henderson <rth@××××××.com>
23
24 * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
25 before each signal thunk.
26
27 ---
28 ports/ChangeLog.alpha | 5 +++++
29 ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S | 18 ++++++++++++++----
30 2 files changed, 19 insertions(+), 4 deletions(-)
31
32 diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
33 index 3d291fd..6efa738 100644
34 --- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
35 +++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
36 @@ -83,14 +83,21 @@ PSEUDO_END(__syscall_rt_sigaction)
37 cfi_offset (64, \base + 2 * 8)
38 .endm
39
40 - .align 4
41 -
42 cfi_startproc
43 cfi_return_column (64)
44 .cfi_signal_frame
45 SIGCONTEXT_REGS -648
46 -
47 cfi_def_cfa_offset (648)
48 +
49 + /* While this frame is marked as a signal frame, that only applies
50 + to how this return address is handled for the outer frame.
51 + The return address that arrived here, from the inner frame, is
52 + not marked as a signal frame and so the unwinder still tries to
53 + subtract 1 to examine the presumed call insn. Thus we must
54 + extend the unwind info to a nop before the start. */
55 + nop
56 + .align 4
57 +
58 __syscall_sigreturn:
59 mov sp, a0
60 ldi v0, __NR_sigreturn
61 @@ -98,8 +105,11 @@ __syscall_sigreturn:
62 .size __syscall_sigreturn, .-__syscall_sigreturn
63 .type __syscall_sigreturn, @function
64
65 - .align 4
66 + /* See above wrt including the nop. */
67 cfi_def_cfa_offset (176 + 648)
68 + nop
69 + .align 4
70 +
71 __syscall_rt_sigreturn:
72 mov sp,a0
73 ldi v0,__NR_rt_sigreturn
74 --
75 1.8.4.3