From ad96df2cd9194b84686c272257e96ea74caff72a Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 10 Feb 2020 11:47:13 +0100 Subject: 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: Reviewed-by: Adhemerval Zanella --- nptl/Makefile | 4 ++-- nptl/Versions | 3 +-- nptl/forward.c | 11 ----------- nptl/nptl-init.c | 2 -- nptl/old_pthread_cond_init.c | 4 ++-- nptl/pthreadP.h | 1 + nptl/pthread_cond_init.c | 3 ++- 7 files changed, 8 insertions(+), 20 deletions(-) (limited to 'nptl') 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 @@ -66,17 +66,6 @@ FORWARD (__pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0) 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) 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 -#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); -- cgit 1.4.1