diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/Makefile | 2 | ||||
-rw-r--r-- | nptl/Versions | 3 | ||||
-rw-r--r-- | nptl/sem_timedwait.c | 18 | ||||
-rw-r--r-- | nptl/semaphoreP.h | 2 |
4 files changed, 17 insertions, 8 deletions
diff --git a/nptl/Makefile b/nptl/Makefile index 36c0f270b9..9f73cf2434 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -158,6 +158,7 @@ routines = \ sem_open \ sem_post \ sem_routines \ + sem_timedwait \ tpp \ unwind \ @@ -209,7 +210,6 @@ libpthread-routines = \ pthread_sigqueue \ pthread_timedjoin \ pthread_tryjoin \ - sem_timedwait \ sem_unlink \ sem_wait \ vars \ diff --git a/nptl/Versions b/nptl/Versions index df3967516f..f19c2355f1 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -114,6 +114,7 @@ libc { pthread_spin_trylock; pthread_spin_unlock; pthread_yield; + sem_timedwait; } GLIBC_2.2.3 { pthread_getattr_np; @@ -267,6 +268,7 @@ libc { sem_init; sem_open; sem_post; + sem_timedwait; thrd_exit; tss_create; tss_delete; @@ -371,7 +373,6 @@ libpthread { pthread_yield; pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock; - sem_timedwait; } GLIBC_2.2.3 { diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c index 770020e26c..584546c706 100644 --- a/nptl/sem_timedwait.c +++ b/nptl/sem_timedwait.c @@ -24,7 +24,7 @@ /* This is in a separate file because because sem_timedwait is only provided if __USE_XOPEN2K is defined. */ int -__sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime) +___sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime) { if (! valid_nanoseconds (abstime->tv_nsec)) { @@ -42,15 +42,23 @@ __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime) CLOCK_REALTIME, abstime); } -#if __TIMESIZE != 64 -libpthread_hidden_def (__sem_timedwait64) +#if __TIMESIZE == 64 +strong_alias (___sem_timedwait64, ___sem_timedwait) +#else /* __TIMESPEC64 != 64 */ +libc_hidden_ver (___sem_timedwait64, __sem_timedwait64) +#ifndef SHARED +strong_alias (___sem_timedwait64, __sem_timedwait64) +#endif int -__sem_timedwait (sem_t *sem, const struct timespec *abstime) +___sem_timedwait (sem_t *sem, const struct timespec *abstime) { struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime); return __sem_timedwait64 (sem, &ts64); } +#endif /* __TIMESPEC64 != 64 */ +versioned_symbol (libc, ___sem_timedwait, sem_timedwait, GLIBC_2_34); +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34) +compat_symbol (libpthread, ___sem_timedwait, sem_timedwait, GLIBC_2_2); #endif -weak_alias (__sem_timedwait, sem_timedwait) diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h index f030f0e4de..43ad849761 100644 --- a/nptl/semaphoreP.h +++ b/nptl/semaphoreP.h @@ -57,5 +57,5 @@ __sem_clockwait64 (sem_t *sem, clockid_t clockid, libc_hidden_proto (__sem_clockwait64) extern int __sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime); -libpthread_hidden_proto (__sem_timedwait64) +libc_hidden_proto (__sem_timedwait64) #endif |