This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PowerPC: Reserve TCB space for EBB framework
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: "Ryan S. Arnold" <ryan dot arnold at gmail dot com>
- Cc: libc-alpha <libc-alpha at sourceware dot org>
- Date: Mon, 17 Jun 2013 18:00:47 -0300
- Subject: Re: PowerPC: Reserve TCB space for EBB framework
- References: <51AE58C1 dot 7030503 at linux dot vnet dot ibm dot com> <CAAKybw9T3E=puCXn5meEO6V3Et-0j3c5MBQvO1fH6rceTat80g at mail dot gmail dot com> <51AD6212 dot 6060601 at linux dot vnet dot ibm dot com> <CAAKybw_RN_egEAz7vB695HGpS=C_AuTJS6yAJ_W9oHuMGDLygQ at mail dot gmail dot com>
On 14-06-2013 18:12, Ryan S. Arnold wrote:
> I'm fine with the patch. Ryan
I cleaned up the patch and below is the final version I committed. My first
approach wasn't entirely correct: the stack_pointer offset can not change,
since gcc -fstack-protector relies on it, so I adjusted the EBB fields 'up'
in the structure. I also decided to not change how stack_pointer offset is
set, since its values can not change without breaking binaries built with
-fstack-protector.
---
ChangeLog | 5 +++++
nptl/sysdeps/powerpc/tls.h | 5 +++++
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f5292c5..8ba955a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-17 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * nptl/sysdeps/powerpc/tls.h (tcbhead_t): Add Event-Based Branch
+ fields.
+
2013-06-17 Roland McGrath <roland@hack.frob.com>
* scripts/sysd-rules.awk: Sort sysd_rules_patterns by descending
diff --git a/nptl/sysdeps/powerpc/tls.h b/nptl/sysdeps/powerpc/tls.h
index 46dac9e..8e0ada6 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 the Event-Based Branching ABI. */
+ uintptr_t ebb_handler;
+ uintptr_t ebb_ctx_pointer;
+ uintptr_t ebb_reserved1;
+ uintptr_t ebb_reserved2;
uintptr_t pointer_guard;
uintptr_t stack_guard;
dtv_t *dtv;