This is the mail archive of the libc-alpha@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]

PATCH: Use 64-bit anonymouse union on x32 TCB pointer_guard


Hi,

This patch uses 64-bit anonymouse union on x32 TCB pointer_guard to
support 64-bit PTR_MANGLE/PTR_DEMANGLE.  I verifed that there is no
change in x86-64 TCB offsets.  Tested on Linux/x32.  OK to install?

Thanks.


H.J.
----
	* sysdeps/x86_64/tls.h (tcbhead_t): Use anonymouse union on
	pointer_guard.  Reordor fields for x32.

diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index f838916..c593bc8 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -52,17 +52,30 @@ typedef struct
   int gscope_flag;
   uintptr_t sysinfo;
   uintptr_t stack_guard;
+# ifdef __ILP32__
+  int rtld_must_xmm_save;
+  union
+    {
+      /* Needed for 64-bit PTR_MANGLE/PTR_DEMANGLE.  */
+      uintptr_t pointer_guard;
+      int64_t __pointer_guard_word;
+    };
+  unsigned long int vgetcpu_cache[2];
+  /* Reservation of some values for the TM ABI.  */
+  void *__private_tm[5];
+# else
   uintptr_t pointer_guard;
   unsigned long int vgetcpu_cache[2];
-# ifndef __ASSUME_PRIVATE_FUTEX
+#  ifndef __ASSUME_PRIVATE_FUTEX
   int private_futex;
-# else
+#  else
   int __unused1;
-# endif
+#  endif
   int rtld_must_xmm_save;
   /* Reservation of some values for the TM ABI.  */
   void *__private_tm[5];
   long int __unused2;
+# endif
   /* Have space for the post-AVX register size.  */
   __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
 


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