diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-02-10 11:47:13 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-02-20 08:57:01 +0100 |
commit | ad96df2cd9194b84686c272257e96ea74caff72a (patch) | |
tree | 79e60424dc5ad85debebe8919398006a6ca194b8 /nptl | |
parent | dc6cfdc934db9997c33728082d63552b9eee4563 (diff) | |
download | glibc-ad96df2cd9194b84686c272257e96ea74caff72a.tar glibc-ad96df2cd9194b84686c272257e96ea74caff72a.tar.gz glibc-ad96df2cd9194b84686c272257e96ea74caff72a.tar.bz2 glibc-ad96df2cd9194b84686c272257e96ea74caff72a.zip |
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/Makefile | 4 | ||||
-rw-r--r-- | nptl/Versions | 3 | ||||
-rw-r--r-- | nptl/forward.c | 11 | ||||
-rw-r--r-- | nptl/nptl-init.c | 2 | ||||
-rw-r--r-- | nptl/old_pthread_cond_init.c | 4 | ||||
-rw-r--r-- | nptl/pthreadP.h | 1 | ||||
-rw-r--r-- | nptl/pthread_cond_init.c | 3 |
7 files changed, 8 insertions, 20 deletions
diff --git a/nptl/Makefile b/nptl/Makefile index e6d127ea4f..069db9a195 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 4dbe68d76c..914404c45e 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 3e1734854e..6ee4b92d52 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 068eb3dfb6..855225e01a 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 df0f1fd7e8..d71aa802b8 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 fd31fbc87f..06fb0d74c5 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 1dce2ed46e..595b1b3528 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); |