pt-initialize \
pt-join \
pt-spin-inlines \
- pt-cleanup \
pt-testcancel \
pt-cancel \
pt-mutex-transfer-np \
pt-barrierattr-setpshared \
pt-block \
pt-block-intr \
+ pt-cleanup \
pt-cond \
pt-cond-brdcast \
pt-cond-destroy \
GLIBC_2.12 {
pthread_self;
+ __pthread_get_cleanup_stack;
__pthread_key_create;
__pthread_self;
pthread_attr_getdetachstate;
__errno_location; __h_errno_location;
}
GLIBC_2.12 {
- __pthread_get_cleanup_stack;
-
__pthread_mutex_transfer_np;
cthread_detach;
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);
#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
#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__IO_flockfile = _cthreads_flockfile,
.ptr__IO_funlockfile = _cthreads_funlockfile,
.ptr__IO_ftrylockfile = _cthreads_ftrylockfile,
--- /dev/null
+#include_next <bits/cancelation.h>
+
+#ifndef _ISOMAC
+#include <pthreadP.h>
+#endif
{ \
__handler.__handler = FCT; \
__handler.__arg = ARG; \
- if (__pthread_get_cleanup_stack != NULL) \
- { \
- __handlers = __pthread_get_cleanup_stack (); \
- __handler.__next = *__handlers; \
- *__handlers = &__handler; \
- __registered = 1; \
- } \
+ __handlers = __pthread_get_cleanup_stack (); \
+ __handler.__next = *__handlers; \
+ *__handlers = &__handler; \
+ __registered = 1; \
} \
#define __libc_cleanup_end(DOIT) \
#define __libc_cleanup_push(fct, arg) __libc_cleanup_region_start (1, fct, arg)
#define __libc_cleanup_pop(execute) __libc_cleanup_region_end (execute)
-#if !IS_IN (libpthread)
-# ifdef weak_extern
-weak_extern (__pthread_get_cleanup_stack)
-# else
-# pragma weak __pthread_get_cleanup_stack
-# endif
-#endif
-
#endif
#include <pthread.h>
void __pthread_exit (void *) __attribute__ ((__noreturn__));
-struct __pthread_cancelation_handler **__pthread_get_cleanup_stack (void);
void _cthreads_flockfile (FILE *);
void _cthreads_funlockfile (FILE *);
struct pthread_functions
{
void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
- struct __pthread_cancelation_handler **(*ptr___pthread_get_cleanup_stack) (void);
void (*ptr__IO_flockfile) (FILE *);
void (*ptr__IO_funlockfile) (FILE *);
int (*ptr__IO_ftrylockfile) (FILE *);
libc_hidden_proto (__pthread_self)
libc_hidden_proto (__pthread_attr_init)
libc_hidden_proto (__pthread_condattr_init)
+libc_hidden_proto (__pthread_get_cleanup_stack)
#if IS_IN (libpthread)
hidden_proto (__pthread_create)
hidden_proto (__pthread_detach)
-hidden_proto (__pthread_get_cleanup_stack)
#endif
#if !defined(__NO_WEAK_PTHREAD_ALIASES) && !IS_IN (libpthread)
tests-unsupported += test-bz22786 tst-strtod-overflow
# pthread_cleanup_combined_push/pthread_cleanup_combined_pop requires cleanup
# support (BZ 32058).
-test-xfail-tst-qsortx7 = yes
+test-xfail-tst-qsort7-mem = yes
+test-xfail-tst-qsortx7-mem = yes
endif
ifeq ($(subdir),timezone)
tests-unsupported += tst-tzset
GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 __pthread_get_cleanup_stack F
GLIBC_2.12 __pthread_key_create F
GLIBC_2.12 __pthread_self F
GLIBC_2.12 pthread_attr_destroy F
GLIBC_2.12 __mutex_lock_solid F
GLIBC_2.12 __mutex_unlock_solid F
-GLIBC_2.12 __pthread_get_cleanup_stack F
GLIBC_2.12 __pthread_kill F
GLIBC_2.12 __pthread_mutex_transfer_np F
GLIBC_2.12 __pthread_spin_destroy F
GLIBC_2.38 __h_errno_location F
GLIBC_2.38 __mutex_lock_solid F
GLIBC_2.38 __mutex_unlock_solid F
-GLIBC_2.38 __pthread_get_cleanup_stack F
GLIBC_2.38 __pthread_kill F
GLIBC_2.38 __pthread_mutex_transfer_np F
GLIBC_2.38 __pthread_spin_destroy F