aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-02-10 11:47:13 +0100
committerFlorian Weimer <fweimer@redhat.com>2020-02-20 08:57:01 +0100
commitad96df2cd9194b84686c272257e96ea74caff72a (patch)
tree79e60424dc5ad85debebe8919398006a6ca194b8 /nptl
parentdc6cfdc934db9997c33728082d63552b9eee4563 (diff)
downloadglibc-ad96df2cd9194b84686c272257e96ea74caff72a.zip
glibc-ad96df2cd9194b84686c272257e96ea74caff72a.tar.gz
glibc-ad96df2cd9194b84686c272257e96ea74caff72a.tar.bz2
nptl: Move pthread_cond_init implementation into libc
It is necessary to export __pthread_cond_init from libc because the C11 condition variable needs it and is still left in libpthread. This is part of the libpthread removal project: <https://sourceware.org/ml/libc-alpha/2019-10/msg00080.html> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Makefile4
-rw-r--r--nptl/Versions3
-rw-r--r--nptl/forward.c11
-rw-r--r--nptl/nptl-init.c2
-rw-r--r--nptl/old_pthread_cond_init.c4
-rw-r--r--nptl/pthreadP.h1
-rw-r--r--nptl/pthread_cond_init.c3
7 files changed, 8 insertions, 20 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index e6d127e..069db9a 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -37,6 +37,7 @@ routines = \
libc_multiple_threads \
libc_pthread_init \
old_pthread_cond_destroy \
+ old_pthread_cond_init \
pthread_atfork \
pthread_attr_destroy \
pthread_attr_getdetachstate \
@@ -51,6 +52,7 @@ routines = \
pthread_attr_setschedpolicy \
pthread_attr_setscope \
pthread_cond_destroy \
+ pthread_cond_init \
pthread_condattr_destroy \
pthread_condattr_init \
pthread_equal \
@@ -104,10 +106,8 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_rwlockattr_setpshared \
pthread_rwlockattr_getkind_np \
pthread_rwlockattr_setkind_np \
- pthread_cond_init \
pthread_cond_wait \
pthread_cond_signal pthread_cond_broadcast \
- old_pthread_cond_init \
old_pthread_cond_wait old_pthread_cond_timedwait \
old_pthread_cond_signal old_pthread_cond_broadcast \
pthread_condattr_getpshared pthread_condattr_setpshared \
diff --git a/nptl/Versions b/nptl/Versions
index 4dbe68d..914404c 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -40,7 +40,7 @@ libc {
__libc_current_sigrtmin_private; __libc_current_sigrtmax_private;
__libc_allocate_rtsig_private;
# Used by the C11 threads implementation.
- __pthread_cond_destroy;
+ __pthread_cond_destroy; __pthread_cond_init;
}
}
@@ -56,7 +56,6 @@ libpthread {
pthread_mutexattr_init; pthread_mutexattr_destroy;
- pthread_cond_init;
pthread_cond_wait; pthread_cond_timedwait;
pthread_cond_signal; pthread_cond_broadcast;
diff --git a/nptl/forward.c b/nptl/forward.c
index 3e17348..6ee4b92 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -67,17 +67,6 @@ versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast,
GLIBC_2_3_2);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_init_2_0, int attribute_compat_text_section,
- (pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr),
- (cond, cond_attr), return 0)
-compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_init,
- (pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
- (cond, cond_attr), 0)
-versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
FORWARD2 (__pthread_cond_signal_2_0, int attribute_compat_text_section,
(pthread_cond_2_0_t *cond), (cond), return 0)
compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 068eb3d..855225e 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -73,13 +73,11 @@ void __nptl_set_robust (struct pthread *);
static const struct pthread_functions pthread_functions =
{
.ptr___pthread_cond_broadcast = __pthread_cond_broadcast,
- .ptr___pthread_cond_init = __pthread_cond_init,
.ptr___pthread_cond_signal = __pthread_cond_signal,
.ptr___pthread_cond_wait = __pthread_cond_wait,
.ptr___pthread_cond_timedwait = __pthread_cond_timedwait,
# if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
.ptr___pthread_cond_broadcast_2_0 = __pthread_cond_broadcast_2_0,
- .ptr___pthread_cond_init_2_0 = __pthread_cond_init_2_0,
.ptr___pthread_cond_signal_2_0 = __pthread_cond_signal_2_0,
.ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
.ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
diff --git a/nptl/old_pthread_cond_init.c b/nptl/old_pthread_cond_init.c
index df0f1fd..d71aa80 100644
--- a/nptl/old_pthread_cond_init.c
+++ b/nptl/old_pthread_cond_init.c
@@ -21,7 +21,7 @@
#include <shlib-compat.h>
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
int
__pthread_cond_init_2_0 (pthread_cond_2_0_t *cond,
const pthread_condattr_t *cond_attr)
@@ -40,6 +40,6 @@ __pthread_cond_init_2_0 (pthread_cond_2_0_t *cond,
return 0;
}
-compat_symbol (libpthread, __pthread_cond_init_2_0, pthread_cond_init,
+compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init,
GLIBC_2_0);
#endif
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index fd31fbc..06fb0d7 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -447,6 +447,7 @@ extern int __pthread_cond_destroy (pthread_cond_t *cond);
libc_hidden_proto (__pthread_cond_destroy)
extern int __pthread_cond_init (pthread_cond_t *cond,
const pthread_condattr_t *cond_attr);
+libc_hidden_proto (__pthread_cond_init)
extern int __pthread_cond_signal (pthread_cond_t *cond);
extern int __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex);
extern int __pthread_cond_timedwait (pthread_cond_t *cond,
diff --git a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
index 1dce2ed..595b1b3 100644
--- a/nptl/pthread_cond_init.c
+++ b/nptl/pthread_cond_init.c
@@ -49,5 +49,6 @@ __pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr)
return 0;
}
-versioned_symbol (libpthread, __pthread_cond_init,
+libc_hidden_def (__pthread_cond_init)
+versioned_symbol (libc, __pthread_cond_init,
pthread_cond_init, GLIBC_2_3_2);