about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Makefile4
-rw-r--r--nptl/compat-pthread_self.c27
-rw-r--r--nptl/forward.c4
-rw-r--r--nptl/nptl-init.c1
-rw-r--r--nptl/pthread_self.c4
5 files changed, 30 insertions, 10 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 60d036a1ea..ab8cc98728 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -31,7 +31,7 @@ install-lib-ldscripts := libpthread.so
 
 routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
 	   libc-cleanup libc_pthread_init libc_multiple_threads \
-	   register-atfork unregister-atfork
+	   register-atfork unregister-atfork pthread_self
 shared-only-routines = forward
 
 # We need to provide certain routines for compatibility with existing
@@ -49,7 +49,7 @@ pthread-compat-wrappers = \
 libpthread-routines = nptl-init vars events version pt-interp \
 		      pthread_create pthread_exit pthread_detach \
 		      pthread_join pthread_tryjoin pthread_timedjoin \
-		      pthread_self pthread_equal pthread_yield \
+		      compat-pthread_self pthread_equal pthread_yield \
 		      pthread_getconcurrency pthread_setconcurrency \
 		      pthread_getschedparam pthread_setschedparam \
 		      pthread_setschedprio \
diff --git a/nptl/compat-pthread_self.c b/nptl/compat-pthread_self.c
new file mode 100644
index 0000000000..5e9f4eb27d
--- /dev/null
+++ b/nptl/compat-pthread_self.c
@@ -0,0 +1,27 @@
+/* Compatibility version of pthread_self in libpthread.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* Compatibility version of pthread_self for old binaries which link
+   directly against libpthread's version.  */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_27)
+# include "pthread_self.c"
+compat_symbol (libpthread, pthread_self, pthread_self, GLIBC_2_0);
+#endif
diff --git a/nptl/forward.c b/nptl/forward.c
index ac96765f29..8abbccdf5e 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -193,10 +193,6 @@ FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
 
 FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
 
-
-FORWARD2 (pthread_self, pthread_t, (void), (), return 0)
-
-
 FORWARD (__pthread_setcancelstate, (int state, int *oldstate),
 	 (state, oldstate), 0)
 strong_alias (__pthread_setcancelstate, pthread_setcancelstate)
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 869e926f17..a5979f27fd 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -122,7 +122,6 @@ static const struct pthread_functions pthread_functions =
     .ptr_pthread_mutex_init = __pthread_mutex_init,
     .ptr_pthread_mutex_lock = __pthread_mutex_lock,
     .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
-    .ptr_pthread_self = __pthread_self,
     .ptr___pthread_setcancelstate = __pthread_setcancelstate,
     .ptr_pthread_setcanceltype = __pthread_setcanceltype,
     .ptr___pthread_cleanup_upto = __pthread_cleanup_upto,
diff --git a/nptl/pthread_self.c b/nptl/pthread_self.c
index 8e21775e31..b75af9358e 100644
--- a/nptl/pthread_self.c
+++ b/nptl/pthread_self.c
@@ -19,10 +19,8 @@
 #include "pthreadP.h"
 #include <tls.h>
 
-
 pthread_t
-__pthread_self (void)
+pthread_self (void)
 {
   return (pthread_t) THREAD_SELF;
 }
-weak_alias (__pthread_self, pthread_self)