about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-10-05 21:22:41 -0700
committerDavid S. Miller <davem@davemloft.net>2012-10-05 21:22:41 -0700
commitf07621646892e079b4d1eec1b02e5ab03b578a5e (patch)
treef07d3d9497e288fc7913fdee732598ccff638728 /nptl
parent3baddb72a4181e05d0d279a6b345635641e13a18 (diff)
downloadglibc-f07621646892e079b4d1eec1b02e5ab03b578a5e.tar.gz
glibc-f07621646892e079b4d1eec1b02e5ab03b578a5e.tar.xz
glibc-f07621646892e079b4d1eec1b02e5ab03b578a5e.zip
Correct libthreadb register access for 64-bit sparc.
	[BZ #14568]
	* sysdeps/sparc/tls.h (DB_THREAD_SELF_INCLUDE): Delete.
	(DB_THREAD_SELF): Use constants for the register offsets.  Correct
	the case of a 64-bit debugger with a 32-bit inferior.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog7
-rw-r--r--nptl/sysdeps/sparc/tls.h4
2 files changed, 9 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 78b1b9354f..17a36e8ac2 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2012-10-05  David S. Miller  <davem@davemloft.net>
+
+	[BZ #14568]
+	* sysdeps/sparc/tls.h (DB_THREAD_SELF_INCLUDE): Delete.
+	(DB_THREAD_SELF): Use constants for the register offsets.  Correct
+	the case of a 64-bit debugger with a 32-bit inferior.
+
 2012-10-05  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #14557]
diff --git a/nptl/sysdeps/sparc/tls.h b/nptl/sysdeps/sparc/tls.h
index 61cb09f294..cfc9d96c67 100644
--- a/nptl/sysdeps/sparc/tls.h
+++ b/nptl/sysdeps/sparc/tls.h
@@ -117,9 +117,9 @@ register struct pthread *__thread_self __asm__("%g7");
 #define THREAD_SELF  __thread_self
 
 /* Magic for libthread_db to know how to do THREAD_SELF.  */
-# define DB_THREAD_SELF_INCLUDE <sys/ucontext.h>
 # define DB_THREAD_SELF \
-  REGISTER (32, 32, REG_G7 * 4, 0) REGISTER (64, 64, REG_G7 * 8, 0)
+  REGISTER (32, 32, 10 * 4, 0) \
+  REGISTER (64, __WORDSIZE, (6 * 8) + (__WORDSIZE==64?0:4), 0)
 
 /* Access to data in the thread descriptor is easy.  */
 #define THREAD_GETMEM(descr, member) \