aboutsummaryrefslogtreecommitdiff
path: root/htl
diff options
context:
space:
mode:
Diffstat (limited to 'htl')
-rw-r--r--htl/Makefile12
-rw-r--r--htl/Versions24
-rw-r--r--htl/forward.c3
-rw-r--r--htl/pt-cleanup.c10
-rw-r--r--htl/pt-initialize.c5
-rw-r--r--htl/pt-internal.h1
6 files changed, 30 insertions, 25 deletions
diff --git a/htl/Makefile b/htl/Makefile
index 603af24..82b7803 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -25,12 +25,7 @@ SYSDEPS := lockfile
LCLHDRS :=
libpthread-routines := \
- pt-destroy-specific \
pt-init-specific \
- pt-key-create \
- pt-key-delete \
- pt-getspecific \
- pt-setspecific \
pt-alloc \
pt-create \
pt-getattr \
@@ -40,7 +35,6 @@ libpthread-routines := \
pt-initialize \
pt-join \
pt-spin-inlines \
- pt-cleanup \
pt-testcancel \
pt-cancel \
pt-mutex-transfer-np \
@@ -148,6 +142,7 @@ routines := \
pt-barrierattr-setpshared \
pt-block \
pt-block-intr \
+ pt-cleanup \
pt-cond \
pt-cond-brdcast \
pt-cond-destroy \
@@ -161,7 +156,11 @@ routines := \
pt-condattr-init \
pt-condattr-setclock \
pt-condattr-setpshared \
+ pt-destroy-specific \
pt-getschedparam \
+ pt-getspecific \
+ pt-key-create \
+ pt-key-delete \
pt-mutex-checklocked \
pt-mutex-consistent \
pt-mutex-destroy \
@@ -205,6 +204,7 @@ routines := \
pt-setcancelstate \
pt-setcanceltype \
pt-setschedparam \
+ pt-setspecific \
pt-sigmask \
pt-sigstate \
pt-sigstate-destroy \
diff --git a/htl/Versions b/htl/Versions
index a07a3b3..40ee274 100644
--- a/htl/Versions
+++ b/htl/Versions
@@ -2,6 +2,8 @@ libc {
GLIBC_2.12 {
pthread_self;
+ __pthread_get_cleanup_stack;
+ __pthread_key_create;
__pthread_self;
pthread_attr_getdetachstate;
pthread_attr_getinheritsched;
@@ -12,6 +14,7 @@ libc {
pthread_attr_setschedpolicy;
pthread_equal;
pthread_getschedparam;
+ pthread_getspecific;
pthread_setschedparam;
pthread_attr_destroy;
pthread_attr_getguardsize;
@@ -45,6 +48,8 @@ libc {
pthread_condattr_getpshared;
pthread_condattr_setclock;
pthread_condattr_setpshared;
+ pthread_key_create;
+ pthread_key_delete;
pthread_mutex_destroy;
pthread_mutex_getprioceiling;
pthread_mutex_init;
@@ -79,6 +84,7 @@ libc {
pthread_rwlockattr_setpshared;
pthread_setcancelstate;
pthread_setcanceltype;
+ pthread_setspecific;
pthread_sigmask;
}
@@ -154,6 +160,9 @@ libc {
pthread_barrierattr_getpshared;
pthread_barrierattr_init;
pthread_barrierattr_setpshared;
+ pthread_getspecific;
+ pthread_key_create;
+ pthread_key_delete;
pthread_mutex_consistent; pthread_mutex_consistent_np;
pthread_mutex_getprioceiling;
pthread_mutex_setprioceiling;
@@ -174,6 +183,7 @@ libc {
pthread_rwlockattr_getpshared;
pthread_rwlockattr_init;
pthread_rwlockattr_setpshared;
+ pthread_setspecific;
}
GLIBC_PRIVATE {
@@ -203,6 +213,9 @@ libc {
__pthread_cond_wait;
__pthread_condattr_init;
__pthread_default_condattr;
+ __pthread_destroy_specific;
+ __pthread_getspecific;
+ __pthread_key_delete;
__pthread_mutex_checklocked;
__pthread_mutex_destroy;
__pthread_mutex_init;
@@ -214,6 +227,7 @@ libc {
__pthread_mutexattr_init;
__pthread_mutexattr_settype;
__pthread_once;
+ __pthread_setspecific;
__pthread_sigstate;
__pthread_sigstate_destroy;
__pthread_sigmask;
@@ -229,8 +243,6 @@ libpthread {
__errno_location; __h_errno_location;
}
GLIBC_2.12 {
- __pthread_get_cleanup_stack;
-
__pthread_mutex_transfer_np;
cthread_detach;
@@ -255,20 +267,16 @@ libpthread {
pthread_getattr_np;
pthread_getconcurrency; pthread_getcpuclockid;
- pthread_getspecific;
pthread_join;
- pthread_key_create; pthread_key_delete;
- __pthread_key_create;
-
pthread_kill;
__pthread_kill;
pthread_mutex_transfer_np;
pthread_setconcurrency;
- pthread_setschedprio; pthread_setspecific;
+ pthread_setschedprio;
pthread_testcancel;
pthread_yield;
@@ -315,8 +323,6 @@ libpthread {
__cthread_keycreate;
__cthread_getspecific;
__cthread_setspecific;
- __pthread_getspecific;
- __pthread_setspecific;
__pthread_getattr_np;
__pthread_enable_asynccancel;
__pthread_disable_asynccancel;
diff --git a/htl/forward.c b/htl/forward.c
index 0a7a696..21acf66 100644
--- a/htl/forward.c
+++ b/htl/forward.c
@@ -57,6 +57,3 @@ name decl \
FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
exit (EXIT_SUCCESS))
strong_alias (__pthread_exit, pthread_exit);
-
-FORWARD2 (__pthread_get_cleanup_stack, struct __pthread_cancelation_handler **,
- (void), (), return &__pthread_cleanup_stack);
diff --git a/htl/pt-cleanup.c b/htl/pt-cleanup.c
index 863c38f..76fdbe2 100644
--- a/htl/pt-cleanup.c
+++ b/htl/pt-cleanup.c
@@ -19,10 +19,16 @@
#include <pthread.h>
#include <pt-internal.h>
+#include <shlib-compat.h>
struct __pthread_cancelation_handler **
-__pthread_get_cleanup_stack (void)
+___pthread_get_cleanup_stack (void)
{
return &__pthread_cleanup_stack;
}
-hidden_def(__pthread_get_cleanup_stack)
+versioned_symbol (libc, ___pthread_get_cleanup_stack, __pthread_get_cleanup_stack, GLIBC_2_21);
+libc_hidden_ver (___pthread_get_cleanup_stack, __pthread_get_cleanup_stack)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_21)
+compat_symbol (libpthread, ___pthread_get_cleanup_stack, __pthread_get_cleanup_stack, GLIBC_2_12);
+#endif
diff --git a/htl/pt-initialize.c b/htl/pt-initialize.c
index 658ba1e..b4e8b15 100644
--- a/htl/pt-initialize.c
+++ b/htl/pt-initialize.c
@@ -28,11 +28,6 @@
#if IS_IN (libpthread)
static const struct pthread_functions pthread_functions = {
.ptr___pthread_exit = __pthread_exit,
- .ptr___pthread_get_cleanup_stack = __pthread_get_cleanup_stack,
- .ptr_pthread_once = __pthread_once,
- .ptr___pthread_key_create = __pthread_key_create,
- .ptr___pthread_getspecific = __pthread_getspecific,
- .ptr___pthread_setspecific = __pthread_setspecific,
.ptr__IO_flockfile = _cthreads_flockfile,
.ptr__IO_funlockfile = _cthreads_funlockfile,
.ptr__IO_ftrylockfile = _cthreads_ftrylockfile,
diff --git a/htl/pt-internal.h b/htl/pt-internal.h
index d19579b..8b37838 100644
--- a/htl/pt-internal.h
+++ b/htl/pt-internal.h
@@ -299,6 +299,7 @@ extern error_t __pthread_init_specific (struct __pthread *thread);
/* Call the destructors on all of the thread specific data in THREAD.
THREAD must be the calling thread. */
extern void __pthread_destroy_specific (struct __pthread *thread);
+libc_hidden_proto (__pthread_destroy_specific)
/* Initialize newly create thread *THREAD's signal state data