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

[glibc] 01/01: hurd: fix a series of thread linkspace issues



This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch glibc-2.26
in repository glibc.

commit b5a3017a4647d098f9936cee9e700e9f0b7562cf
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Sep 24 21:31:41 2017 +0000

    hurd: fix a series of thread linkspace issues
    
        - patches/hurd-i386/cvs-libpthread.diff: Update.
        - patches/hurd-i386/tg-thread-linkspace.diff: New patch.
        - testsuite-xfail-debian.mk: Update.
---
 debian/changelog                                  |   1 +
 debian/patches/hurd-i386/cvs-libpthread.diff      | 120 +++++++++++-------
 debian/patches/hurd-i386/tg-thread-linkspace.diff | 147 ++++++++++++++++++++++
 debian/patches/series                             |   1 +
 debian/testsuite-xfail-debian.mk                  | 146 +--------------------
 5 files changed, 224 insertions(+), 191 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index db2d59a..9165786 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -82,6 +82,7 @@ glibc (2.26-0experimental0) UNRELEASED; urgency=medium
     - patches/hurd-i386/git-hidden-def.diff-2: New patch.
     - patches/hurd-i386/git-dl-sysdep-check.diff: New patch.
     - patches/hurd-i386/git-socket-limit.diff: New patch.
+    - patches/hurd-i386/tg-thread-linkspace.diff: New patch.
     - testsuite-xfail-debian.mk: Update for hurd-i386.
 
  -- Adam Conrad <adconrad@0c3.net>  Sat, 02 Sep 2017 12:15:10 -0600
diff --git a/debian/patches/hurd-i386/cvs-libpthread.diff b/debian/patches/hurd-i386/cvs-libpthread.diff
index ec90ed2..dd677f5 100644
--- a/debian/patches/hurd-i386/cvs-libpthread.diff
+++ b/debian/patches/hurd-i386/cvs-libpthread.diff
@@ -1,17 +1,16 @@
-git diff empty --patch-with-stat --src-prefix=glibc/libpthread/ --dst-prefix=glibc/libpthread/ 4c9332bfdc9ccd793b6ded3168602195913cedb3
+git diff empty --patch-with-stat --src-prefix=glibc/libpthread/ --dst-prefix=glibc/libpthread/ f881f17267506f3ced17259a066a4d95bffb57f0
 from git.savannah.gnu.org:/srv/git/hurd/libpthread.git/
 thus by construction only libpthread/ files, thus hurd-only
-Date: Sun Sep 17 21:44:09 2017 +0200
+Date: Sun Sep 24 23:09:59 2017 +0200
 
  ChangeLog                                     |   6 +
- Makeconfig                                    |  13 +
+ Makeconfig                                    |  20 +
  Makefile                                      | 371 ++++++++++++
  TODO                                          | 131 ++++
- Versions                                      | 147 +++++
+ Versions                                      | 155 +++++
  configure                                     |   2 +
  configure.in                                  |   4 +
- forward.c                                     | 280 +++++++++
- include/pthread.h                             |   7 +
+ forward.c                                     | 281 +++++++++
  include/pthread/pthread.h                     | 835 ++++++++++++++++++++++++++
  include/pthread/pthreadtypes.h                | 125 ++++
  libc_pthread_init.c                           |  35 ++
@@ -21,7 +20,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  not-in-libc.h                                 |  12 +
  pthread/Versions                              |  15 +
  pthread/alloca_cutoff.c                       |  27 +
- pthread/cthreads-compat.c                     | 101 ++++
+ pthread/cthreads-compat.c                     | 102 ++++
  pthread/pt-alloc.c                            | 219 +++++++
  pthread/pt-cancel.c                           |  63 ++
  pthread/pt-cleanup.c                          |  28 +
@@ -29,7 +28,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  pthread/pt-dealloc.c                          |  69 +++
  pthread/pt-detach.c                           |  80 +++
  pthread/pt-exit.c                             | 112 ++++
- pthread/pt-getattr.c                          |  51 ++
+ pthread/pt-getattr.c                          |  52 ++
  pthread/pt-initialize.c                       |  88 +++
  pthread/pt-internal.h                         | 330 ++++++++++
  pthread/pt-join.c                             |  76 +++
@@ -52,7 +51,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  sysdeps/generic/pt-attr-getschedparam.c       |  34 ++
  sysdeps/generic/pt-attr-getschedpolicy.c      |  31 +
  sysdeps/generic/pt-attr-getscope.c            |  31 +
- sysdeps/generic/pt-attr-getstack.c            |  31 +
+ sysdeps/generic/pt-attr-getstack.c            |  32 +
  sysdeps/generic/pt-attr-getstackaddr.c        |  29 +
  sysdeps/generic/pt-attr-getstacksize.c        |  29 +
  sysdeps/generic/pt-attr-init.c                |  29 +
@@ -91,7 +90,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  sysdeps/generic/pt-equal.c                    |  31 +
  sysdeps/generic/pt-getconcurrency.c           |  27 +
  sysdeps/generic/pt-getcpuclockid.c            |  35 ++
- sysdeps/generic/pt-getschedparam.c            |  31 +
+ sysdeps/generic/pt-getschedparam.c            |  32 +
  sysdeps/generic/pt-getspecific.c              |  27 +
  sysdeps/generic/pt-init-specific.c            |  27 +
  sysdeps/generic/pt-key-create.c               |  30 +
@@ -160,6 +159,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  sysdeps/hurd/pt-setspecific.c                 |  48 ++
  sysdeps/i386/bits/memory.h                    |  40 ++
  sysdeps/i386/bits/pt-atomic.h                 |  66 ++
+ sysdeps/i386/bits/pthreadtypes-arch.h         |  21 +
  sysdeps/i386/machine-sp.h                     |  30 +
  sysdeps/i386/pt-machdep.h                     |  29 +
  sysdeps/mach/bits/spin-lock-inline.h          |  90 +++
@@ -200,17 +200,19 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  sysdeps/pthread/bits/once.h                   |  34 ++
  sysdeps/pthread/bits/pthread-np.h             |  27 +
  sysdeps/pthread/bits/pthread.h                |  38 ++
- sysdeps/pthread/bits/pthreadtypes.h           |  29 +
+ sysdeps/pthread/bits/pthreadtypes.h           |  30 +
  sysdeps/pthread/bits/rwlock-attr.h            |  32 +
  sysdeps/pthread/bits/rwlock.h                 |  46 ++
  sysdeps/pthread/bits/semaphore.h              |  44 ++
  sysdeps/pthread/bits/thread-attr.h            |  47 ++
+ sysdeps/pthread/bits/thread-shared-types.h    |  24 +
  sysdeps/pthread/bits/thread-specific.h        |  25 +
  sysdeps/pthread/flockfile.c                   |  32 +
  sysdeps/pthread/ftrylockfile.c                |  35 ++
  sysdeps/pthread/funlockfile.c                 |  33 +
  sysdeps/pthread/libc-lockP.h                  | 158 +++++
  sysdeps/pthread/pthread-functions.h           | 141 +++++
+ sysdeps/pthread/pthread.h                     |  22 +
  sysdeps/pthread/semaphore.h                   |  81 +++
  tests/.cvsignore                              |   1 +
  tests/Makefile                                |  40 ++
@@ -233,7 +235,7 @@ Date: Sun Sep 17 21:44:09 2017 +0200
  tests/test-8.c                                |  60 ++
  tests/test-9.c                                |  88 +++
  tests/test-__pthread_destroy_specific-skip.c  |  83 +++
- 230 files changed, 13152 insertions(+)
+ 232 files changed, 13233 insertions(+)
 
 diff --git glibc/libpthread/ChangeLog glibc/libpthread/ChangeLog
 new file mode 100644
@@ -249,7 +251,7 @@ index 0000000..e991eac
 +    $ git show 51839d398b0f9885a17ab5c0768b8dec4dd9eb79:ChangeLog
 diff --git glibc/libpthread/Makeconfig glibc/libpthread/Makeconfig
 new file mode 100644
-index 0000000..e90f5f7
+index 0000000..a8ef68e
 --- /dev/null
 +++ glibc/libpthread/Makeconfig
 @@ -0,0 +1,20 @@
@@ -789,10 +791,10 @@ index 0000000..979c38c
 +   http://sources.redhat.com/ml/libc-alpha/2002-08/msg00278.html.
 diff --git glibc/libpthread/Versions glibc/libpthread/Versions
 new file mode 100644
-index 0000000..4ad3c3e
+index 0000000..67c6032
 --- /dev/null
 +++ glibc/libpthread/Versions
-@@ -0,0 +1,147 @@
+@@ -0,0 +1,155 @@
 +libc {
 +  GLIBC_2.13 {
 +    pthread_attr_destroy; pthread_attr_getdetachstate;
@@ -938,6 +940,14 @@ index 0000000..4ad3c3e
 +  GLIBC_PRIVATE {
 +    __shm_directory;
 +    __pthread_threads;
++
++    __cthread_detach;
++    __cthread_fork;
++    __cthread_keycreate;
++    __cthread_getspecific;
++    __cthread_setspecific;
++    __pthread_getattr_np;
++    __pthread_attr_getstack;
 +  }
 +}
 diff --git glibc/libpthread/configure glibc/libpthread/configure
@@ -960,7 +970,7 @@ index 0000000..4e140b1
 +libc_add_on_subdirs=.
 diff --git glibc/libpthread/forward.c glibc/libpthread/forward.c
 new file mode 100644
-index 0000000..c819357
+index 0000000..0ee84a0
 --- /dev/null
 +++ glibc/libpthread/forward.c
 @@ -0,0 +1,281 @@
@@ -1247,20 +1257,35 @@ index 0000000..c819357
 +}
 diff --git glibc/libpthread/sysdeps/pthread/pthread.h glibc/libpthread/sysdeps/pthread/pthread.h
 new file mode 100644
-index 0000000..1d4d3c7
+index 0000000..8e65b05
 --- /dev/null
 +++ glibc/libpthread/sysdeps/pthread/pthread.h
-@@ -0,0 +1,7 @@
+@@ -0,0 +1,22 @@
 +#ifndef _PTHREAD_H
 +#include <pthread/pthread.h>
 +
++/* These represent the interface used by glibc itself.  */
++
 +extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
 +extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
 +
++typedef struct __cthread *__cthread_t;
++typedef int __cthread_key_t;
++typedef void *	(*__cthread_fn_t)(void *__arg);
++
++__cthread_t __cthread_fork (__cthread_fn_t, void *);
++void __cthread_detach (__cthread_t);
++int __cthread_keycreate (__cthread_key_t *);
++int __cthread_getspecific (__cthread_key_t, void **);
++int __cthread_setspecific (__cthread_key_t, void *);
++
++int __pthread_getattr_np (pthread_t, pthread_attr_t *);
++int __pthread_attr_getstack (const pthread_attr_t *, void **, size_t *);
++
 +#endif
 diff --git glibc/libpthread/include/pthread/pthread.h glibc/libpthread/include/pthread/pthread.h
 new file mode 100644
-index 0000000..3aa6a93
+index 0000000..350a673
 --- /dev/null
 +++ glibc/libpthread/include/pthread/pthread.h
 @@ -0,0 +1,835 @@
@@ -2472,10 +2497,10 @@ index 0000000..ec54d8f
 +libc_hidden_def (__libc_alloca_cutoff)
 diff --git glibc/libpthread/pthread/cthreads-compat.c glibc/libpthread/pthread/cthreads-compat.c
 new file mode 100644
-index 0000000..1a0971b
+index 0000000..cd845ed
 --- /dev/null
 +++ glibc/libpthread/pthread/cthreads-compat.c
-@@ -0,0 +1,101 @@
+@@ -0,0 +1,102 @@
 +/* Compatibility routines for cthreads.
 +   Copyright (C) 2000, 2002, 2008 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -2498,23 +2523,20 @@ index 0000000..1a0971b
 +#include <assert.h>
 +#include <pthread.h>
 +
-+typedef void *cthread_t;
-+typedef void *(*cthread_fn_t) (void *arg);
-+typedef int cthread_key_t;
-+
-+#define	CTHREAD_KEY_INVALID (cthread_key_t) -1
++#define	CTHREAD_KEY_INVALID (__cthread_key_t) -1
 +
 +void
-+cthread_detach (cthread_t thread)
++__cthread_detach (__cthread_t thread)
 +{
 +  int err;
 +
 +  err = pthread_detach ((pthread_t) thread);
 +  assert_perror (err);
 +}
++weak_alias (__cthread_detach, cthread_detach)
 +
-+cthread_t
-+cthread_fork (cthread_fn_t func, void *arg)
++__cthread_t
++__cthread_fork (__cthread_fn_t func, void *arg)
 +{
 +  pthread_t thread;
 +  int err;
@@ -2522,11 +2544,12 @@ index 0000000..1a0971b
 +  err = pthread_create (&thread, NULL, func, arg);
 +  assert_perror (err);
 +
-+  return (cthread_t) thread;
++  return (__cthread_t) thread;
 +}
++weak_alias (__cthread_fork, cthread_fork)
 +
 +int
-+cthread_keycreate (cthread_key_t *key)
++__cthread_keycreate (__cthread_key_t *key)
 +{
 +  error_t err;
 +
@@ -2540,16 +2563,18 @@ index 0000000..1a0971b
 +
 +  return err;
 +}
++weak_alias (__cthread_keycreate, cthread_keycreate)
 +
 +int
-+cthread_getspecific (cthread_key_t key, void **val)
++__cthread_getspecific (__cthread_key_t key, void **val)
 +{
 +  *val = pthread_getspecific (key);
 +  return 0;
 +}
++weak_alias (__cthread_getspecific, cthread_getspecific)
 +
 +int
-+cthread_setspecific (cthread_key_t key, void *val)
++__cthread_setspecific (__cthread_key_t key, void *val)
 +{
 +  error_t err;
 +
@@ -2562,6 +2587,7 @@ index 0000000..1a0971b
 +
 +  return err;
 +}
++weak_alias (__cthread_setspecific, cthread_setspecific)
 +
 +void
 +__mutex_lock_solid (void *lock)
@@ -3446,10 +3472,10 @@ index 0000000..af75937
 +strong_alias (__pthread_exit, pthread_exit);
 diff --git glibc/libpthread/pthread/pt-getattr.c glibc/libpthread/pthread/pt-getattr.c
 new file mode 100644
-index 0000000..574420a
+index 0000000..0b86c66
 --- /dev/null
 +++ glibc/libpthread/pthread/pt-getattr.c
-@@ -0,0 +1,51 @@
+@@ -0,0 +1,52 @@
 +/* Thread attributes retrieval.
 +   Copyright (C) 2008 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -3479,7 +3505,7 @@ index 0000000..574420a
 +   already running thread THREAD.  It shall be called on an uninitialized ATTR
 +   and destroyed with pthread_attr_destroy when no longer needed.  */
 +int
-+pthread_getattr_np (pthread_t thread, pthread_attr_t *attr)
++__pthread_getattr_np (pthread_t thread, pthread_attr_t *attr)
 +{
 +  struct __pthread *pthread;
 +
@@ -3501,6 +3527,7 @@ index 0000000..574420a
 +
 +  return 0;
 +}
++weak_alias (__pthread_getattr_np, pthread_getattr_np)
 diff --git glibc/libpthread/pthread/pt-initialize.c glibc/libpthread/pthread/pt-initialize.c
 new file mode 100644
 index 0000000..4435a36
@@ -4719,10 +4746,10 @@ index 0000000..5e0c1a0
 +strong_alias (__pthread_attr_getscope, pthread_attr_getscope);
 diff --git glibc/libpthread/sysdeps/generic/pt-attr-getstack.c glibc/libpthread/sysdeps/generic/pt-attr-getstack.c
 new file mode 100644
-index 0000000..7beb79f
+index 0000000..5ab821e
 --- /dev/null
 +++ glibc/libpthread/sysdeps/generic/pt-attr-getstack.c
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
 +/* pthread_attr_getstack.  Generic version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -4746,7 +4773,7 @@ index 0000000..7beb79f
 +#include <pt-internal.h>
 +
 +int
-+pthread_attr_getstack (const pthread_attr_t *attr,
++__pthread_attr_getstack (const pthread_attr_t *attr,
 +		       void **stackaddr,
 +		       size_t *stacksize)
 +{
@@ -4754,6 +4781,7 @@ index 0000000..7beb79f
 +  pthread_attr_getstacksize (attr, stacksize);
 +  return 0;
 +}
++weak_alias (__pthread_attr_getstack, pthread_attr_getstack)
 diff --git glibc/libpthread/sysdeps/generic/pt-attr-getstackaddr.c glibc/libpthread/sysdeps/generic/pt-attr-getstackaddr.c
 new file mode 100644
 index 0000000..0360701
@@ -5261,7 +5289,7 @@ index 0000000..da754d7
 +}
 diff --git glibc/libpthread/sysdeps/generic/pt-attr.c glibc/libpthread/sysdeps/generic/pt-attr.c
 new file mode 100644
-index 0000000..064b6ea
+index 0000000..48d8323
 --- /dev/null
 +++ glibc/libpthread/sysdeps/generic/pt-attr.c
 @@ -0,0 +1,41 @@
@@ -6497,7 +6525,7 @@ index 0000000..03868d3
 +}
 diff --git glibc/libpthread/sysdeps/generic/pt-getschedparam.c glibc/libpthread/sysdeps/generic/pt-getschedparam.c
 new file mode 100644
-index 0000000..00974cf
+index 0000000..5b20421
 --- /dev/null
 +++ glibc/libpthread/sysdeps/generic/pt-getschedparam.c
 @@ -0,0 +1,32 @@
@@ -10183,11 +10211,11 @@ index 0000000..0dfc1f6
 +}
 +
 +#endif
-diff --git a/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h b/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h
+diff --git glibc/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h glibc/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h
 new file mode 100644
 index 0000000..7e7a311
 --- /dev/null
-+++ b/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h
++++ glibc/libpthread/sysdeps/i386/bits/pthreadtypes-arch.h
 @@ -0,0 +1,21 @@
 +/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -10210,11 +10238,11 @@ index 0000000..7e7a311
 +#define _BITS_PTHREADTYPES_ARCH_H	1
 +
 +#endif	/* bits/pthreadtypes.h */
-diff --git a/libpthread/sysdeps/pthread/bits/thread-shared-types.h b/libpthread/sysdeps/pthread/bits/thread-shared-types.h
+diff --git glibc/libpthread/sysdeps/pthread/bits/thread-shared-types.h glibc/libpthread/sysdeps/pthread/bits/thread-shared-types.h
 new file mode 100644
 index 0000000..369fead
 --- /dev/null
-+++ b/libpthread/sysdeps/pthread/bits/thread-shared-types.h
++++ glibc/libpthread/sysdeps/pthread/bits/thread-shared-types.h
 @@ -0,0 +1,24 @@
 +/* Common threading primitives definitions for both POSIX and C11.
 +   Copyright (C) 2017 Free Software Foundation, Inc.
@@ -12642,7 +12670,7 @@ index 0000000..80e6b09
 +#endif /* bits/pthread.h */
 diff --git glibc/libpthread/sysdeps/pthread/bits/pthreadtypes.h glibc/libpthread/sysdeps/pthread/bits/pthreadtypes.h
 new file mode 100644
-index 0000000..70368ff
+index 0000000..3e44d6b
 --- /dev/null
 +++ glibc/libpthread/sysdeps/pthread/bits/pthreadtypes.h
 @@ -0,0 +1,30 @@
diff --git a/debian/patches/hurd-i386/tg-thread-linkspace.diff b/debian/patches/hurd-i386/tg-thread-linkspace.diff
new file mode 100644
index 0000000..0ee6c02
--- /dev/null
+++ b/debian/patches/hurd-i386/tg-thread-linkspace.diff
@@ -0,0 +1,147 @@
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Subject: [PATCH] Fix thread linkspace
+
+Libc uses some thread functions, but should not expose the corresponding
+symbols, so call aliases.
+
+---
+ hurd/Versions                |  6 +++---
+ hurd/hurdsig.c               | 20 ++++++++++----------
+ sysdeps/mach/hurd/cthreads.c | 10 +++++-----
+ sysdeps/mach/libc-lock.h     |  4 ++--
+ 4 files changed, 20 insertions(+), 20 deletions(-)
+
+diff --git a/hurd/Versions b/hurd/Versions
+index 414231b5b4..e040b49edc 100644
+--- a/hurd/Versions
++++ b/hurd/Versions
+@@ -143,14 +143,14 @@ libc {
+ 
+   HURD_CTHREADS_0.3 {
+     # weak refs to libthreads functions that libc calls iff libthreads in use
+-    cthread_fork; cthread_detach;
+-    pthread_getattr_np; pthread_attr_getstack;
++    __cthread_fork; __cthread_detach;
++    __pthread_getattr_np; __pthread_attr_getstack;
+ 
+     # variables used for detecting cthreads
+     _cthread_exit_routine; _cthread_init_routine;
+ 
+     # cthreads functions with stubs in libc
+-    cthread_keycreate; cthread_getspecific; cthread_setspecific;
++    __cthread_keycreate; __cthread_getspecific; __cthread_setspecific;
+     __libc_getspecific;
+   }
+ 
+diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
+index fd787c6c1b..8584d5c631 100644
+--- a/hurd/hurdsig.c
++++ b/hurd/hurdsig.c
+@@ -1466,11 +1466,11 @@ _hurdsig_init (const int *intarray, size_t intarraysize)
+ 
+   /* Start the signal thread listening on the message port.  */
+ 
+-#pragma weak cthread_fork
+-#pragma weak cthread_detach
+-#pragma weak pthread_getattr_np
+-#pragma weak pthread_attr_getstack
+-  if (!cthread_fork)
++#pragma weak __cthread_fork
++#pragma weak __cthread_detach
++#pragma weak __pthread_getattr_np
++#pragma weak __pthread_attr_getstack
++  if (!__cthread_fork)
+     {
+       err = __thread_create (__mach_task_self (), &_hurd_msgport_thread);
+       assert_perror (err);
+@@ -1495,7 +1495,7 @@ _hurdsig_init (const int *intarray, size_t intarraysize)
+     }
+   else
+     {
+-      cthread_t thread;
++      __cthread_t thread;
+       /* When cthreads is being used, we need to make the signal thread a
+          proper cthread.  Otherwise it cannot use mutex_lock et al, which
+          will be the cthreads versions.  Various of the message port RPC
+@@ -1505,17 +1505,17 @@ _hurdsig_init (const int *intarray, size_t intarraysize)
+          we'll let the signal thread's per-thread variables be found as for
+          any normal cthread, and just leave the magic __hurd_sigthread_*
+          values all zero so they'll be ignored.  */
+-      cthread_detach (thread = cthread_fork ((cthread_fn_t) &_hurd_msgport_receive, 0));
++      __cthread_detach (thread = __cthread_fork ((__cthread_fn_t) &_hurd_msgport_receive, 0));
+ 
+-      if (pthread_getattr_np)
++      if (__pthread_getattr_np)
+ 	{
+ 	  /* Record stack layout for fork() */
+ 	  pthread_attr_t attr;
+ 	  void *addr;
+ 	  size_t size;
+ 
+-	  pthread_getattr_np ((pthread_t) thread, &attr);
+-	  pthread_attr_getstack (&attr, &addr, &size);
++	  __pthread_getattr_np ((pthread_t) thread, &attr);
++	  __pthread_attr_getstack (&attr, &addr, &size);
+ 	  __hurd_sigthread_stack_base = (uintptr_t) addr;
+ 	  __hurd_sigthread_stack_end = __hurd_sigthread_stack_base + size;
+ 	}
+diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c
+index f223e00b12..0a3780b273 100644
+--- a/sysdeps/mach/hurd/cthreads.c
++++ b/sysdeps/mach/hurd/cthreads.c
+@@ -24,7 +24,7 @@ char __libc_lock_self0[0];
+ /* Placeholder for key creation routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_keycreate (cthread_key_t *key)
++__cthread_keycreate (cthread_key_t *key)
+ {
+   __set_errno (ENOSYS);
+  *key = -1;
+@@ -34,7 +34,7 @@ cthread_keycreate (cthread_key_t *key)
+ /* Placeholder for key retrieval routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_getspecific (cthread_key_t key, void **pval)
++__cthread_getspecific (cthread_key_t key, void **pval)
+ {
+   *pval = NULL;
+   __set_errno (ENOSYS);
+@@ -44,19 +44,19 @@ cthread_getspecific (cthread_key_t key, void **pval)
+ /* Placeholder for key setting routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_setspecific (cthread_key_t key, void *val)
++__cthread_setspecific (cthread_key_t key, void *val)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+ }
+ 
+-/* Call cthread_getspecific which gets a pointer to the return value instead
++/* Call __cthread_getspecific which gets a pointer to the return value instead
+    of just returning it.  */
+ void *
+ weak_function
+ __libc_getspecific (cthread_key_t key)
+ {
+   void *val;
+-  cthread_getspecific (key, &val);
++  __cthread_getspecific (key, &val);
+   return val;
+ }
+diff --git a/sysdeps/mach/libc-lock.h b/sysdeps/mach/libc-lock.h
+index f9f57a0a65..35233f797e 100644
+--- a/sysdeps/mach/libc-lock.h
++++ b/sysdeps/mach/libc-lock.h
+@@ -223,8 +223,8 @@ struct __libc_once
+    used as argument to __libc_cleanup_region_start.  */
+ #define __libc_mutex_unlock __libc_lock_unlock
+ 
+-#define __libc_key_create(KEY,DEST) cthread_keycreate (KEY)
+-#define __libc_setspecific(KEY,VAL) cthread_setspecific (KEY, VAL)
++#define __libc_key_create(KEY,DEST) __cthread_keycreate (KEY)
++#define __libc_setspecific(KEY,VAL) __cthread_setspecific (KEY, VAL)
+ void *__libc_getspecific (__libc_key_t key);
+ 
+ /* Hide the definitions which are only supposed to be used inside libc in
diff --git a/debian/patches/series b/debian/patches/series
index e154e32..6a45ce6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -161,6 +161,7 @@ hurd-i386/git-hidden-def.diff
 hurd-i386/git-hidden-def-2.diff
 hurd-i386/git-dl-sysdep-check.diff
 hurd-i386/git-socket-limit.diff
+hurd-i386/tg-thread-linkspace.diff
 
 i386/local-biarch.diff
 i386/unsubmitted-quiet-ldconfig.diff
diff --git a/debian/testsuite-xfail-debian.mk b/debian/testsuite-xfail-debian.mk
index 24edf53..f26521e 100644
--- a/debian/testsuite-xfail-debian.mk
+++ b/debian/testsuite-xfail-debian.mk
@@ -238,42 +238,8 @@ test-xfail-XPG4/sys/resource.h/conform = yes
 test-xfail-XPG4/sys/statvfs.h/conform = yes
 test-xfail-XPG4/sys/un.h/conform = yes
 
-test-xfail-ISO11/assert.h/linknamespace = yes
-test-xfail-ISO11/complex.h/linknamespace = yes
-test-xfail-ISO11/fenv.h/linknamespace = yes
-test-xfail-ISO11/locale.h/linknamespace = yes
-test-xfail-ISO11/math.h/linknamespace = yes
-test-xfail-ISO11/setjmp.h/linknamespace = yes
-test-xfail-ISO11/signal.h/linknamespace = yes
-test-xfail-ISO11/stdio.h/linknamespace = yes
-test-xfail-ISO11/stdlib.h/linknamespace = yes
-test-xfail-ISO11/string.h/linknamespace = yes
-test-xfail-ISO11/tgmath.h/linknamespace = yes
 test-xfail-ISO11/time.h/linknamespace = yes
-test-xfail-ISO11/uchar.h/linknamespace = yes
-test-xfail-ISO11/wchar.h/linknamespace = yes
-test-xfail-ISO99/assert.h/linknamespace = yes
-test-xfail-ISO99/complex.h/linknamespace = yes
-test-xfail-ISO99/fenv.h/linknamespace = yes
-test-xfail-ISO99/locale.h/linknamespace = yes
-test-xfail-ISO99/math.h/linknamespace = yes
-test-xfail-ISO99/setjmp.h/linknamespace = yes
-test-xfail-ISO99/signal.h/linknamespace = yes
-test-xfail-ISO99/stdio.h/linknamespace = yes
-test-xfail-ISO99/stdlib.h/linknamespace = yes
-test-xfail-ISO99/string.h/linknamespace = yes
-test-xfail-ISO99/tgmath.h/linknamespace = yes
-test-xfail-ISO99/time.h/linknamespace = yes
-test-xfail-ISO99/wchar.h/linknamespace = yes
-test-xfail-ISO/assert.h/linknamespace = yes
-test-xfail-ISO/locale.h/linknamespace = yes
-test-xfail-ISO/math.h/linknamespace = yes
-test-xfail-ISO/setjmp.h/linknamespace = yes
-test-xfail-ISO/signal.h/linknamespace = yes
-test-xfail-ISO/stdio.h/linknamespace = yes
-test-xfail-ISO/stdlib.h/linknamespace = yes
-test-xfail-ISO/string.h/linknamespace = yes
-test-xfail-ISO/time.h/linknamespace = yes
+
 test-xfail-POSIX2008/aio.h/linknamespace = yes
 test-xfail-POSIX2008/arpa/inet.h/linknamespace = yes
 test-xfail-POSIX2008/assert.h/linknamespace = yes
@@ -478,71 +444,20 @@ test-xfail-XOPEN2K/ulimit.h/linknamespace = yes
 test-xfail-XOPEN2K/utime.h/linknamespace = yes
 test-xfail-XOPEN2K/utmpx.h/linknamespace = yes
 test-xfail-XOPEN2K/wchar.h/linknamespace = yes
-test-xfail-XPG3/assert.h/linknamespace = yes
-test-xfail-XPG3/dirent.h/linknamespace = yes
-test-xfail-XPG3/fcntl.h/linknamespace = yes
-test-xfail-XPG3/ftw.h/linknamespace = yes
-test-xfail-XPG3/grp.h/linknamespace = yes
-test-xfail-XPG3/iconv.h/linknamespace = yes
-test-xfail-XPG3/langinfo.h/linknamespace = yes
-test-xfail-XPG3/locale.h/linknamespace = yes
-test-xfail-XPG3/math.h/linknamespace = yes
-test-xfail-XPG3/monetary.h/linknamespace = yes
-test-xfail-XPG3/nl_types.h/linknamespace = yes
-test-xfail-XPG3/pwd.h/linknamespace = yes
-test-xfail-XPG3/setjmp.h/linknamespace = yes
-test-xfail-XPG3/signal.h/linknamespace = yes
-test-xfail-XPG3/string.h/linknamespace = yes
-test-xfail-XPG3/sys/ipc.h/linknamespace = yes
-test-xfail-XPG3/sys/msg.h/linknamespace = yes
-test-xfail-XPG3/sys/sem.h/linknamespace = yes
-test-xfail-XPG3/sys/shm.h/linknamespace = yes
-test-xfail-XPG3/sys/stat.h/linknamespace = yes
-test-xfail-XPG3/sys/times.h/linknamespace = yes
-test-xfail-XPG3/sys/utsname.h/linknamespace = yes
-test-xfail-XPG3/sys/wait.h/linknamespace = yes
-test-xfail-XPG3/termios.h/linknamespace = yes
-test-xfail-XPG3/time.h/linknamespace = yes
-test-xfail-XPG3/ulimit.h/linknamespace = yes
-test-xfail-XPG3/utime.h/linknamespace = yes
 test-xfail-XPG4/arpa/inet.h/linknamespace = yes
-test-xfail-XPG4/assert.h/linknamespace = yes
-test-xfail-XPG4/dirent.h/linknamespace = yes
-test-xfail-XPG4/fcntl.h/linknamespace = yes
 test-xfail-XPG4/ftw.h/linknamespace = yes
-test-xfail-XPG4/grp.h/linknamespace = yes
-test-xfail-XPG4/iconv.h/linknamespace = yes
-test-xfail-XPG4/langinfo.h/linknamespace = yes
-test-xfail-XPG4/locale.h/linknamespace = yes
-test-xfail-XPG4/math.h/linknamespace = yes
-test-xfail-XPG4/monetary.h/linknamespace = yes
 test-xfail-XPG4/netinet/in.h/linknamespace = yes
-test-xfail-XPG4/nl_types.h/linknamespace = yes
 test-xfail-XPG4/poll.h/linknamespace = yes
-test-xfail-XPG4/pwd.h/linknamespace = yes
-test-xfail-XPG4/setjmp.h/linknamespace = yes
 test-xfail-XPG4/signal.h/linknamespace = yes
-test-xfail-XPG4/string.h/linknamespace = yes
 test-xfail-XPG4/stropts.h/linknamespace = yes
-test-xfail-XPG4/sys/ipc.h/linknamespace = yes
 test-xfail-XPG4/sys/mman.h/linknamespace = yes
-test-xfail-XPG4/sys/msg.h/linknamespace = yes
 test-xfail-XPG4/sys/resource.h/linknamespace = yes
-test-xfail-XPG4/sys/sem.h/linknamespace = yes
 test-xfail-XPG4/sys/shm.h/linknamespace = yes
 test-xfail-XPG4/sys/socket.h/linknamespace = yes
-test-xfail-XPG4/sys/stat.h/linknamespace = yes
 test-xfail-XPG4/sys/statvfs.h/linknamespace = yes
 test-xfail-XPG4/sys/time.h/linknamespace = yes
-test-xfail-XPG4/sys/times.h/linknamespace = yes
 test-xfail-XPG4/sys/uio.h/linknamespace = yes
-test-xfail-XPG4/sys/utsname.h/linknamespace = yes
-test-xfail-XPG4/sys/wait.h/linknamespace = yes
-test-xfail-XPG4/termios.h/linknamespace = yes
-test-xfail-XPG4/time.h/linknamespace = yes
 test-xfail-XPG4/ucontext.h/linknamespace = yes
-test-xfail-XPG4/ulimit.h/linknamespace = yes
-test-xfail-XPG4/utime.h/linknamespace = yes
 test-xfail-XPG4/utmpx.h/linknamespace = yes
 
 # new in 2.22
@@ -576,9 +491,6 @@ test-xfail-XOPEN2K/sys/resource.h/conform = yes
 test-xfail-XOPEN2K/sys/shm.h/conform = yes
 test-xfail-XOPEN2K/sys/statvfs.h/conform = yes
 test-xfail-XOPEN2K/sys/un.h/conform = yes
-test-xfail-XPG3/sys/ipc.h/conform = yes
-test-xfail-XPG3/sys/msg.h/conform = yes
-test-xfail-XPG3/sys/shm.h/conform = yes
 test-xfail-XPG4/sys/ipc.h/conform = yes
 test-xfail-XPG4/sys/msg.h/conform = yes
 test-xfail-XPG4/sys/shm.h/conform = yes
@@ -638,22 +550,9 @@ test-xfail-XOPEN2K/sys/wait.h/linknamespace = yes
 test-xfail-XOPEN2K/ucontext.h/linknamespace = yes
 test-xfail-XOPEN2K/unistd.h/linknamespace = yes
 test-xfail-XOPEN2K/wordexp.h/linknamespace = yes
-test-xfail-XPG3/fnmatch.h/linknamespace = yes
-test-xfail-XPG3/glob.h/linknamespace = yes
-test-xfail-XPG3/regex.h/linknamespace = yes
-test-xfail-XPG3/search.h/linknamespace = yes
-test-xfail-XPG3/stdio.h/linknamespace = yes
-test-xfail-XPG3/stdlib.h/linknamespace = yes
-test-xfail-XPG3/unistd.h/linknamespace = yes
-test-xfail-XPG3/wordexp.h/linknamespace = yes
 test-xfail-XPG4/fmtmsg.h/linknamespace = yes
-test-xfail-XPG4/fnmatch.h/linknamespace = yes
 test-xfail-XPG4/glob.h/linknamespace = yes
 test-xfail-XPG4/netdb.h/linknamespace = yes
-test-xfail-XPG4/regex.h/linknamespace = yes
-test-xfail-XPG4/search.h/linknamespace = yes
-test-xfail-XPG4/stdio.h/linknamespace = yes
-test-xfail-XPG4/stdlib.h/linknamespace = yes
 test-xfail-XPG4/syslog.h/linknamespace = yes
 test-xfail-XPG4/sys/timeb.h/linknamespace = yes
 test-xfail-XPG4/unistd.h/linknamespace = yes
@@ -685,9 +584,6 @@ test-xfail-XOPEN2K/fcntl.h/conform = yes
 test-xfail-XOPEN2K/mqueue.h/conform = yes
 test-xfail-XOPEN2K/termios.h/conform = yes
 test-xfail-XOPEN2K8/termios.h/conform = yes
-test-xfail-XPG3/fcntl.h/conform = yes
-test-xfail-XPG3/sys/stat.h/conform = yes
-test-xfail-XPG3/termios.h/conform = yes
 test-xfail-XPG4/fcntl.h/conform = yes
 test-xfail-XPG4/sys/stat.h/conform = yes
 test-xfail-XPG4/termios.h/conform = yes
@@ -746,55 +642,15 @@ test-xfail-XPG42/sys/un.h/conform = yes
 test-xfail-XPG42/termios.h/conform = yes
 
 test-xfail-XPG42/arpa/inet.h/linknamespace = yes
-test-xfail-XPG42/assert.h/linknamespace = yes
-test-xfail-XPG42/dirent.h/linknamespace = yes
-test-xfail-XPG42/fcntl.h/linknamespace = yes
-test-xfail-XPG42/fmtmsg.h/linknamespace = yes
-test-xfail-XPG42/fnmatch.h/linknamespace = yes
 test-xfail-XPG42/ftw.h/linknamespace = yes
 test-xfail-XPG42/glob.h/linknamespace = yes
-test-xfail-XPG42/grp.h/linknamespace = yes
-test-xfail-XPG42/iconv.h/linknamespace = yes
-test-xfail-XPG42/langinfo.h/linknamespace = yes
-test-xfail-XPG42/locale.h/linknamespace = yes
-test-xfail-XPG42/math.h/linknamespace = yes
-test-xfail-XPG42/monetary.h/linknamespace = yes
 test-xfail-XPG42/netdb.h/linknamespace = yes
 test-xfail-XPG42/netinet/in.h/linknamespace = yes
-test-xfail-XPG42/nl_types.h/linknamespace = yes
-test-xfail-XPG42/poll.h/linknamespace = yes
-test-xfail-XPG42/pwd.h/linknamespace = yes
-test-xfail-XPG42/regex.h/linknamespace = yes
-test-xfail-XPG42/search.h/linknamespace = yes
-test-xfail-XPG42/setjmp.h/linknamespace = yes
 test-xfail-XPG42/signal.h/linknamespace = yes
-test-xfail-XPG42/stdio.h/linknamespace = yes
 test-xfail-XPG42/stdlib.h/linknamespace = yes
-test-xfail-XPG42/string.h/linknamespace = yes
-test-xfail-XPG42/stropts.h/linknamespace = yes
-test-xfail-XPG42/sys/ipc.h/linknamespace = yes
-test-xfail-XPG42/sys/mman.h/linknamespace = yes
-test-xfail-XPG42/sys/msg.h/linknamespace = yes
-test-xfail-XPG42/sys/resource.h/linknamespace = yes
-test-xfail-XPG42/sys/sem.h/linknamespace = yes
-test-xfail-XPG42/sys/shm.h/linknamespace = yes
 test-xfail-XPG42/sys/socket.h/linknamespace = yes
-test-xfail-XPG42/sys/stat.h/linknamespace = yes
-test-xfail-XPG42/sys/statvfs.h/linknamespace = yes
-test-xfail-XPG42/sys/time.h/linknamespace = yes
-test-xfail-XPG42/sys/timeb.h/linknamespace = yes
-test-xfail-XPG42/sys/times.h/linknamespace = yes
-test-xfail-XPG42/sys/uio.h/linknamespace = yes
-test-xfail-XPG42/sys/utsname.h/linknamespace = yes
 test-xfail-XPG42/sys/wait.h/linknamespace = yes
-test-xfail-XPG42/syslog.h/linknamespace = yes
-test-xfail-XPG42/termios.h/linknamespace = yes
-test-xfail-XPG42/time.h/linknamespace = yes
-test-xfail-XPG42/ucontext.h/linknamespace = yes
-test-xfail-XPG42/ulimit.h/linknamespace = yes
 test-xfail-XPG42/unistd.h/linknamespace = yes
-test-xfail-XPG42/utime.h/linknamespace = yes
-test-xfail-XPG42/utmpx.h/linknamespace = yes
 test-xfail-XPG42/wordexp.h/linknamespace = yes
 endif
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: