about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-03 02:56:35 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-03 02:56:35 +0200
commitfe9748cca3fb247cea420a70b28e601abcb196aa (patch)
treec174b00a4fbbb9be2bc0c6e4c235ee7c6278a1a5
parent82dbf555a4d41690f63b94ccb4db4bf43d873aa0 (diff)
downloadglibc-fe9748cca3fb247cea420a70b28e601abcb196aa.tar.gz
glibc-fe9748cca3fb247cea420a70b28e601abcb196aa.tar.xz
glibc-fe9748cca3fb247cea420a70b28e601abcb196aa.zip
hurd: Avoid local PLT in libpthread
	* htl/pt-exit.c: Include <pthreadP.h>.
	(__pthread_exit): Call ___pthread_get_cleanup_stack instead of
	__pthread_get_cleanup_stack.
-rw-r--r--ChangeLog6
-rw-r--r--htl/pt-exit.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0b54ed73b5..8f4aa359ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -249,8 +249,10 @@
 	(pthread_detach): New strong alias.
 	(__pthread_detach): Call __pthread_cond_broadcast instead of
 	pthread_cond_broadcast.
-	* htl/pt-exit.c (__pthread_exit): Call __pthread_setcancelstate
-	instead of pthread_setcancelstate.
+	* htl/pt-exit.c: Include <pthreadP.h>.
+	(__pthread_exit): Call __pthread_setcancelstate and
+	___pthread_get_cleanup_stack instead of pthread_setcancelstate and
+	__pthread_get_cleanup_stack.
 	* htl/pt-testcancel.c: Include <pthreadP.h>.
 	(pthread_testcancel): Call __pthread_exit instead of pthread_exit.
 	* sysdeps/htl/pt-attr-getstack.c: Include <pthreadP.h>
diff --git a/htl/pt-exit.c b/htl/pt-exit.c
index 0815dbcd98..cb62f474fa 100644
--- a/htl/pt-exit.c
+++ b/htl/pt-exit.c
@@ -22,6 +22,7 @@
 #include <stdlib.h>
 
 #include <pt-internal.h>
+#include <pthreadP.h>
 
 #include <atomic.h>
 
@@ -40,7 +41,7 @@ __pthread_exit (void *status)
      disabled.  */
   __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &oldstate);
 
-  for (handlers = __pthread_get_cleanup_stack ();
+  for (handlers = ___pthread_get_cleanup_stack ();
        *handlers != NULL;
        *handlers = (*handlers)->__next)
     (*handlers)->__handler ((*handlers)->__arg);