[12/15] linux: mips: Split libpthread.abilist in n32 and n64

Message ID 20210323134458.2563022-13-adhemerval.zanella@linaro.org
State Superseded
Headers
Series Add some tests and infra changes |

Commit Message

Adhemerval Zanella Netto March 23, 2021, 1:44 p.m. UTC
  The n32 will require the 64 bit time symbols for y2038 support.
---
 .../mips/mips64/{ => n32}/libpthread.abilist  |   0
 .../linux/mips/mips64/n64/libpthread.abilist  | 214 ++++++++++++++++++
 2 files changed, 214 insertions(+)
 rename sysdeps/unix/sysv/linux/mips/mips64/{ => n32}/libpthread.abilist (100%)
 create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
  

Comments

Siddhesh Poyarekar April 15, 2021, 7:01 a.m. UTC | #1
On 3/23/21 7:14 PM, Adhemerval Zanella via Libc-alpha wrote:
> The n32 will require the 64 bit time symbols for y2038 support.
> ---

A few symbols are missing in n32 and are there in n64.  Is that 
intentional?  I'd like to defer review for 12-15 to someone who can test 
this out.

Siddhesh

>   .../mips/mips64/{ => n32}/libpthread.abilist  |   0
>   .../linux/mips/mips64/n64/libpthread.abilist  | 214 ++++++++++++++++++
>   2 files changed, 214 insertions(+)
>   rename sysdeps/unix/sysv/linux/mips/mips64/{ => n32}/libpthread.abilist (100%)
>   create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
> 
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
> similarity index 100%
> rename from sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> rename to sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
> new file mode 100644
> index 0000000000..9c35d0da80
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
> @@ -0,0 +1,214 @@
> +GLIBC_2.0 _IO_flockfile F
> +GLIBC_2.0 _IO_ftrylockfile F
> +GLIBC_2.0 _IO_funlockfile F
> +GLIBC_2.0 __errno_location F
> +GLIBC_2.0 __h_errno_location F
> +GLIBC_2.0 __lseek F
> +GLIBC_2.0 __open F
> +GLIBC_2.0 __pthread_getspecific F
> +GLIBC_2.0 __pthread_key_create F
> +GLIBC_2.0 __pthread_mutex_destroy F
> +GLIBC_2.0 __pthread_mutex_init F
> +GLIBC_2.0 __pthread_mutex_lock F
> +GLIBC_2.0 __pthread_mutex_trylock F
> +GLIBC_2.0 __pthread_mutex_unlock F
> +GLIBC_2.0 __pthread_mutexattr_destroy F
> +GLIBC_2.0 __pthread_mutexattr_init F
> +GLIBC_2.0 __pthread_mutexattr_settype F
> +GLIBC_2.0 __pthread_once F
> +GLIBC_2.0 __pthread_setspecific F
> +GLIBC_2.0 __send F
> +GLIBC_2.0 __sigaction F
> +GLIBC_2.0 _pthread_cleanup_pop F
> +GLIBC_2.0 _pthread_cleanup_pop_restore F
> +GLIBC_2.0 _pthread_cleanup_push F
> +GLIBC_2.0 _pthread_cleanup_push_defer F
> +GLIBC_2.0 flockfile F
> +GLIBC_2.0 ftrylockfile F
> +GLIBC_2.0 funlockfile F
> +GLIBC_2.0 longjmp F
> +GLIBC_2.0 lseek F
> +GLIBC_2.0 open F
> +GLIBC_2.0 pthread_atfork F
> +GLIBC_2.0 pthread_cancel F
> +GLIBC_2.0 pthread_cond_broadcast F
> +GLIBC_2.0 pthread_cond_signal F
> +GLIBC_2.0 pthread_cond_timedwait F
> +GLIBC_2.0 pthread_cond_wait F
> +GLIBC_2.0 pthread_create F
> +GLIBC_2.0 pthread_detach F
> +GLIBC_2.0 pthread_exit F
> +GLIBC_2.0 pthread_getspecific F
> +GLIBC_2.0 pthread_join F
> +GLIBC_2.0 pthread_key_create F
> +GLIBC_2.0 pthread_key_delete F
> +GLIBC_2.0 pthread_kill F
> +GLIBC_2.0 pthread_kill_other_threads_np F
> +GLIBC_2.0 pthread_mutex_destroy F
> +GLIBC_2.0 pthread_mutex_init F
> +GLIBC_2.0 pthread_mutex_lock F
> +GLIBC_2.0 pthread_mutex_trylock F
> +GLIBC_2.0 pthread_mutex_unlock F
> +GLIBC_2.0 pthread_mutexattr_destroy F
> +GLIBC_2.0 pthread_mutexattr_getkind_np F
> +GLIBC_2.0 pthread_mutexattr_init F
> +GLIBC_2.0 pthread_mutexattr_setkind_np F
> +GLIBC_2.0 pthread_once F
> +GLIBC_2.0 pthread_setcancelstate F
> +GLIBC_2.0 pthread_setcanceltype F
> +GLIBC_2.0 pthread_setspecific F
> +GLIBC_2.0 pthread_testcancel F
> +GLIBC_2.0 raise F
> +GLIBC_2.0 sem_destroy F
> +GLIBC_2.0 sem_getvalue F
> +GLIBC_2.0 sem_init F
> +GLIBC_2.0 sem_post F
> +GLIBC_2.0 sem_trywait F
> +GLIBC_2.0 sem_wait F
> +GLIBC_2.0 send F
> +GLIBC_2.0 sigaction F
> +GLIBC_2.0 siglongjmp F
> +GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.12 pthread_getname_np F
> +GLIBC_2.12 pthread_mutex_consistent F
> +GLIBC_2.12 pthread_mutexattr_getrobust F
> +GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 pthread_setattr_default_np F
> +GLIBC_2.2 __libc_allocate_rtsig F
> +GLIBC_2.2 __libc_current_sigrtmax F
> +GLIBC_2.2 __libc_current_sigrtmin F
> +GLIBC_2.2 __open64 F
> +GLIBC_2.2 __pread64 F
> +GLIBC_2.2 __pthread_rwlock_destroy F
> +GLIBC_2.2 __pthread_rwlock_init F
> +GLIBC_2.2 __pthread_rwlock_rdlock F
> +GLIBC_2.2 __pthread_rwlock_tryrdlock F
> +GLIBC_2.2 __pthread_rwlock_trywrlock F
> +GLIBC_2.2 __pthread_rwlock_unlock F
> +GLIBC_2.2 __pthread_rwlock_wrlock F
> +GLIBC_2.2 __pwrite64 F
> +GLIBC_2.2 __res_state F
> +GLIBC_2.2 lseek64 F
> +GLIBC_2.2 open64 F
> +GLIBC_2.2 pread F
> +GLIBC_2.2 pread64 F
> +GLIBC_2.2 pthread_attr_getguardsize F
> +GLIBC_2.2 pthread_attr_getstack F
> +GLIBC_2.2 pthread_attr_getstackaddr F
> +GLIBC_2.2 pthread_attr_getstacksize F
> +GLIBC_2.2 pthread_attr_setguardsize F
> +GLIBC_2.2 pthread_attr_setstack F
> +GLIBC_2.2 pthread_attr_setstackaddr F
> +GLIBC_2.2 pthread_attr_setstacksize F
> +GLIBC_2.2 pthread_barrier_destroy F
> +GLIBC_2.2 pthread_barrier_init F
> +GLIBC_2.2 pthread_barrier_wait F
> +GLIBC_2.2 pthread_barrierattr_destroy F
> +GLIBC_2.2 pthread_barrierattr_init F
> +GLIBC_2.2 pthread_barrierattr_setpshared F
> +GLIBC_2.2 pthread_condattr_getpshared F
> +GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_create F
> +GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 pthread_mutex_timedlock F
> +GLIBC_2.2 pthread_mutexattr_getpshared F
> +GLIBC_2.2 pthread_mutexattr_gettype F
> +GLIBC_2.2 pthread_mutexattr_setpshared F
> +GLIBC_2.2 pthread_mutexattr_settype F
> +GLIBC_2.2 pthread_rwlock_destroy F
> +GLIBC_2.2 pthread_rwlock_init F
> +GLIBC_2.2 pthread_rwlock_rdlock F
> +GLIBC_2.2 pthread_rwlock_timedrdlock F
> +GLIBC_2.2 pthread_rwlock_timedwrlock F
> +GLIBC_2.2 pthread_rwlock_tryrdlock F
> +GLIBC_2.2 pthread_rwlock_trywrlock F
> +GLIBC_2.2 pthread_rwlock_unlock F
> +GLIBC_2.2 pthread_rwlock_wrlock F
> +GLIBC_2.2 pthread_rwlockattr_destroy F
> +GLIBC_2.2 pthread_rwlockattr_getkind_np F
> +GLIBC_2.2 pthread_rwlockattr_getpshared F
> +GLIBC_2.2 pthread_rwlockattr_init F
> +GLIBC_2.2 pthread_rwlockattr_setkind_np F
> +GLIBC_2.2 pthread_rwlockattr_setpshared F
> +GLIBC_2.2 pthread_setconcurrency F
> +GLIBC_2.2 pthread_spin_destroy F
> +GLIBC_2.2 pthread_spin_init F
> +GLIBC_2.2 pthread_spin_lock F
> +GLIBC_2.2 pthread_spin_trylock F
> +GLIBC_2.2 pthread_spin_unlock F
> +GLIBC_2.2 pthread_yield F
> +GLIBC_2.2 pwrite F
> +GLIBC_2.2 pwrite64 F
> +GLIBC_2.2 sem_close F
> +GLIBC_2.2 sem_destroy F
> +GLIBC_2.2 sem_getvalue F
> +GLIBC_2.2 sem_init F
> +GLIBC_2.2 sem_open F
> +GLIBC_2.2 sem_post F
> +GLIBC_2.2 sem_timedwait F
> +GLIBC_2.2 sem_trywait F
> +GLIBC_2.2 sem_unlink F
> +GLIBC_2.2 sem_wait F
> +GLIBC_2.2.3 __libpthread_version_placeholder F
> +GLIBC_2.2.6 __libpthread_version_placeholder F
> +GLIBC_2.28 call_once F
> +GLIBC_2.28 cnd_broadcast F
> +GLIBC_2.28 cnd_destroy F
> +GLIBC_2.28 cnd_init F
> +GLIBC_2.28 cnd_signal F
> +GLIBC_2.28 cnd_timedwait F
> +GLIBC_2.28 cnd_wait F
> +GLIBC_2.28 mtx_destroy F
> +GLIBC_2.28 mtx_init F
> +GLIBC_2.28 mtx_lock F
> +GLIBC_2.28 mtx_timedlock F
> +GLIBC_2.28 mtx_trylock F
> +GLIBC_2.28 mtx_unlock F
> +GLIBC_2.28 thrd_create F
> +GLIBC_2.28 thrd_detach F
> +GLIBC_2.28 thrd_exit F
> +GLIBC_2.28 thrd_join F
> +GLIBC_2.28 tss_create F
> +GLIBC_2.28 tss_delete F
> +GLIBC_2.28 tss_get F
> +GLIBC_2.28 tss_set F
> +GLIBC_2.3.2 pthread_cond_broadcast F
> +GLIBC_2.3.2 pthread_cond_signal F
> +GLIBC_2.3.2 pthread_cond_timedwait F
> +GLIBC_2.3.2 pthread_cond_wait F
> +GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_register_cancel F
> +GLIBC_2.3.3 __pthread_register_cancel_defer F
> +GLIBC_2.3.3 __pthread_unregister_cancel F
> +GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> +GLIBC_2.3.3 __pthread_unwind_next F
> +GLIBC_2.3.3 pthread_attr_getaffinity_np F
> +GLIBC_2.3.3 pthread_attr_setstack F
> +GLIBC_2.3.3 pthread_attr_setstacksize F
> +GLIBC_2.3.3 pthread_barrierattr_getpshared F
> +GLIBC_2.3.3 pthread_condattr_getclock F
> +GLIBC_2.3.3 pthread_condattr_setclock F
> +GLIBC_2.3.3 pthread_setaffinity_np F
> +GLIBC_2.3.3 pthread_timedjoin_np F
> +GLIBC_2.3.3 pthread_tryjoin_np F
> +GLIBC_2.3.4 pthread_attr_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.30 pthread_cond_clockwait F
> +GLIBC_2.30 pthread_mutex_clocklock F
> +GLIBC_2.30 pthread_rwlock_clockrdlock F
> +GLIBC_2.30 pthread_rwlock_clockwrlock F
> +GLIBC_2.30 sem_clockwait F
> +GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.4 pthread_mutex_consistent_np F
> +GLIBC_2.4 pthread_mutex_getprioceiling F
> +GLIBC_2.4 pthread_mutex_setprioceiling F
> +GLIBC_2.4 pthread_mutexattr_getprioceiling F
> +GLIBC_2.4 pthread_mutexattr_getprotocol F
> +GLIBC_2.4 pthread_mutexattr_getrobust_np F
> +GLIBC_2.4 pthread_mutexattr_setprioceiling F
> +GLIBC_2.4 pthread_mutexattr_setprotocol F
> +GLIBC_2.4 pthread_mutexattr_setrobust_np F
>
  
Adhemerval Zanella Netto April 15, 2021, noon UTC | #2
On 15/04/2021 04:01, Siddhesh Poyarekar wrote:
> On 3/23/21 7:14 PM, Adhemerval Zanella via Libc-alpha wrote:
>> The n32 will require the 64 bit time symbols for y2038 support.
>> ---
> 
> A few symbols are missing in n32 and are there in n64.  Is that intentional?  I'd like to defer review for 12-15 to someone who can test this out.

The symbol difference is because I pushed some patched for the libpthread 
removal project that removed some libpthread.abilist entries.  But this
patch is quite mechanical and it easily verified with a check-abi, so
the rebase should be simple:

$ cp sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
$ cp sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist

And run a check-abi for mips64-linux-gnu and mips64-n32-linux-gnu.

Same for patches 12-15, the tests should be to just simple ran
make check-abi against the affected ABIs.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
similarity index 100%
rename from sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
rename to sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
new file mode 100644
index 0000000000..9c35d0da80
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libpthread.abilist
@@ -0,0 +1,214 @@ 
+GLIBC_2.0 _IO_flockfile F
+GLIBC_2.0 _IO_ftrylockfile F
+GLIBC_2.0 _IO_funlockfile F
+GLIBC_2.0 __errno_location F
+GLIBC_2.0 __h_errno_location F
+GLIBC_2.0 __lseek F
+GLIBC_2.0 __open F
+GLIBC_2.0 __pthread_getspecific F
+GLIBC_2.0 __pthread_key_create F
+GLIBC_2.0 __pthread_mutex_destroy F
+GLIBC_2.0 __pthread_mutex_init F
+GLIBC_2.0 __pthread_mutex_lock F
+GLIBC_2.0 __pthread_mutex_trylock F
+GLIBC_2.0 __pthread_mutex_unlock F
+GLIBC_2.0 __pthread_mutexattr_destroy F
+GLIBC_2.0 __pthread_mutexattr_init F
+GLIBC_2.0 __pthread_mutexattr_settype F
+GLIBC_2.0 __pthread_once F
+GLIBC_2.0 __pthread_setspecific F
+GLIBC_2.0 __send F
+GLIBC_2.0 __sigaction F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
+GLIBC_2.0 flockfile F
+GLIBC_2.0 ftrylockfile F
+GLIBC_2.0 funlockfile F
+GLIBC_2.0 longjmp F
+GLIBC_2.0 lseek F
+GLIBC_2.0 open F
+GLIBC_2.0 pthread_atfork F
+GLIBC_2.0 pthread_cancel F
+GLIBC_2.0 pthread_cond_broadcast F
+GLIBC_2.0 pthread_cond_signal F
+GLIBC_2.0 pthread_cond_timedwait F
+GLIBC_2.0 pthread_cond_wait F
+GLIBC_2.0 pthread_create F
+GLIBC_2.0 pthread_detach F
+GLIBC_2.0 pthread_exit F
+GLIBC_2.0 pthread_getspecific F
+GLIBC_2.0 pthread_join F
+GLIBC_2.0 pthread_key_create F
+GLIBC_2.0 pthread_key_delete F
+GLIBC_2.0 pthread_kill F
+GLIBC_2.0 pthread_kill_other_threads_np F
+GLIBC_2.0 pthread_mutex_destroy F
+GLIBC_2.0 pthread_mutex_init F
+GLIBC_2.0 pthread_mutex_lock F
+GLIBC_2.0 pthread_mutex_trylock F
+GLIBC_2.0 pthread_mutex_unlock F
+GLIBC_2.0 pthread_mutexattr_destroy F
+GLIBC_2.0 pthread_mutexattr_getkind_np F
+GLIBC_2.0 pthread_mutexattr_init F
+GLIBC_2.0 pthread_mutexattr_setkind_np F
+GLIBC_2.0 pthread_once F
+GLIBC_2.0 pthread_setcancelstate F
+GLIBC_2.0 pthread_setcanceltype F
+GLIBC_2.0 pthread_setspecific F
+GLIBC_2.0 pthread_testcancel F
+GLIBC_2.0 raise F
+GLIBC_2.0 sem_destroy F
+GLIBC_2.0 sem_getvalue F
+GLIBC_2.0 sem_init F
+GLIBC_2.0 sem_post F
+GLIBC_2.0 sem_trywait F
+GLIBC_2.0 sem_wait F
+GLIBC_2.0 send F
+GLIBC_2.0 sigaction F
+GLIBC_2.0 siglongjmp F
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2.3 __libpthread_version_placeholder F
+GLIBC_2.2.6 __libpthread_version_placeholder F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F