r6019 - in glibc-package/branches/eglibc-2.19/debian: . patches patches/hurd-i386
Author: sthibault
Date: 2014-04-16 22:02:30 +0000 (Wed, 16 Apr 2014)
New Revision: 6019
Added:
glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/cvs-tcbhead_t.diff
Modified:
glibc-package/branches/eglibc-2.19/debian/changelog
glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/tg-tls-threadvar.diff
glibc-package/branches/eglibc-2.19/debian/patches/series
Log:
port r6018 from 2.18: hurd-i386/cvs-tcbhead_t.diff: New patch to complete TLS variables,
to fix gcc's -fsplit-stack support.
Modified: glibc-package/branches/eglibc-2.19/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/changelog 2014-04-16 22:01:00 UTC (rev 6018)
+++ glibc-package/branches/eglibc-2.19/debian/changelog 2014-04-16 22:02:30 UTC (rev 6019)
@@ -88,6 +88,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.
-- Aurelien Jarno <aurel32@debian.org> Sun, 02 Mar 2014 16:19:49 +0100
Copied: glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/cvs-tcbhead_t.diff (from rev 6018, glibc-package/trunk/debian/patches/hurd-i386/cvs-tcbhead_t.diff)
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/cvs-tcbhead_t.diff (rev 0)
+++ glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/cvs-tcbhead_t.diff 2014-04-16 22:02:30 UTC (rev 6019)
@@ -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/branches/eglibc-2.19/debian/patches/hurd-i386/tg-tls-threadvar.diff
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/tg-tls-threadvar.diff 2014-04-16 22:01:00 UTC (rev 6018)
+++ glibc-package/branches/eglibc-2.19/debian/patches/hurd-i386/tg-tls-threadvar.diff 2014-04-16 22:02:30 UTC (rev 6019)
@@ -830,13 +830,13 @@
this. */
#define __mig_get_reply_port() profil_reply_port
---- 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/branches/eglibc-2.19/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/patches/series 2014-04-16 22:01:00 UTC (rev 6018)
+++ glibc-package/branches/eglibc-2.19/debian/patches/series 2014-04-16 22:02:30 UTC (rev 6019)
@@ -63,6 +63,7 @@
hppa/local-lowlevellock.diff
hppa/local-EAGAIN.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: