diff options
-rw-r--r-- | nptl/Makefile | 2 | ||||
-rw-r--r-- | nptl/Versions | 1 | ||||
-rw-r--r-- | nptl/nptl-init.c | 1 | ||||
-rw-r--r-- | nptl/pthreadP.h | 4 | ||||
-rw-r--r-- | nptl/pthread_cleanup_upto.c (renamed from nptl/pt-cleanup.c) | 2 | ||||
-rw-r--r-- | sysdeps/nptl/jmp-unwind.c | 8 | ||||
-rw-r--r-- | sysdeps/nptl/pthread-functions.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 7 |
8 files changed, 8 insertions, 18 deletions
diff --git a/nptl/Makefile b/nptl/Makefile index 81a8f0b..b53d32e 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -66,6 +66,7 @@ routines = \ pthread_attr_setscope \ pthread_attr_setsigmask \ pthread_attr_setsigmask_internal \ + pthread_cleanup_upto \ pthread_cond_destroy \ pthread_cond_init \ pthread_condattr_destroy \ @@ -100,7 +101,6 @@ libpthread-routines = \ old_pthread_cond_signal \ old_pthread_cond_timedwait \ old_pthread_cond_wait \ - pt-cleanup \ pt-interp \ pthread_attr_getaffinity \ pthread_attr_getguardsize \ diff --git a/nptl/Versions b/nptl/Versions index 67a49bd..e59a117 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -108,6 +108,7 @@ libc { __pthread_attr_setsigmask_internal; __pthread_cleanup_pop; __pthread_cleanup_push; + __pthread_cleanup_upto; __pthread_cond_destroy; # Used by the C11 threads. __pthread_cond_init; # Used by the C11 threads. __pthread_force_elision; diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index 43e2564..9decc14 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -87,7 +87,6 @@ static const struct pthread_functions pthread_functions = .ptr_pthread_mutex_unlock = __pthread_mutex_unlock, .ptr___pthread_setcancelstate = __pthread_setcancelstate, .ptr_pthread_setcanceltype = __pthread_setcanceltype, - .ptr___pthread_cleanup_upto = __pthread_cleanup_upto, .ptr___pthread_once = __pthread_once, .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock, .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock, diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 9cc9682..ab0e92f 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -332,9 +332,7 @@ extern int __make_stacks_executable (void **stack_endp) attribute_hidden; /* longjmp handling. */ extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe); -#if IS_IN (libpthread) -hidden_proto (__pthread_cleanup_upto) -#endif +libc_hidden_proto (__pthread_cleanup_upto) /* Functions with versioned interfaces. */ diff --git a/nptl/pt-cleanup.c b/nptl/pthread_cleanup_upto.c index 5415332..89da3e5 100644 --- a/nptl/pt-cleanup.c +++ b/nptl/pthread_cleanup_upto.c @@ -59,4 +59,4 @@ __pthread_cleanup_upto (__jmp_buf target, char *targetframe) THREAD_SETMEM (self, cleanup, cbuf); } -hidden_def (__pthread_cleanup_upto) +libc_hidden_def (__pthread_cleanup_upto) diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c index a79c792..96c4862 100644 --- a/sysdeps/nptl/jmp-unwind.c +++ b/sysdeps/nptl/jmp-unwind.c @@ -19,14 +19,10 @@ #include <setjmp.h> #include <stddef.h> #include <libc-lock.h> - -extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe); -#pragma weak __pthread_cleanup_upto - +#include <nptl/pthreadP.h> void _longjmp_unwind (jmp_buf env, int val) { - __libc_ptf_call (__pthread_cleanup_upto, (env->__jmpbuf, - CURRENT_STACK_FRAME), 0); + __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME); } diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h index 4268084..1bbe609 100644 --- a/sysdeps/nptl/pthread-functions.h +++ b/sysdeps/nptl/pthread-functions.h @@ -49,7 +49,6 @@ struct pthread_functions int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *); int (*ptr___pthread_setcancelstate) (int, int *); int (*ptr_pthread_setcanceltype) (int, int *); - void (*ptr___pthread_cleanup_upto) (__jmp_buf, char *); int (*ptr___pthread_once) (pthread_once_t *, void (*) (void)); int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *); int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *); diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c index 2bdde57..8e0399a 100644 --- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c +++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c @@ -19,15 +19,12 @@ #include <setjmp.h> #include <stddef.h> #include <libc-lock.h> - -extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe); -#pragma weak __pthread_cleanup_upto - +#include <nptl/pthreadP.h> void _longjmp_unwind (jmp_buf env, int val) { char local_var; - __libc_ptf_call (__pthread_cleanup_upto, (env->__jmpbuf, &local_var), 0); + __pthread_cleanup_upto (env->__jmpbuf, &local_var); } |