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 02e41a0111b4f32f8f0628af813a5fced126ce8c
Author: Samuel Thibault <samuel.thiba...@ens-lyon.org>
Date:   Tue Sep 26 19:49:04 2017 +0000

    patches/hurd-i386/cvs-libpthread.diff: Update to fix symbol exposition
---
 debian/patches/hurd-i386/cvs-libpthread.diff | 117 ++++++++++++---------------
 1 file changed, 53 insertions(+), 64 deletions(-)

diff --git a/debian/patches/hurd-i386/cvs-libpthread.diff 
b/debian/patches/hurd-i386/cvs-libpthread.diff
index 6e27b31..65a09e7 100644
--- a/debian/patches/hurd-i386/cvs-libpthread.diff
+++ b/debian/patches/hurd-i386/cvs-libpthread.diff
@@ -1,11 +1,12 @@
-git diff empty --patch-with-stat --src-prefix=glibc/libpthread/ 
--dst-prefix=glibc/libpthread/ 596061769ee34741a42eb375b1a2e06fffb4c5a3
+lsdiff -p2 cvs-libpthread.diff > orderfile
+git diff empty --patch-with-stat --src-prefix=glibc/libpthread/ 
--dst-prefix=glibc/libpthread/ -Oorderfile 
64727f50e23a744e1607cb6aff72f0813d56c6c9
 from git.savannah.gnu.org:/srv/git/hurd/libpthread.git/
 thus by construction only libpthread/ files, thus hurd-only
-Date: Mon Sep 25 21:47:12 2017 +0200
+Date: Tue Sep 26 21:29:14 2017 +0200
 
  ChangeLog                                     |   6 +
- Makeconfig                                    |  20 +
- Makefile                                      | 371 ++++++++++++
+ Makeconfig                                    |  13 +
+ Makefile                                      | 365 +++++++++++
  TODO                                          | 131 ++++
  Versions                                      | 155 +++++
  configure                                     |   2 +
@@ -150,14 +151,14 @@ Date: Mon Sep 25 21:47:12 2017 +0200
  sysdeps/generic/sem-unlink.c                  |  32 +
  sysdeps/generic/sem-wait.c                    |  32 +
  sysdeps/generic/shm-directory.h               |  31 +
- sysdeps/hurd/pt-destroy-specific.c            |  79 +++
- sysdeps/hurd/pt-getspecific.c                 |  40 ++
- sysdeps/hurd/pt-init-specific.c               |  30 +
+ sysdeps/hurd/pt-destroy-specific.c            |  77 +++
+ sysdeps/hurd/pt-getspecific.c                 |  39 ++
+ sysdeps/hurd/pt-init-specific.c               |  31 +
  sysdeps/hurd/pt-key-create.c                  | 110 ++++
  sysdeps/hurd/pt-key-delete.c                  |  64 ++
  sysdeps/hurd/pt-key.h                         |  77 +++
  sysdeps/hurd/pt-kill.c                        |  52 ++
- sysdeps/hurd/pt-setspecific.c                 |  48 ++
+ sysdeps/hurd/pt-setspecific.c                 |  51 ++
  sysdeps/i386/bits/memory.h                    |  40 ++
  sysdeps/i386/bits/pt-atomic.h                 |  66 ++
  sysdeps/i386/bits/pthreadtypes-arch.h         |  21 +
@@ -235,7 +236,7 @@ Date: Mon Sep 25 21:47:12 2017 +0200
  tests/test-8.c                                |  60 ++
  tests/test-9.c                                |  88 +++
  tests/test-__pthread_destroy_specific-skip.c  |  83 +++
- 232 files changed, 13236 insertions(+)
+ 232 files changed, 13224 insertions(+)
 
 diff --git glibc/libpthread/ChangeLog glibc/libpthread/ChangeLog
 new file mode 100644
@@ -251,10 +252,10 @@ index 0000000..e991eac
 +    $ git show 51839d398b0f9885a17ab5c0768b8dec4dd9eb79:ChangeLog
 diff --git glibc/libpthread/Makeconfig glibc/libpthread/Makeconfig
 new file mode 100644
-index 0000000..a8ef68e
+index 0000000..e90f5f7
 --- /dev/null
 +++ glibc/libpthread/Makeconfig
-@@ -0,0 +1,20 @@
+@@ -0,0 +1,13 @@
 +# Makeconfig fragment for Hurd libpthread add-on.
 +# This gets included at the end of the main glibc Makeconfig.
 +
@@ -265,22 +266,15 @@ index 0000000..a8ef68e
 +static-thread-library = $(common-objpfx)libpthread/libpthread.a
 +bounded-thread-library = $(static-thread-library)
 +
-+ifeq ($(subdir),malloc)
-+LDLIBS-tst-interpose-static-thread += -lihash
-+endif
-+ifeq ($(subdir),elf)
-+LDLIBS-tst-linkall-static += -lihash
-+endif
-+
 +rpath-dirs += libpthread
 +
 ++includes += -I$(..)libpthread/include
 diff --git glibc/libpthread/Makefile glibc/libpthread/Makefile
 new file mode 100644
-index 0000000..9707f57
+index 0000000..3f59924
 --- /dev/null
 +++ glibc/libpthread/Makefile
-@@ -0,0 +1,371 @@
+@@ -0,0 +1,365 @@
 +#
 +#   Copyright (C) 1994, 1995, 1996, 1997, 2000, 2002, 2004, 2005, 2006, 2007,
 +#     2008, 2011 Free Software Foundation, Inc.
@@ -503,12 +497,6 @@ index 0000000..9707f57
 +VPATH += $(SYSDEP_PATH)
 +
 +ifeq ($(IN_GLIBC),no)
-+HURDLIBS = ihash
-+else
-+LDLIBS-pthread.so = -lihash
-+endif
-+
-+ifeq ($(IN_GLIBC),no)
 +installhdrs :=
 +installhdrsubdir := .
 +
@@ -2298,7 +2286,7 @@ index 0000000..afce1f7
 +}
 diff --git glibc/libpthread/libpthread.a glibc/libpthread/libpthread.a
 new file mode 100644
-index 0000000..7d3f8d3
+index 0000000..e5bd2cc
 --- /dev/null
 +++ glibc/libpthread/libpthread.a
 @@ -0,0 +1,22 @@
@@ -2323,10 +2311,10 @@ index 0000000..7d3f8d3
 +EXTERN(pthread_getattr_np)
 +EXTERN(pthread_attr_getstack)
 +
-+GROUP(-lpthread2 -lihash -lrt)
++GROUP(-lpthread2 -lrt)
 diff --git glibc/libpthread/libpthread_pic.a glibc/libpthread/libpthread_pic.a
 new file mode 100644
-index 0000000..cf0bd90
+index 0000000..33346b4
 --- /dev/null
 +++ glibc/libpthread/libpthread_pic.a
 @@ -0,0 +1,22 @@
@@ -2351,7 +2339,7 @@ index 0000000..cf0bd90
 +EXTERN(pthread_getattr_np)
 +EXTERN(pthread_attr_getstack)
 +
-+GROUP(-lpthread2_pic -lihash_pic)
++GROUP(-lpthread2_pic)
 diff --git glibc/libpthread/lockfile.c glibc/libpthread/lockfile.c
 new file mode 100644
 index 0000000..040cbfb
@@ -9550,10 +9538,10 @@ index 0000000..8950284
 +#endif  /* shm-directory.h */
 diff --git glibc/libpthread/sysdeps/hurd/pt-destroy-specific.c 
glibc/libpthread/sysdeps/hurd/pt-destroy-specific.c
 new file mode 100644
-index 0000000..f7896e5
+index 0000000..642c61c
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-destroy-specific.c
-@@ -0,0 +1,79 @@
+@@ -0,0 +1,77 @@
 +/* __pthread_destory_specific.  Hurd version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9575,14 +9563,12 @@ index 0000000..f7896e5
 +
 +#include <pthread.h>
 +#include <stdlib.h>
-+#include <hurd/ihash.h>
 +
 +#include <pt-internal.h>
 +
 +void
 +__pthread_destroy_specific (struct __pthread *thread)
 +{
-+  error_t err;
 +  int i;
 +  int seen_one;
 +
@@ -9599,18 +9585,17 @@ index 0000000..f7896e5
 +
 +      __pthread_mutex_lock (&__pthread_key_lock);
 +
-+      for (i = 0; i < __pthread_key_count; i ++)
++      for (i = 0; i < __pthread_key_count && i < 
thread->thread_specifics_size; i ++)
 +      {
 +        void *value;
 +
 +        if (__pthread_key_destructors[i] == PTHREAD_KEY_INVALID)
 +          continue;
 +
-+        value = hurd_ihash_find (thread->thread_specifics, i);
++        value = thread->thread_specifics[i];
 +        if (value)
 +          {
-+            err = hurd_ihash_remove (thread->thread_specifics, i);
-+            assert (err == 1);
++            thread->thread_specifics[i] = 0;
 +
 +            if (__pthread_key_destructors[i])
 +              {
@@ -9630,15 +9615,16 @@ index 0000000..f7896e5
 +      sched_yield ();
 +    }
 +
-+  hurd_ihash_free (thread->thread_specifics);
++  free (thread->thread_specifics);
 +  thread->thread_specifics = 0;
++  thread->thread_specifics_size = 0;
 +}
 diff --git glibc/libpthread/sysdeps/hurd/pt-getspecific.c 
glibc/libpthread/sysdeps/hurd/pt-getspecific.c
 new file mode 100644
-index 0000000..8a01470
+index 0000000..1f49c03
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-getspecific.c
-@@ -0,0 +1,40 @@
+@@ -0,0 +1,39 @@
 +/* pthread_getspecific.  Hurd version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9659,7 +9645,6 @@ index 0000000..8a01470
 +   Boston, MA 02111-1307, USA.  */
 +
 +#include <pthread.h>
-+#include <hurd/ihash.h>
 +
 +#include <pt-internal.h>
 +
@@ -9673,18 +9658,18 @@ index 0000000..8a01470
 +    return NULL;
 +
 +  self = _pthread_self ();
-+  if (! self->thread_specifics)
++  if (key >= self->thread_specifics_size)
 +    return 0;
 +
-+  return hurd_ihash_find (self->thread_specifics, key);
++  return self->thread_specifics[key];
 +}
 +strong_alias (__pthread_getspecific, pthread_getspecific);
 diff --git glibc/libpthread/sysdeps/hurd/pt-init-specific.c 
glibc/libpthread/sysdeps/hurd/pt-init-specific.c
 new file mode 100644
-index 0000000..c1bacbc
+index 0000000..78958cb
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-init-specific.c
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,31 @@
 +/* __pthread_init_specific.  Hurd version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9713,6 +9698,7 @@ index 0000000..c1bacbc
 +__pthread_init_specific (struct __pthread *thread)
 +{
 +  thread->thread_specifics = 0;
++  thread->thread_specifics_size = 0;
 +  return 0;
 +}
 diff --git glibc/libpthread/sysdeps/hurd/pt-key-create.c 
glibc/libpthread/sysdeps/hurd/pt-key-create.c
@@ -9833,7 +9819,7 @@ index 0000000..f26ec36
 +strong_alias (__pthread_key_create, pthread_key_create)
 diff --git glibc/libpthread/sysdeps/hurd/pt-key-delete.c 
glibc/libpthread/sysdeps/hurd/pt-key-delete.c
 new file mode 100644
-index 0000000..8b2c8bb
+index 0000000..499e9f3
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-key-delete.c
 @@ -0,0 +1,64 @@
@@ -9891,8 +9877,8 @@ index 0000000..8b2c8bb
 +
 +        /* Just remove the key, no need to care whether it was
 +           already there. */
-+        if (t->thread_specifics)
-+          hurd_ihash_remove (t->thread_specifics, key);
++        if (key < t->thread_specifics_size)
++          t->thread_specifics[key] = 0;
 +      }
 +      __pthread_rwlock_unlock (&__pthread_threads_lock);
 +    }
@@ -9903,7 +9889,7 @@ index 0000000..8b2c8bb
 +}
 diff --git glibc/libpthread/sysdeps/hurd/pt-key.h 
glibc/libpthread/sysdeps/hurd/pt-key.h
 new file mode 100644
-index 0000000..7b6a2c2
+index 0000000..46830d7
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-key.h
 @@ -0,0 +1,77 @@
@@ -9927,11 +9913,11 @@ index 0000000..7b6a2c2
 +   Boston, MA 02111-1307, USA.  */
 +
 +#include <pthread.h>
-+#include <hurd/ihash.h>
 +#include <libc-lockP.h>
 +
 +#define PTHREAD_KEY_MEMBERS \
-+  hurd_ihash_t thread_specifics;
++  void **thread_specifics;            /* This is only resized by the thread, 
and always growing */ \
++  unsigned thread_specifics_size;     /* Number of entries in 
thread_specifics */
 +
 +#define PTHREAD_KEY_INVALID (void *) (-1)
 +
@@ -10044,10 +10030,10 @@ index 0000000..6aaf241
 +strong_alias (__pthread_kill, pthread_kill)
 diff --git glibc/libpthread/sysdeps/hurd/pt-setspecific.c 
glibc/libpthread/sysdeps/hurd/pt-setspecific.c
 new file mode 100644
-index 0000000..b3976cc
+index 0000000..871560c
 --- /dev/null
 +++ glibc/libpthread/sysdeps/hurd/pt-setspecific.c
-@@ -0,0 +1,48 @@
+@@ -0,0 +1,51 @@
 +/* pthread_setspecific.  Generic version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -10068,31 +10054,34 @@ index 0000000..b3976cc
 +   Boston, MA 02111-1307, USA.  */
 +
 +#include <pthread.h>
-+#include <hurd/ihash.h>
 +
 +#include <pt-internal.h>
 +
 +int
 +__pthread_setspecific (pthread_key_t key, const void *value)
 +{
-+  error_t err;
 +  struct __pthread *self = _pthread_self ();
 +
 +  if (key < 0 || key >= __pthread_key_count
 +      || __pthread_key_destructors[key] == PTHREAD_KEY_INVALID)
 +    return EINVAL;
 +
-+  if (! self->thread_specifics)
++  if (key >= self->thread_specifics_size)
 +    {
-+      err = hurd_ihash_create (&self->thread_specifics, HURD_IHASH_NO_LOCP);
-+      if (err)
++      /* Amortize reallocation cost.  */
++      int newsize = 2 * key + 1;
++      void **new = realloc (self->thread_specifics,
++                          newsize * sizeof (new[0]));
++      if (! new )
 +      return ENOMEM;
++
++      memset (&new[self->thread_specifics_size], 0,
++            (newsize - self->thread_specifics_size) * sizeof (new[0]));
++      self->thread_specifics = new;
++      self->thread_specifics_size = newsize;
 +    }
 +
-+  err = hurd_ihash_add (self->thread_specifics, key, (void *) value);
-+  if (err)
-+    return ENOMEM;
-+      
++  self->thread_specifics[key] = (void*) value;
 +  return 0;
 +}
 +strong_alias (__pthread_setspecific, pthread_setspecific);
@@ -11825,7 +11814,7 @@ index 0000000..77aa933
 +    }
 +
 +  /* No need to queue more than one wakeup message on this port.  */
-+  mach_port_set_qlimit (__mach_task_self (),
++  __mach_port_set_qlimit (__mach_task_self (),
 +                      thread->wakeupmsg.msgh_remote_port, 1);
 +
 +  return 0;

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

Reply via email to