This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.18-389-g027e32b
- From: rth at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Nov 2013 20:34:48 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.18-389-g027e32b
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 027e32bd42314e17095ba39df82ef293f4a72c09 (commit)
from 1820b143aa651d619a768708f08b129aa45043c2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=027e32bd42314e17095ba39df82ef293f4a72c09
commit 027e32bd42314e17095ba39df82ef293f4a72c09
Author: Richard Henderson <rth@twiddle.net>
Date: Sat Nov 16 06:34:39 2013 +1000
alpha: Fix signal thunk unwind info
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 07f5dfb..8f97951 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2013-11-16 Richard Henderson <rth@redhat.com>
+
+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
+ before each signal thunk.
+
2013-10-30 Mike Frysinger <vapier@gentoo.org>
* sysdeps/alpha/configure.in: Moved to ...
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index 3d291fd..6efa738 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -83,14 +83,21 @@ 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)
+
+ /* While this frame is marked as a signal frame, that only applies
+ to how this return address is handled for the outer frame.
+ The return address that arrived here, from the inner frame, is
+ not marked as a signal frame and so the unwinder still tries to
+ subtract 1 to examine the presumed call insn. Thus we must
+ extend the unwind info to a nop before the start. */
+ nop
+ .align 4
+
__syscall_sigreturn:
mov sp, a0
ldi v0, __NR_sigreturn
@@ -98,8 +105,11 @@ __syscall_sigreturn:
.size __syscall_sigreturn, .-__syscall_sigreturn
.type __syscall_sigreturn, @function
- .align 4
+ /* See above wrt including the nop. */
cfi_def_cfa_offset (176 + 648)
+ nop
+ .align 4
+
__syscall_rt_sigreturn:
mov sp,a0
ldi v0,__NR_rt_sigreturn
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.alpha | 5 +++++
ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S | 18 ++++++++++++++----
2 files changed, 19 insertions(+), 4 deletions(-)
hooks/post-receive
--
GNU C Library master sources