diff options
Diffstat (limited to 'sysdeps/pthread')
-rw-r--r-- | sysdeps/pthread/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/pthread/mtx_init.c | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile index 591722460a..bf42b6aa71 100644 --- a/sysdeps/pthread/Makefile +++ b/sysdeps/pthread/Makefile @@ -32,7 +32,7 @@ headers += threads.h routines += thrd_current thrd_equal thrd_sleep thrd_yield libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \ - mtx_init mtx_lock mtx_timedlock \ + mtx_lock mtx_timedlock \ mtx_trylock mtx_unlock \ tss_create tss_delete tss_get tss_set @@ -45,6 +45,7 @@ $(libpthread-routines-var) += \ cnd_timedwait \ cnd_wait \ mtx_destroy \ + mtx_init \ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \ diff --git a/sysdeps/pthread/mtx_init.c b/sysdeps/pthread/mtx_init.c index 8d5f194e99..e99258bd4d 100644 --- a/sysdeps/pthread/mtx_init.c +++ b/sysdeps/pthread/mtx_init.c @@ -17,11 +17,12 @@ <https://www.gnu.org/licenses/>. */ #include <stdalign.h> +#include <shlib-compat.h> #include "thrd_priv.h" int -mtx_init (mtx_t *mutex, int type) +__mtx_init (mtx_t *mutex, int type) { _Static_assert (sizeof (mtx_t) == sizeof (pthread_mutex_t), "sizeof (mtx_t) != sizeof (pthread_mutex_t)"); @@ -51,3 +52,11 @@ mtx_init (mtx_t *mutex, int type) /* pthread_mutexattr_destroy implementation is a noop. */ return thrd_err_map (err_code); } +#if PTHREAD_IN_LIBC +versioned_symbol (libc, __mtx_init, mtx_init, GLIBC_2_34); +# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34) +compat_symbol (libpthread, __mtx_init, mtx_init, GLIBC_2_28); +# endif +#else /* !PTHREAD_IN_LIBC */ +strong_alias (__mtx_init, mtx_init) +#endif |