[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r24552 - in /fsf/glibc-2_18-branch/libc/ports: ChangeLog.alpha sysdeps/unix/sysv/linux/alpha/rt_sigaction.S



Author: eglibc
Date: Sun Nov 17 00:02:34 2013
New Revision: 24552

Log:
Import glibc-2.18 for 2013-11-17

Modified:
    fsf/glibc-2_18-branch/libc/ports/ChangeLog.alpha
    fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S

Modified: fsf/glibc-2_18-branch/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/glibc-2_18-branch/libc/ports/ChangeLog.alpha (original)
+++ fsf/glibc-2_18-branch/libc/ports/ChangeLog.alpha Sun Nov 17 00:02:34 2013
@@ -1,3 +1,8 @@
+2013-11-16  Richard Henderson  <rth@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
+	before each signal thunk.
+
 2013-07-02  Richard Henderson  <rth@xxxxxxxxxx>
 
         * sysdeps/alpha/fpu/libm-test-ulps: Update.

Modified: fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
==============================================================================
--- fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (original)
+++ fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S Sun Nov 17 00:02:34 2013
@@ -83,14 +83,21 @@
 	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)
 
-	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 @@
 	.size	__syscall_sigreturn, .-__syscall_sigreturn
 	.type	__syscall_sigreturn, @function
 
+	/* See above wrt including the nop.  */
+	cfi_def_cfa_offset (176 + 648)
+	nop
 	.align 4
-	cfi_def_cfa_offset (176 + 648)
+
 __syscall_rt_sigreturn:
 	mov	sp,a0
 	ldi	v0,__NR_rt_sigreturn

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits