diff --git a/htl/Makefile b/htl/Makefile index 5c625d0ca9..25eb791031 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -25,7 +25,6 @@ SYSDEPS := lockfile LCLHDRS := libpthread-routines := \ - pt-attr-init \ pt-barrier-destroy \ pt-barrier-init \ pt-barrier-wait \ @@ -197,6 +196,7 @@ routines := \ pt-attr-getstack \ pt-attr-getstackaddr \ pt-attr-getstacksize \ + pt-attr-init \ pt-attr-setdetachstate \ pt-attr-setguardsize \ pt-attr-setinheritsched \ diff --git a/htl/Versions b/htl/Versions index 3374574869..afc2495e2f 100644 --- a/htl/Versions +++ b/htl/Versions @@ -25,6 +25,7 @@ libc { pthread_attr_setstack; pthread_attr_setscope; pthread_attr_setschedparam; + pthread_attr_init; } GLIBC_2.21 { @@ -74,6 +75,7 @@ libc { ___pthread_self; __pthread_init_thread; __pthread_default_attr; + __pthread_attr_init; __pthread_attr_getstacksize; __pthread_attr_getstackaddr; __pthread_attr_getstack; @@ -108,8 +110,6 @@ libpthread { pthread_atfork; - pthread_attr_init; - pthread_barrier_destroy; pthread_barrier_init; pthread_barrier_wait; pthread_barrierattr_destroy; pthread_barrierattr_getpshared; pthread_barrierattr_init; pthread_barrierattr_setpshared; diff --git a/htl/forward.c b/htl/forward.c index 179ec60bc5..7c0e16dc6e 100644 --- a/htl/forward.c +++ b/htl/forward.c @@ -53,8 +53,6 @@ name decl \ #define FORWARD(name, decl, params, defretval) \ FORWARD2 (name, int, decl, params, return defretval) -FORWARD (pthread_attr_init, (pthread_attr_t *attr), (attr), 0) - FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0) FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0) diff --git a/htl/pt-initialize.c b/htl/pt-initialize.c index 835d741215..b082a13b54 100644 --- a/htl/pt-initialize.c +++ b/htl/pt-initialize.c @@ -27,7 +27,6 @@ #if IS_IN (libpthread) static const struct pthread_functions pthread_functions = { - .ptr_pthread_attr_init = __pthread_attr_init, .ptr_pthread_condattr_destroy = __pthread_condattr_destroy, .ptr_pthread_condattr_init = __pthread_condattr_init, .ptr_pthread_cond_broadcast = __pthread_cond_broadcast, diff --git a/sysdeps/htl/pt-attr-init.c b/sysdeps/htl/pt-attr-init.c index b01eb9ea62..959df0cb2a 100644 --- a/sysdeps/htl/pt-attr-init.c +++ b/sysdeps/htl/pt-attr-init.c @@ -17,6 +17,7 @@ . */ #include +#include #include int @@ -27,4 +28,9 @@ __pthread_attr_init (pthread_attr_t *attr) *attr = __pthread_default_attr; return 0; } -weak_alias (__pthread_attr_init, pthread_attr_init); +libc_hidden_def (__pthread_attr_init) +versioned_symbol (libc, __pthread_attr_init, pthread_attr_init, GLIBC_2_21); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21) +compat_symbol (libc, __pthread_attr_init, pthread_attr_init, GLIBC_2_12); +#endif diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h index 17c97ef200..d380d17bc6 100644 --- a/sysdeps/htl/pthread-functions.h +++ b/sysdeps/htl/pthread-functions.h @@ -21,7 +21,6 @@ #include -int __pthread_attr_init (pthread_attr_t *); int __pthread_condattr_destroy (pthread_condattr_t *); int __pthread_condattr_init (pthread_condattr_t *); int __pthread_cond_broadcast (pthread_cond_t *); @@ -59,7 +58,6 @@ int _cthreads_ftrylockfile (FILE *); so if possible avoid breaking it and append new hooks to the end. */ struct pthread_functions { - int (*ptr_pthread_attr_init) (pthread_attr_t *); int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *); int (*ptr_pthread_condattr_init) (pthread_condattr_t *); int (*ptr_pthread_cond_broadcast) (pthread_cond_t *); diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h index 6f6f6dffc7..68e6cf17b0 100644 --- a/sysdeps/htl/pthreadP.h +++ b/sysdeps/htl/pthreadP.h @@ -97,10 +97,12 @@ libc_hidden_proto (__pthread_attr_setstack) int __pthread_attr_getstack (const pthread_attr_t *, void **, size_t *); libc_hidden_proto (__pthread_attr_getstack) void __pthread_testcancel (void); +int __pthread_attr_init (pthread_attr_t *attr); #define __pthread_raise_internal(__sig) raise (__sig) libc_hidden_proto (__pthread_self) +libc_hidden_proto (__pthread_attr_init) #if IS_IN (libpthread) hidden_proto (__pthread_create) diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 0672f31a69..101d5b8025 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -39,6 +39,7 @@ GLIBC_2.12 pthread_attr_getscope F GLIBC_2.12 pthread_attr_getstack F GLIBC_2.12 pthread_attr_getstackaddr F GLIBC_2.12 pthread_attr_getstacksize F +GLIBC_2.12 pthread_attr_init F GLIBC_2.12 pthread_attr_setdetachstate F GLIBC_2.12 pthread_attr_setguardsize F GLIBC_2.12 pthread_attr_setinheritsched F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index 86d79bbc35..4e287c2e31 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -22,7 +22,6 @@ GLIBC_2.12 flockfile F GLIBC_2.12 ftrylockfile F GLIBC_2.12 funlockfile F GLIBC_2.12 pthread_atfork F -GLIBC_2.12 pthread_attr_init F GLIBC_2.12 pthread_barrier_destroy F GLIBC_2.12 pthread_barrier_init F GLIBC_2.12 pthread_barrier_wait F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist index 9e156b16bf..3396ea9e70 100644 --- a/sysdeps/mach/hurd/x86_64/libpthread.abilist +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -39,7 +39,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_attr_init F GLIBC_2.38 pthread_barrier_destroy F GLIBC_2.38 pthread_barrier_init F GLIBC_2.38 pthread_barrier_wait F