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.16-ports-merge-880-g2bc2d8e
- From: cmetcalf at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 21 Dec 2012 20:30:12 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.16-ports-merge-880-g2bc2d8e
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 2bc2d8e82350d451426c6b4fe5ab116f9fc3c205 (commit)
from 147d03b01c9a8b17530a36b43d3ee29b7b14ebd0 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2bc2d8e82350d451426c6b4fe5ab116f9fc3c205
commit 2bc2d8e82350d451426c6b4fe5ab116f9fc3c205
Author: Chris Metcalf <cmetcalf@tilera.com>
Date: Fri Dec 14 10:46:54 2012 -0500
tile: fix DWARF bug in clone() for created thread
Previously, we would see a bad frame in the gdb backtrace output, e.g.:
(gdb) bt
#0 foo () at foo.c:5
#1 0x000000aaaab68ee8 in start_thread () from /lib/libpthread.so.0
#2 0x000000aaaad01c88 in clone () from /lib/libc.so.6
#3 0x0000000000000000 in ?? ()
With this change the bogus frame #3 is gone and we have the
same output as x86 does for the same program.
diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile
index 67dc50c..da39a6e 100644
--- a/ports/ChangeLog.tile
+++ b/ports/ChangeLog.tile
@@ -1,3 +1,7 @@
+2012-12-14 Chris Metcalf <cmetcalf@tilera.com>
+
+ * sysdeps/unix/sysv/linux/tile/nptl/clone.S: Fix DWARF info.
+
2012-11-29 Chris Metcalf <cmetcalf@tilera.com>
* sysdeps/tile/s_fmaf.c: Remove redundant #defines now provided
diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S b/ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S
index de4fa13..27592cc 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S
@@ -160,6 +160,8 @@ ENTRY (__clone)
r32: the user function pointer */
.Lthread_start:
+ cfi_def_cfa_offset (FRAME_SIZE)
+ cfi_undefined (lr)
/* Check and see if we need to reset the PID, which we do if
CLONE_THREAD isn't set, i.e. we're not staying in the thread group.
If CLONE_VM is set, we're doing some kind of thread-like clone,
@@ -167,7 +169,6 @@ ENTRY (__clone)
in getpid(). Otherwise (if CLONE_VM isn't set), it's a
fork-like clone, and we go ahead and write the cached values
from the true system pid (retrieved via __NR_getpid syscall). */
- cfi_def_cfa_offset (FRAME_SIZE)
#ifdef __tilegx__
{
moveli r0, hw1_last(CLONE_VM)
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.tile | 4 ++++
ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S | 3 ++-
2 files changed, 6 insertions(+), 1 deletions(-)
hooks/post-receive
--
GNU C Library master sources