public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* Avoid wrong unwind info in clone child
@ 2006-04-03 10:59 Andreas Schwab
  2006-04-04  7:02 ` Roland McGrath
  0 siblings, 1 reply; 2+ messages in thread
From: Andreas Schwab @ 2006-04-03 10:59 UTC (permalink / raw)
  To: libc-hacker

The unwind info attached to the clone function is usually wrong for the
child.  This changes the ppc(64) implementation to terminate the FDE
before the syscall, similar to the i386 implementation.

Andreas.

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/powerpc32/clone.S.~1.7.~	2006-01-11 10:24:55.000000000 +0100
+++ sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S	2006-03-26 20:35:33.000000000 +0200
@@ -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))
--- sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S.~1.10.~	2006-03-17 11:37:26.000000000 +0100
+++ sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S	2006-03-31 15:45:48.000000000 +0200
@@ -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))

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Avoid wrong unwind info in clone child
  2006-04-03 10:59 Avoid wrong unwind info in clone child Andreas Schwab
@ 2006-04-04  7:02 ` Roland McGrath
  0 siblings, 0 replies; 2+ messages in thread
From: Roland McGrath @ 2006-04-04  7:02 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: libc-hacker

> The unwind info attached to the clone function is usually wrong for the
> child.  This changes the ppc(64) implementation to terminate the FDE
> before the syscall, similar to the i386 implementation.

That looks reasonable.  I put it in.  It would be nice if we had a test for
this, though it might be hard to put together in machine-independent C.


Thanks,
Roland

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-04-04  7:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-03 10:59 Avoid wrong unwind info in clone child Andreas Schwab
2006-04-04  7:02 ` Roland McGrath

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).