This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]