@@ -30,6 +30,8 @@ extra-libs-others := $(extra-libs)
routines = \
alloca_cutoff \
+ cleanup_compat \
+ cleanup_defer_compat \
cleanup_routine \
elision-conf \
elision-lock \
@@ -97,9 +99,7 @@ libpthread-routines = \
$(pthread-compat-wrappers) \
cancellation \
cleanup \
- cleanup_compat \
cleanup_defer \
- cleanup_defer_compat \
events \
flockfile \
ftrylockfile \
@@ -346,7 +346,6 @@ tests = tst-attr2 tst-attr3 tst-default-attr \
tst-tsd3 tst-tsd4 \
tst-cancel4_1 tst-cancel4_2 \
tst-cancel7 tst-cancel17 tst-cancel24 \
- tst-cleanup4 \
tst-signal3 \
tst-exec4 tst-exec5 \
tst-stack2 tst-stack3 tst-stack4 \
@@ -424,7 +423,7 @@ endif
LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
-tests += tst-cancelx7 tst-cancelx17 tst-cleanupx4
+tests += tst-cancelx7 tst-cancelx17
ifeq ($(build-shared),yes)
tests += tst-compat-forwarder tst-audit-threads
@@ -444,6 +443,14 @@ extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \
tst-cleanup4aux.o tst-cleanupx4aux.o
test-extras += tst-cleanup4aux tst-cleanupx4aux
+# This test exercises compat symbols removed in glibc 2.34.
+ifdef have-GLIBC_2.33
+tests += tst-cleanup4
+ifeq ($(build-shared),yes)
+tests += tst-cleanupx4
+endif
+endif
+
tst-tls3mod.so-no-z-defs = yes
tst-tls5mod.so-no-z-defs = yes
tst-tls5moda.so-no-z-defs = yes
@@ -1,5 +1,9 @@
libc {
GLIBC_2.0 {
+ _pthread_cleanup_pop;
+ _pthread_cleanup_pop_restore;
+ _pthread_cleanup_push;
+ _pthread_cleanup_push_defer;
pthread_attr_destroy;
pthread_attr_getdetachstate;
pthread_attr_getinheritsched;
@@ -103,6 +107,8 @@ libc {
__pthread_attr_init;
__pthread_attr_setaffinity_np;
__pthread_attr_setsigmask_internal;
+ __pthread_cleanup_pop;
+ __pthread_cleanup_push;
__pthread_cond_destroy; # Used by the C11 threads.
__pthread_cond_init; # Used by the C11 threads.
__pthread_force_elision;
@@ -142,10 +148,6 @@ libpthread {
__sigaction;
__write;
_exit;
- _pthread_cleanup_pop;
- _pthread_cleanup_pop_restore;
- _pthread_cleanup_push;
- _pthread_cleanup_push_defer;
accept;
close;
connect;
@@ -16,12 +16,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <shlib-compat.h>
#include <stdlib.h>
#include "pthreadP.h"
-
void
-_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
+__pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg)
{
struct pthread *self = THREAD_SELF;
@@ -32,11 +32,10 @@ _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
THREAD_SETMEM (self, cleanup, buffer);
}
-strong_alias (_pthread_cleanup_push, __pthread_cleanup_push)
-
+libc_hidden_def (__pthread_cleanup_push)
void
-_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
+__pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
{
struct pthread *self __attribute ((unused)) = THREAD_SELF;
@@ -47,4 +46,9 @@ _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
if (execute)
buffer->__routine (buffer->__arg);
}
-strong_alias (_pthread_cleanup_pop, __pthread_cleanup_pop)
+libc_hidden_def (__pthread_cleanup_pop)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, __pthread_cleanup_push, _pthread_cleanup_push, GLIBC_2_0);
+compat_symbol (libc, __pthread_cleanup_pop, _pthread_cleanup_pop, GLIBC_2_0);
+#endif /* SHLIB_COMPAT */
@@ -16,10 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "pthreadP.h"
-#include <libc-lock.h>
+#include <shlib-compat.h>
-void
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+# include "pthreadP.h"
+# include <libc-lock.h>
+
+void attribute_compat_text_section
_pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg)
{
@@ -27,10 +30,10 @@ _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
buffer->__arg = arg;
__libc_cleanup_push_defer (buffer);
}
-strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
-
+compat_symbol (libc, _pthread_cleanup_push_defer,
+ _pthread_cleanup_push_defer, GLIBC_2_0);
-void
+void attribute_compat_text_section
_pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
int execute)
{
@@ -41,4 +44,7 @@ _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
if (execute)
buffer->__routine (buffer->__arg);
}
-strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore)
+compat_symbol (libc, _pthread_cleanup_pop_restore,
+ _pthread_cleanup_pop_restore, GLIBC_2_0);
+
+#endif /* SHLIB_COMPAT */
@@ -585,11 +585,10 @@ libc_hidden_proto (__pthread_attr_setsigmask_internal)
extern __typeof (pthread_attr_getsigmask_np) __pthread_attr_getsigmask_np;
libc_hidden_proto (__pthread_attr_getsigmask_np)
-#if IS_IN (libpthread)
/* Special versions which use non-exported functions. */
extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
- void (*routine) (void *), void *arg)
- attribute_hidden;
+ void (*routine) (void *), void *arg);
+libc_hidden_proto (__pthread_cleanup_push)
/* Replace cleanup macros defined in <pthread.h> with internal
versions that don't depend on unwind info and better support
@@ -600,11 +599,11 @@ extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
__pthread_cleanup_push (&_buffer, (routine), (arg));
extern void __pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
- int execute) attribute_hidden;
+ int execute);
+libc_hidden_proto (__pthread_cleanup_pop)
# undef pthread_cleanup_pop
# define pthread_cleanup_pop(execute) \
__pthread_cleanup_pop (&_buffer, (execute)); }
-#endif
extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg);
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -25,8 +26,12 @@
extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
void (*__routine) (void *),
void *__arg);
+compat_symbol_reference (libc, _pthread_cleanup_push,
+ _pthread_cleanup_push, GLIBC_2_0);
extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
int __execute);
+compat_symbol_reference (libc, _pthread_cleanup_pop,
+ _pthread_cleanup_pop, GLIBC_2_0);
static int fds[2];
static pthread_barrier_t b2;
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -24,8 +25,12 @@
extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
void (*__routine) (void *),
void *__arg);
+compat_symbol_reference (libc, _pthread_cleanup_push,
+ _pthread_cleanup_push, GLIBC_2_0);
extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
int __execute);
+compat_symbol_reference (libc, _pthread_cleanup_pop,
+ _pthread_cleanup_pop, GLIBC_2_0);
extern void clh (void *arg);
extern void fn0 (void);
@@ -538,6 +538,10 @@ GLIBC_2.17 _obstack_begin_1 F
GLIBC_2.17 _obstack_free F
GLIBC_2.17 _obstack_memory_used F
GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 _res D 0x238
GLIBC_2.17 _res_hconf D 0x48
GLIBC_2.17 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
GLIBC_2.17 __write F
-GLIBC_2.17 _pthread_cleanup_pop F
-GLIBC_2.17 _pthread_cleanup_pop_restore F
-GLIBC_2.17 _pthread_cleanup_push F
-GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 accept F
GLIBC_2.17 close F
GLIBC_2.17 connect F
@@ -277,6 +277,10 @@ GLIBC_2.0 _obstack_newchunk F
GLIBC_2.0 _outb F
GLIBC_2.0 _outl F
GLIBC_2.0 _outw F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x238
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -506,6 +506,10 @@ GLIBC_2.32 _obstack_begin_1 F
GLIBC_2.32 _obstack_free F
GLIBC_2.32 _obstack_memory_used F
GLIBC_2.32 _obstack_newchunk F
+GLIBC_2.32 _pthread_cleanup_pop F
+GLIBC_2.32 _pthread_cleanup_pop_restore F
+GLIBC_2.32 _pthread_cleanup_push F
+GLIBC_2.32 _pthread_cleanup_push_defer F
GLIBC_2.32 _res D 0x200
GLIBC_2.32 _res_hconf D 0x30
GLIBC_2.32 _setjmp F
@@ -42,10 +42,6 @@ GLIBC_2.32 __res_state F
GLIBC_2.32 __send F
GLIBC_2.32 __sigaction F
GLIBC_2.32 __write F
-GLIBC_2.32 _pthread_cleanup_pop F
-GLIBC_2.32 _pthread_cleanup_pop_restore F
-GLIBC_2.32 _pthread_cleanup_push F
-GLIBC_2.32 _pthread_cleanup_push_defer F
GLIBC_2.32 accept F
GLIBC_2.32 call_once F
GLIBC_2.32 close F
@@ -683,6 +683,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x200
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
@@ -680,6 +680,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x200
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
@@ -515,6 +515,10 @@ GLIBC_2.29 _obstack_begin_1 F
GLIBC_2.29 _obstack_free F
GLIBC_2.29 _obstack_memory_used F
GLIBC_2.29 _obstack_newchunk F
+GLIBC_2.29 _pthread_cleanup_pop F
+GLIBC_2.29 _pthread_cleanup_pop_restore F
+GLIBC_2.29 _pthread_cleanup_push F
+GLIBC_2.29 _pthread_cleanup_push_defer F
GLIBC_2.29 _res D 0x200
GLIBC_2.29 _res_hconf D 0x30
GLIBC_2.29 _rpc_dtablesize F
@@ -42,10 +42,6 @@ GLIBC_2.29 __res_state F
GLIBC_2.29 __send F
GLIBC_2.29 __sigaction F
GLIBC_2.29 __write F
-GLIBC_2.29 _pthread_cleanup_pop F
-GLIBC_2.29 _pthread_cleanup_pop_restore F
-GLIBC_2.29 _pthread_cleanup_push F
-GLIBC_2.29 _pthread_cleanup_push_defer F
GLIBC_2.29 accept F
GLIBC_2.29 call_once F
GLIBC_2.29 close F
@@ -502,6 +502,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -514,6 +514,10 @@ GLIBC_2.2 _obstack_newchunk F
GLIBC_2.2 _outb F
GLIBC_2.2 _outl F
GLIBC_2.2 _outw F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -671,6 +671,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x1fe
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x1fe
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -541,6 +541,10 @@ GLIBC_2.18 _obstack_begin_1 F
GLIBC_2.18 _obstack_free F
GLIBC_2.18 _obstack_memory_used F
GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 _res D 0x200
GLIBC_2.18 _res_hconf D 0x30
GLIBC_2.18 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.18 __res_state F
GLIBC_2.18 __send F
GLIBC_2.18 __sigaction F
GLIBC_2.18 __write F
-GLIBC_2.18 _pthread_cleanup_pop F
-GLIBC_2.18 _pthread_cleanup_pop_restore F
-GLIBC_2.18 _pthread_cleanup_push F
-GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 accept F
GLIBC_2.18 close F
GLIBC_2.18 connect F
@@ -541,6 +541,10 @@ GLIBC_2.18 _obstack_begin_1 F
GLIBC_2.18 _obstack_free F
GLIBC_2.18 _obstack_memory_used F
GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 _res D 0x200
GLIBC_2.18 _res_hconf D 0x30
GLIBC_2.18 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.18 __res_state F
GLIBC_2.18 __send F
GLIBC_2.18 __sigaction F
GLIBC_2.18 __write F
-GLIBC_2.18 _pthread_cleanup_pop F
-GLIBC_2.18 _pthread_cleanup_pop_restore F
-GLIBC_2.18 _pthread_cleanup_push F
-GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 accept F
GLIBC_2.18 close F
GLIBC_2.18 connect F
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -260,6 +260,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x238
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -582,6 +582,10 @@ GLIBC_2.21 _obstack_begin_1 F
GLIBC_2.21 _obstack_free F
GLIBC_2.21 _obstack_memory_used F
GLIBC_2.21 _obstack_newchunk F
+GLIBC_2.21 _pthread_cleanup_pop F
+GLIBC_2.21 _pthread_cleanup_pop_restore F
+GLIBC_2.21 _pthread_cleanup_push F
+GLIBC_2.21 _pthread_cleanup_push_defer F
GLIBC_2.21 _res D 0x200
GLIBC_2.21 _res_hconf D 0x30
GLIBC_2.21 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.21 __res_state F
GLIBC_2.21 __send F
GLIBC_2.21 __sigaction F
GLIBC_2.21 __write F
-GLIBC_2.21 _pthread_cleanup_pop F
-GLIBC_2.21 _pthread_cleanup_pop_restore F
-GLIBC_2.21 _pthread_cleanup_push F
-GLIBC_2.21 _pthread_cleanup_push_defer F
GLIBC_2.21 accept F
GLIBC_2.21 close F
GLIBC_2.21 connect F
@@ -275,6 +275,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -275,6 +275,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -561,6 +561,10 @@ GLIBC_2.3 _obstack_begin_1 F
GLIBC_2.3 _obstack_free F
GLIBC_2.3 _obstack_memory_used F
GLIBC_2.3 _obstack_newchunk F
+GLIBC_2.3 _pthread_cleanup_pop F
+GLIBC_2.3 _pthread_cleanup_pop_restore F
+GLIBC_2.3 _pthread_cleanup_push F
+GLIBC_2.3 _pthread_cleanup_push_defer F
GLIBC_2.3 _res D 0x238
GLIBC_2.3 _res_hconf D 0x48
GLIBC_2.3 _rpc_dtablesize F
@@ -67,10 +67,6 @@ GLIBC_2.3 __res_state F
GLIBC_2.3 __send F
GLIBC_2.3 __sigaction F
GLIBC_2.3 __write F
-GLIBC_2.3 _pthread_cleanup_pop F
-GLIBC_2.3 _pthread_cleanup_pop_restore F
-GLIBC_2.3 _pthread_cleanup_push F
-GLIBC_2.3 _pthread_cleanup_push_defer F
GLIBC_2.3 accept F
GLIBC_2.3 close F
GLIBC_2.3 connect F
@@ -627,6 +627,10 @@ GLIBC_2.17 _obstack_begin_1 F
GLIBC_2.17 _obstack_free F
GLIBC_2.17 _obstack_memory_used F
GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 _res D 0x238
GLIBC_2.17 _res_hconf D 0x48
GLIBC_2.17 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
GLIBC_2.17 __write F
-GLIBC_2.17 _pthread_cleanup_pop F
-GLIBC_2.17 _pthread_cleanup_pop_restore F
-GLIBC_2.17 _pthread_cleanup_push F
-GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 accept F
GLIBC_2.17 close F
GLIBC_2.17 connect F
@@ -500,6 +500,10 @@ GLIBC_2.33 _obstack_begin_1 F
GLIBC_2.33 _obstack_free F
GLIBC_2.33 _obstack_memory_used F
GLIBC_2.33 _obstack_newchunk F
+GLIBC_2.33 _pthread_cleanup_pop F
+GLIBC_2.33 _pthread_cleanup_pop_restore F
+GLIBC_2.33 _pthread_cleanup_push F
+GLIBC_2.33 _pthread_cleanup_push_defer F
GLIBC_2.33 _res D 0x200
GLIBC_2.33 _res_hconf D 0x30
GLIBC_2.33 _setjmp F
@@ -42,10 +42,6 @@ GLIBC_2.33 __res_state F
GLIBC_2.33 __send F
GLIBC_2.33 __sigaction F
GLIBC_2.33 __write F
-GLIBC_2.33 _pthread_cleanup_pop F
-GLIBC_2.33 _pthread_cleanup_pop_restore F
-GLIBC_2.33 _pthread_cleanup_push F
-GLIBC_2.33 _pthread_cleanup_push_defer F
GLIBC_2.33 accept F
GLIBC_2.33 call_once F
GLIBC_2.33 close F
@@ -521,6 +521,10 @@ GLIBC_2.27 _obstack_begin_1 F
GLIBC_2.27 _obstack_free F
GLIBC_2.27 _obstack_memory_used F
GLIBC_2.27 _obstack_newchunk F
+GLIBC_2.27 _pthread_cleanup_pop F
+GLIBC_2.27 _pthread_cleanup_pop_restore F
+GLIBC_2.27 _pthread_cleanup_push F
+GLIBC_2.27 _pthread_cleanup_push_defer F
GLIBC_2.27 _res D 0x238
GLIBC_2.27 _res_hconf D 0x48
GLIBC_2.27 _rpc_dtablesize F
@@ -43,10 +43,6 @@ GLIBC_2.27 __res_state F
GLIBC_2.27 __send F
GLIBC_2.27 __sigaction F
GLIBC_2.27 __write F
-GLIBC_2.27 _pthread_cleanup_pop F
-GLIBC_2.27 _pthread_cleanup_pop_restore F
-GLIBC_2.27 _pthread_cleanup_push F
-GLIBC_2.27 _pthread_cleanup_push_defer F
GLIBC_2.27 accept F
GLIBC_2.27 close F
GLIBC_2.27 connect F
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -519,6 +519,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
@@ -48,10 +48,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -505,6 +505,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -505,6 +505,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -267,6 +267,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
@@ -547,6 +547,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
@@ -508,6 +508,10 @@ GLIBC_2.2.5 _obstack_begin_1 F
GLIBC_2.2.5 _obstack_free F
GLIBC_2.2.5 _obstack_memory_used F
GLIBC_2.2.5 _obstack_newchunk F
+GLIBC_2.2.5 _pthread_cleanup_pop F
+GLIBC_2.2.5 _pthread_cleanup_pop_restore F
+GLIBC_2.2.5 _pthread_cleanup_push F
+GLIBC_2.2.5 _pthread_cleanup_push_defer F
GLIBC_2.2.5 _res D 0x238
GLIBC_2.2.5 _res_hconf D 0x48
GLIBC_2.2.5 _rpc_dtablesize F
@@ -46,10 +46,6 @@ GLIBC_2.2.5 __res_state F
GLIBC_2.2.5 __send F
GLIBC_2.2.5 __sigaction F
GLIBC_2.2.5 __write F
-GLIBC_2.2.5 _pthread_cleanup_pop F
-GLIBC_2.2.5 _pthread_cleanup_pop_restore F
-GLIBC_2.2.5 _pthread_cleanup_push F
-GLIBC_2.2.5 _pthread_cleanup_push_defer F
GLIBC_2.2.5 accept F
GLIBC_2.2.5 close F
GLIBC_2.2.5 connect F
@@ -542,6 +542,10 @@ GLIBC_2.16 _obstack_begin_1 F
GLIBC_2.16 _obstack_free F
GLIBC_2.16 _obstack_memory_used F
GLIBC_2.16 _obstack_newchunk F
+GLIBC_2.16 _pthread_cleanup_pop F
+GLIBC_2.16 _pthread_cleanup_pop_restore F
+GLIBC_2.16 _pthread_cleanup_push F
+GLIBC_2.16 _pthread_cleanup_push_defer F
GLIBC_2.16 _res D 0x200
GLIBC_2.16 _res_hconf D 0x30
GLIBC_2.16 _rpc_dtablesize F
@@ -44,10 +44,6 @@ GLIBC_2.16 __res_state F
GLIBC_2.16 __send F
GLIBC_2.16 __sigaction F
GLIBC_2.16 __write F
-GLIBC_2.16 _pthread_cleanup_pop F
-GLIBC_2.16 _pthread_cleanup_pop_restore F
-GLIBC_2.16 _pthread_cleanup_push F
-GLIBC_2.16 _pthread_cleanup_push_defer F
GLIBC_2.16 accept F
GLIBC_2.16 close F
GLIBC_2.16 connect F