[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6018 - in glibc-package/trunk/debian: . patches patches/hurd-i386



Author: sthibault
Date: 2014-04-16 22:01:00 +0000 (Wed, 16 Apr 2014)
New Revision: 6018

Added:
   glibc-package/trunk/debian/patches/hurd-i386/cvs-tcbhead_t.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/hurd-i386/tg-tls-threadvar.diff
   glibc-package/trunk/debian/patches/series
Log:
hurd-i386/cvs-tcbhead_t.diff: New patch to complete TLS variables

to fix gcc's -fsplit-stack support.


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2014-04-16 21:21:57 UTC (rev 6017)
+++ glibc-package/trunk/debian/changelog	2014-04-16 22:01:00 UTC (rev 6018)
@@ -12,6 +12,8 @@
     pthread_condattr_setclock, for glib2.0 build.
   * patches/hurd-i386/cvs-munmap-0.diff: New patch to fix gcc's -fsplit-stack
     initialization.
+  * patches/hurd-i386/cvs-tcbhead_t.diff: New patch to complete TLS variables,
+    to fix gcc's -fsplit-stack support.
 
   [ Petr Salinger ]
   * kfreebsd/local-sysdeps.diff: update to revision 5460 (from glibc-bsd).

Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-tcbhead_t.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-tcbhead_t.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-tcbhead_t.diff	2014-04-16 22:01:00 UTC (rev 6018)
@@ -0,0 +1,87 @@
+Move dtv, dtv_t, tcbhead_t declaration to per-arch file.
+Add i386 fields to TLS structure
+ 
+	* sysdeps/mach/hurd/tls.h (dtv, dtv_t, tcbhead_t): Move declarations
+	to...
+	* sysdeps/mach/hurd/i386/tls.h: ... here.
+	(tcbhead_t): Add multiple_threads, sysinfo, stack_guard,
+	pointer_guard, gscope_flag, private_futex, __private_tm, __private_ss
+	fields.
+
+diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
+index 845d53d..03741cd 100644
+--- a/sysdeps/mach/hurd/i386/tls.h
++++ b/sysdeps/mach/hurd/i386/tls.h
+@@ -23,6 +23,40 @@
+ /* Some things really need not be machine-dependent.  */
+ #include <sysdeps/mach/hurd/tls.h>
+ 
++
++#ifndef __ASSEMBLER__
++/* Type for the dtv.  */
++typedef union dtv
++{
++  size_t counter;
++  struct
++  {
++    void *val;
++    bool is_static;
++  } pointer;
++} dtv_t;
++
++
++/* Type of the TCB.  */
++typedef struct
++{
++  void *tcb;			/* Points to this structure.  */
++  dtv_t *dtv;			/* Vector of pointers to TLS data.  */
++  thread_t self;		/* This thread's control port.  */
++  int multiple_threads;
++  uintptr_t sysinfo;
++  uintptr_t stack_guard;
++  uintptr_t pointer_guard;
++  int gscope_flag;
++  int private_futex;
++  /* Reservation of some values for the TM ABI.  */
++  void *__private_tm[4];
++  /* GCC split stack support.  */
++  void *__private_ss;
++} tcbhead_t;
++#endif
++
++
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ #define TLS_TCB_AT_TP	1
+diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h
+index dbe73f5..3b8b713 100644
+--- a/sysdeps/mach/hurd/tls.h
++++ b/sysdeps/mach/hurd/tls.h
+@@ -27,27 +27,6 @@
+ # include <mach.h>
+ 
+ 
+-/* Type for the dtv.  */
+-typedef union dtv
+-{
+-  size_t counter;
+-  struct
+-  {
+-    void *val;
+-    bool is_static;
+-  } pointer;
+-} dtv_t;
+-
+-
+-/* Type of the TCB.  */
+-typedef struct
+-{
+-  void *tcb;			/* Points to this structure.  */
+-  dtv_t *dtv;			/* Vector of pointers to TLS data.  */
+-  thread_t self;		/* This thread's control port.  */
+-} tcbhead_t;
+-
+-
+ /* This is the size of the initial TCB.  */
+ # define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
+ 

Modified: glibc-package/trunk/debian/patches/hurd-i386/tg-tls-threadvar.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/tg-tls-threadvar.diff	2014-04-16 21:21:57 UTC (rev 6017)
+++ glibc-package/trunk/debian/patches/hurd-i386/tg-tls-threadvar.diff	2014-04-16 22:01:00 UTC (rev 6018)
@@ -876,15 +876,15 @@
     this. */
  #define __mig_get_reply_port() profil_reply_port
  
-diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h
+diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
 index 230f907..a5f65ff 100644
---- a/sysdeps/mach/hurd/tls.h
-+++ b/sysdeps/mach/hurd/tls.h
+--- a/sysdeps/mach/hurd/i386/tls.h
++++ b/sysdeps/mach/hurd/i386/tls.h
 @@ -47,6 +47,7 @@ typedef struct
-   void *tcb;			/* Points to this structure.  */
-   dtv_t *dtv;			/* Vector of pointers to TLS data.  */
-   thread_t self;		/* This thread's control port.  */
+   void *__private_tm[4];
+   /* GCC split stack support.  */
+   void *__private_ss;
 +  mach_port_t reply_port;	/* This thread's reply port.  */
  } tcbhead_t;
+ #endif
  
- 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2014-04-16 21:21:57 UTC (rev 6017)
+++ glibc-package/trunk/debian/patches/series	2014-04-16 22:01:00 UTC (rev 6018)
@@ -75,6 +75,7 @@
 hppa/local-EAGAIN.diff
 hppa/cvs-hppa-DL_CALL_DT_INIT_FINI.diff
 
+hurd-i386/cvs-tcbhead_t.diff
 hurd-i386/local-enable-ldconfig.diff
 hurd-i386/tg-context_functions.diff
 hurd-i386/tg-tls.diff


Reply to: