summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2013-12-11 12:10:35 -0600
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2013-12-12 06:51:01 -0600
commit5b9bf1914248f9ea01b494264e7d3c86d984e0a0 (patch)
treea62b812a3f8180b3e3bbe6d8530c867f8caae262
parent1db94db157ed6c9e233178c9f3d21be46a1d181e (diff)
downloadglibc-5b9bf1914248f9ea01b494264e7d3c86d984e0a0.tar.gz
PowerPC: Add DSO and TAR fields to TLS
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/powerpc/tcb-offsets.sym3
-rw-r--r--nptl/sysdeps/powerpc/tls.h5
3 files changed, 13 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 80025155f1..c27ace4822 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-12 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/tls.h (struct tcbhead_t): Add DSO and TAR fields.
+ * nptl/sysdeps/powerpc/tcb-offsets.sym: Likewise.
+
2013-12-09 Carlos O'Donell <carlos@redhat.com>
* sysdeps/unix/sysv/linux/tst-setgetname.c: New file.
diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
index 8ac133dfd0..eac5b5c732 100644
--- a/nptl/sysdeps/powerpc/tcb-offsets.sym
+++ b/nptl/sysdeps/powerpc/tcb-offsets.sym
@@ -15,6 +15,9 @@ MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
PID thread_offsetof (pid)
TID thread_offsetof (tid)
POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
+TAR_SAVE (offsetof (tcbhead_t, tar_save) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
+DSO_SLOT1 (offsetof (tcbhead_t, dso_slot1) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
+DSO_SLOT2 (offsetof (tcbhead_t, dso_slot2) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
#ifndef __ASSUME_PRIVATE_FUTEX
PRIVATE_FUTEX_OFFSET thread_offsetof (header.private_futex)
#endif
diff --git a/nptl/sysdeps/powerpc/tls.h b/nptl/sysdeps/powerpc/tls.h
index c21c0271ef..31329c74ee 100644
--- a/nptl/sysdeps/powerpc/tls.h
+++ b/nptl/sysdeps/powerpc/tls.h
@@ -61,6 +61,11 @@ typedef union dtv
are private. */
typedef struct
{
+ /* Reservation for Dynamic System Optimizer ABI. */
+ uintptr_t dso_slot2;
+ uintptr_t dso_slot1;
+ /* Reservation for tar register (ISA 2.07). */
+ uintptr_t tar_save;
/* GCC split stack support. */
void *__private_ss;
/* Reservation for the Event-Based Branching ABI. */