diff --git a/htl/Makefile b/htl/Makefile index ee377463a1..9f14f15c41 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -26,8 +26,6 @@ LCLHDRS := libpthread-routines := \ pt-spin-inlines \ - pt-hurd-cond-wait \ - pt-hurd-cond-timedwait \ pt-spin \ # libpthread-routine @@ -123,6 +121,8 @@ routines := \ pt-getname-np \ pt-getschedparam \ pt-getspecific \ + pt-hurd-cond-timedwait \ + pt-hurd-cond-wait \ pt-init-specific \ pt-join \ pt-key-create \ diff --git a/htl/Versions b/htl/Versions index ed29636917..0eff9fd7be 100644 --- a/htl/Versions +++ b/htl/Versions @@ -127,7 +127,10 @@ libc { pthread_cond_init; pthread_cond_signal; pthread_cond_wait; pthread_cond_timedwait; pthread_equal; - pthread_exit; pthread_getschedparam; pthread_setschedparam; + pthread_exit; + pthread_hurd_cond_wait_np; + pthread_hurd_cond_timedwait_np; + pthread_getschedparam; pthread_setschedparam; pthread_mutex_destroy; pthread_mutex_init; pthread_mutex_lock; pthread_mutex_unlock; pthread_self; pthread_setcancelstate; pthread_setcanceltype; @@ -231,6 +234,8 @@ libc { pthread_getconcurrency; pthread_getcpuclockid; pthread_getname_np; + pthread_hurd_cond_wait_np; + pthread_hurd_cond_timedwait_np; pthread_join; pthread_kill; pthread_mutex_transfer_np; @@ -338,8 +343,7 @@ libpthread { _pthread_spin_lock; } GLIBC_2.21 { - pthread_hurd_cond_wait_np; - pthread_hurd_cond_timedwait_np; + __libpthread_version_placeholder; } GLIBC_2.32 { diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c index a6c5597dfd..4903b8f8bd 100644 --- a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c +++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c @@ -22,6 +22,7 @@ #include #include +#include extern int __pthread_hurd_cond_timedwait_internal (pthread_cond_t *cond, pthread_mutex_t *mutex, @@ -36,7 +37,11 @@ __pthread_hurd_cond_timedwait_np (pthread_cond_t *cond, return __pthread_hurd_cond_timedwait_internal (cond, mutex, abstime); } -strong_alias (__pthread_hurd_cond_timedwait_np, pthread_hurd_cond_timedwait_np); +versioned_symbol (libc, __pthread_hurd_cond_timedwait_np, pthread_hurd_cond_timedwait_np, GLIBC_2_43); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_43) +compat_symbol (libpthread, __pthread_hurd_cond_timedwait_np, pthread_hurd_cond_timedwait_np, GLIBC_2_21); +#endif int __pthread_hurd_cond_timedwait_internal (pthread_cond_t *cond, diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c index d6f541a1fe..fcfa7978d9 100644 --- a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c +++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c @@ -21,6 +21,7 @@ #include #include +#include /* Implemented in pt-hurd-cond-timedwait.c. */ extern int __pthread_hurd_cond_timedwait_internal (pthread_cond_t *cond, @@ -37,4 +38,8 @@ __pthread_hurd_cond_wait_np (pthread_cond_t *cond, pthread_mutex_t *mutex) return err == EINTR; } -strong_alias (__pthread_hurd_cond_wait_np, pthread_hurd_cond_wait_np); +versioned_symbol (libc, __pthread_hurd_cond_wait_np, pthread_hurd_cond_wait_np, GLIBC_2_43); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_43) +compat_symbol (libpthread, __pthread_hurd_cond_wait_np, pthread_hurd_cond_wait_np, GLIBC_2_21); +#endif diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index a01535746f..6099178c9e 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2110,6 +2110,8 @@ GLIBC_2.21 pthread_condattr_init F GLIBC_2.21 pthread_equal F GLIBC_2.21 pthread_exit F GLIBC_2.21 pthread_getschedparam F +GLIBC_2.21 pthread_hurd_cond_timedwait_np F +GLIBC_2.21 pthread_hurd_cond_wait_np F GLIBC_2.21 pthread_mutex_destroy F GLIBC_2.21 pthread_mutex_init F GLIBC_2.21 pthread_mutex_lock F @@ -2679,6 +2681,8 @@ GLIBC_2.43 pthread_getattr_np F GLIBC_2.43 pthread_getconcurrency F GLIBC_2.43 pthread_getcpuclockid F GLIBC_2.43 pthread_getname_np F +GLIBC_2.43 pthread_hurd_cond_timedwait_np F +GLIBC_2.43 pthread_hurd_cond_wait_np F GLIBC_2.43 pthread_join F GLIBC_2.43 pthread_kill F GLIBC_2.43 pthread_mutex_transfer_np F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index 318aa1a690..24e6bd2c4a 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -10,8 +10,6 @@ GLIBC_2.12 pthread_spin_init F GLIBC_2.12 pthread_spin_lock F GLIBC_2.12 pthread_spin_trylock F GLIBC_2.12 pthread_spin_unlock F -GLIBC_2.21 pthread_hurd_cond_timedwait_np F -GLIBC_2.21 pthread_hurd_cond_wait_np F GLIBC_2.32 call_once F GLIBC_2.32 cnd_broadcast F GLIBC_2.32 cnd_destroy F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 38261ba339..1aab058a9f 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -1565,6 +1565,8 @@ GLIBC_2.38 pthread_getconcurrency F GLIBC_2.38 pthread_getcpuclockid F GLIBC_2.38 pthread_getschedparam F GLIBC_2.38 pthread_getspecific F +GLIBC_2.38 pthread_hurd_cond_timedwait_np F +GLIBC_2.38 pthread_hurd_cond_wait_np F GLIBC_2.38 pthread_join F GLIBC_2.38 pthread_key_create F GLIBC_2.38 pthread_key_delete F @@ -2357,6 +2359,8 @@ GLIBC_2.43 pthread_getattr_np F GLIBC_2.43 pthread_getconcurrency F GLIBC_2.43 pthread_getcpuclockid F GLIBC_2.43 pthread_getname_np F +GLIBC_2.43 pthread_hurd_cond_timedwait_np F +GLIBC_2.43 pthread_hurd_cond_wait_np F GLIBC_2.43 pthread_join F GLIBC_2.43 pthread_kill F GLIBC_2.43 pthread_mutex_transfer_np F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index c9ad949d65..57d796482b 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -17,8 +17,6 @@ GLIBC_2.38 mtx_lock F GLIBC_2.38 mtx_timedlock F GLIBC_2.38 mtx_trylock F GLIBC_2.38 mtx_unlock F -GLIBC_2.38 pthread_hurd_cond_timedwait_np F -GLIBC_2.38 pthread_hurd_cond_wait_np F GLIBC_2.38 pthread_spin_destroy F GLIBC_2.38 pthread_spin_init F GLIBC_2.38 pthread_spin_lock F