about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-04-04 07:01:16 +0000
committerRoland McGrath <roland@gnu.org>2006-04-04 07:01:16 +0000
commit97d901a672d83124287565d1b6649dc76a8e8659 (patch)
tree79450631fb0ef9f09f5d79b4e73a5a45baf57bfd
parent9b5e78fe899018a31302094de8f57433b26de963 (diff)
downloadglibc-97d901a672d83124287565d1b6649dc76a8e8659.tar.gz
glibc-97d901a672d83124287565d1b6649dc76a8e8659.tar.xz
glibc-97d901a672d83124287565d1b6649dc76a8e8659.zip
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Terminate FDE
	before syscall.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S6
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bd599a1045..5a7bade0fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-04-03  Andreas Schwab  <schwab@suse.de>
 
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Terminate FDE
+	before syscall.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
+
 	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Test for <asm/elf.h>
 	with [! _ASM_POWERPC_ELF_H] as well as [!__PPC64_ELF_H].
 
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index f4c92ad7c7..37b777799c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -84,6 +84,10 @@ ENTRY (BP_SYM (__clone))
 	mr	r6,r8
 	mr	r7,r9
 
+	/* End FDE now, because in the child the unwind info will be
+	   wrong.  */
+	cfi_endproc
+
 	/* Do the call.  */
 	DO_CALL(SYS_ify(clone))
 
@@ -138,6 +142,8 @@ L(parent):
 L(badargs):
 	li	r3,EINVAL
 	b	__syscall_error@local
+
+	cfi_startproc
 END (BP_SYM (__clone))
 
 weak_alias (BP_SYM (__clone), BP_SYM (clone))
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index 366206d286..f1a55e64db 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -81,6 +81,10 @@ ENTRY (BP_SYM (__clone))
 	mr	r6,r8
 	mr	r7,r9
 
+	/* End FDE now, because in the child the unwind info will be
+	   wrong.  */
+	cfi_endproc
+
 	/* Do the call.  */
 	DO_CALL(SYS_ify(clone))
 
@@ -132,6 +136,8 @@ L(parent):
 L(badargs):
 	li	r3,EINVAL
 	b	JUMPTARGET(__syscall_error)
+
+	cfi_startproc
 END (BP_SYM (__clone))
 
 weak_alias (BP_SYM (__clone), BP_SYM (clone))