This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
PowerPC: Add DSO and TAR fields to TLS
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Cc: "Steven J. Munroe" <sjmunroe at us dot ibm dot com>
- Date: Thu, 12 Dec 2013 10:49:27 -0200
- Subject: PowerPC: Add DSO and TAR fields to TLS
- Authentication-results: sourceware.org; auth=none
Hi all,
This patch add three fields in powerpc tcb: one for tar save (ISA 2.07) and
two for DSO (Dynamic System Optimizer, an IBM product). Tested on PPC32,
PPC64, PPC64LE. Ok to apply?
---
nptl/ChangeLog:
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.
--
diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
index 8ac133d..eac5b5c 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 c21c027..31329c7 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. */