[v3,09/37] nptl: Move __pthread_unwind_next into libc
Commit Message
It's necessary to stub out __libc_disable_asynccancel and
__libc_enable_asynccancel via rtld-stubbed-symbols because the new
direct references to the unwinder result in symbol conflicts when the
rtld exception handling from libc is linked in during the construction
of librtld.map.
unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs
the functions that were previously only used in libpthread.
The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are
no longer needed, so switch them to hidden symbols.
The symbol __pthread_unwind_next has been moved using
scripts/move-symbol-to-libc.py.
---
elf/Makefile | 2 +
include/setjmp.h | 4 +-
nptl/Makefile | 4 +-
nptl/Versions | 4 +-
nptl/forward.c | 6 --
nptl/nptl-init.c | 1 -
nptl/pthreadP.h | 8 ++-
nptl/pthread_cancel.c | 10 ++-
nptl/pthread_exit.c | 11 +++-
nptl/unwind.c | 14 ++--
setjmp/Versions | 4 --
sysdeps/arm/Makefile | 5 --
sysdeps/arm/nptl/unwind-forcedunwind.c | 25 --------
sysdeps/arm/pt-arm-unwind-resume.S | 20 ------
sysdeps/generic/unwind-resume.c | 14 ++++
.../unwind-resume.c} | 5 +-
sysdeps/nptl/pthread-functions.h | 2 -
sysdeps/nptl/unwind-forcedunwind.c | 64 -------------------
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
.../sysv/linux/aarch64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
.../unix/sysv/linux/alpha/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
.../unix/sysv/linux/arc/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
.../unix/sysv/linux/arm/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
.../unix/sysv/linux/arm/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
.../unix/sysv/linux/csky/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
.../unix/sysv/linux/hppa/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
.../unix/sysv/linux/i386/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/Makefile | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
.../unix/sysv/linux/ia64/libpthread.abilist | 1 -
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../linux/m68k/coldfire/libpthread.abilist | 1 -
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../sysv/linux/m68k/m680x0/libpthread.abilist | 1 -
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../linux/microblaze/be/libpthread.abilist | 1 -
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../linux/microblaze/le/libpthread.abilist | 1 -
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../sysv/linux/mips/mips32/libpthread.abilist | 1 -
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../sysv/linux/mips/mips64/libpthread.abilist | 1 -
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
.../unix/sysv/linux/nios2/libpthread.abilist | 1 -
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../powerpc/powerpc32/libpthread.abilist | 1 -
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../powerpc/powerpc64/be/libpthread.abilist | 1 -
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../powerpc/powerpc64/le/libpthread.abilist | 1 -
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../sysv/linux/riscv/rv32/libpthread.abilist | 1 -
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
.../sysv/linux/riscv/rv64/libpthread.abilist | 1 -
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
.../linux/s390/s390-32/libpthread.abilist | 1 -
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
.../linux/s390/s390-64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
.../unix/sysv/linux/sh/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
.../unix/sysv/linux/sh/le/libpthread.abilist | 1 -
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../linux/sparc/sparc32/libpthread.abilist | 1 -
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../linux/sparc/sparc64/libpthread.abilist | 1 -
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../sysv/linux/x86_64/64/libpthread.abilist | 1 -
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
.../sysv/linux/x86_64/x32/libpthread.abilist | 1 -
80 files changed, 122 insertions(+), 176 deletions(-)
delete mode 100644 sysdeps/arm/nptl/unwind-forcedunwind.c
delete mode 100644 sysdeps/arm/pt-arm-unwind-resume.S
rename sysdeps/{unix/sysv/linux/ia64/unwind-forcedunwind.c => ia64/unwind-resume.c} (87%)
delete mode 100644 sysdeps/nptl/unwind-forcedunwind.c
Comments
On 16/03/2021 14:29, Florian Weimer via Libc-alpha wrote:
> It's necessary to stub out __libc_disable_asynccancel and
> __libc_enable_asynccancel via rtld-stubbed-symbols because the new
> direct references to the unwinder result in symbol conflicts when the
> rtld exception handling from libc is linked in during the construction
> of librtld.map.
From where exactly these come from? The *assynccancel should not be
generated for rtld-* objects.
>
> unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs
> the functions that were previously only used in libpthread.
>
> The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are
> no longer needed, so switch them to hidden symbols.
>
> The symbol __pthread_unwind_next has been moved using
> scripts/move-symbol-to-libc.py.
LGTM, thanks.
Reviewed-by: Adhemerva Zanella <adhemerval.zanella@linaro.org>
> ---
> elf/Makefile | 2 +
> include/setjmp.h | 4 +-
> nptl/Makefile | 4 +-
> nptl/Versions | 4 +-
> nptl/forward.c | 6 --
> nptl/nptl-init.c | 1 -
> nptl/pthreadP.h | 8 ++-
> nptl/pthread_cancel.c | 10 ++-
> nptl/pthread_exit.c | 11 +++-
> nptl/unwind.c | 14 ++--
> setjmp/Versions | 4 --
> sysdeps/arm/Makefile | 5 --
> sysdeps/arm/nptl/unwind-forcedunwind.c | 25 --------
> sysdeps/arm/pt-arm-unwind-resume.S | 20 ------
> sysdeps/generic/unwind-resume.c | 14 ++++
> .../unwind-resume.c} | 5 +-
> sysdeps/nptl/pthread-functions.h | 2 -
> sysdeps/nptl/unwind-forcedunwind.c | 64 -------------------
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> .../sysv/linux/aarch64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
> .../unix/sysv/linux/alpha/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> .../unix/sysv/linux/arc/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> .../unix/sysv/linux/arm/be/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> .../unix/sysv/linux/arm/le/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> .../unix/sysv/linux/csky/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> .../unix/sysv/linux/hppa/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> .../unix/sysv/linux/i386/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/ia64/Makefile | 2 +-
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> .../unix/sysv/linux/ia64/libpthread.abilist | 1 -
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../linux/m68k/coldfire/libpthread.abilist | 1 -
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../sysv/linux/m68k/m680x0/libpthread.abilist | 1 -
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../linux/microblaze/be/libpthread.abilist | 1 -
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../linux/microblaze/le/libpthread.abilist | 1 -
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips32/libpthread.abilist | 1 -
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/libpthread.abilist | 1 -
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> .../unix/sysv/linux/nios2/libpthread.abilist | 1 -
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../powerpc/powerpc32/libpthread.abilist | 1 -
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../powerpc/powerpc64/be/libpthread.abilist | 1 -
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../powerpc/powerpc64/le/libpthread.abilist | 1 -
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../sysv/linux/riscv/rv32/libpthread.abilist | 1 -
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../sysv/linux/riscv/rv64/libpthread.abilist | 1 -
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../linux/s390/s390-32/libpthread.abilist | 1 -
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> .../linux/s390/s390-64/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> .../unix/sysv/linux/sh/be/libpthread.abilist | 1 -
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> .../unix/sysv/linux/sh/le/libpthread.abilist | 1 -
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../linux/sparc/sparc32/libpthread.abilist | 1 -
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../linux/sparc/sparc64/libpthread.abilist | 1 -
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../sysv/linux/x86_64/64/libpthread.abilist | 1 -
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> .../sysv/linux/x86_64/x32/libpthread.abilist | 1 -
> 80 files changed, 122 insertions(+), 176 deletions(-)
> delete mode 100644 sysdeps/arm/nptl/unwind-forcedunwind.c
> delete mode 100644 sysdeps/arm/pt-arm-unwind-resume.S
> rename sysdeps/{unix/sysv/linux/ia64/unwind-forcedunwind.c => ia64/unwind-resume.c} (87%)
> delete mode 100644 sysdeps/nptl/unwind-forcedunwind.c
>
> diff --git a/elf/Makefile b/elf/Makefile
> index 3b8e13e066..936d4cf276 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -519,6 +519,8 @@ $(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
> # discovery mechanism is not compatible with the libc implementation
> # when compiled for libc.
> rtld-stubbed-symbols = \
> + __libc_disable_asynccancel \
> + __libc_enable_asynccancel \
> calloc \
> free \
> malloc \
> diff --git a/include/setjmp.h b/include/setjmp.h
> index 0a8e4d2eaf..a3936e611d 100644
> --- a/include/setjmp.h
> +++ b/include/setjmp.h
> @@ -20,9 +20,9 @@ extern int __sigjmp_save (jmp_buf __env, int __savemask);
> extern void _longjmp_unwind (jmp_buf env, int val);
>
> extern void __libc_siglongjmp (sigjmp_buf env, int val)
> - __attribute__ ((noreturn));
> + __attribute__ ((noreturn)) attribute_hidden;
> extern void __libc_longjmp (sigjmp_buf env, int val)
> - __attribute__ ((noreturn));
> + __attribute__ ((noreturn)) attribute_hidden;
>
> libc_hidden_proto (_setjmp)
> libc_hidden_proto (__sigsetjmp)
Ok.
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 910d8c7ebf..c1ade91a0b 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -80,6 +80,7 @@ routines = \
> pthread_self \
> pthread_setschedparam \
> pthread_sigmask \
> + unwind \
>
> shared-only-routines = forward
> static-only-routines = pthread_atfork
Ok.
> @@ -229,15 +230,12 @@ libpthread-routines = \
> sem_wait \
> sigaction \
> tpp \
> - unwind \
> - unwind-forcedunwind \
> vars \
> version \
>
> libpthread-shared-only-routines = \
> pt-allocrtsig \
> pt-interp \
> - unwind-forcedunwind \
> version \
>
> # Since cancellation handling is in large parts handled using exceptions
Ok.
> diff --git a/nptl/Versions b/nptl/Versions
> index 49133585e4..8f1cd3f7c4 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -56,6 +56,7 @@ libc {
> }
> GLIBC_2.3.3 {
> __pthread_cleanup_routine;
> + __pthread_unwind_next;
> pthread_attr_setaffinity_np;
> pthread_getaffinity_np;
> }
> @@ -118,6 +119,7 @@ libc {
> __pthread_cond_init; # Used by the C11 threads.
> __pthread_force_elision;
> __pthread_getattr_default_np;
> + __pthread_unwind;
> }
> }
>
> @@ -323,7 +325,6 @@ libpthread {
> __pthread_register_cancel_defer;
> __pthread_unregister_cancel;
> __pthread_unregister_cancel_restore;
> - __pthread_unwind_next;
> pthread_attr_getaffinity_np;
> pthread_barrierattr_getpshared;
> pthread_condattr_getclock;
> @@ -412,6 +413,5 @@ libpthread {
> __pthread_clock_settime;
> __pthread_get_minstack;
> __pthread_initialize_minimal;
> - __pthread_unwind;
> }
> }
Ok.
> diff --git a/nptl/forward.c b/nptl/forward.c
> index 0b607436d4..7a7f54f9d9 100644
> --- a/nptl/forward.c
> +++ b/nptl/forward.c
> @@ -123,9 +123,3 @@ FORWARD (__pthread_setcancelstate, (int state, int *oldstate),
> strong_alias (__pthread_setcancelstate, pthread_setcancelstate)
>
> FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
> -
> -FORWARD_NORETURN (__pthread_unwind,
> - void attribute_hidden __attribute ((noreturn))
> - __cleanup_fct_attribute attribute_compat_text_section,
> - (__pthread_unwind_buf_t *buf), (buf),
> - __safe_fatal ())
Ok.
> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index c2e02b1bf2..d30e8a9bdf 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -95,7 +95,6 @@ static const struct pthread_functions pthread_functions =
> .ptr___pthread_getspecific = __pthread_getspecific,
> .ptr___pthread_setspecific = __pthread_setspecific,
> .ptr_nthreads = &__nptl_nthreads,
> - .ptr___pthread_unwind = &__pthread_unwind,
> .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
> .ptr__nptl_setxid = __nptl_setxid,
> .ptr_set_robust = __nptl_set_robust
Ok.
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 9f2990217c..f78bf03a52 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -271,19 +271,21 @@ extern void __pthread_unwind (__pthread_unwind_buf_t *__buf)
> weak_function
> #endif
> ;
> +libc_hidden_proto (__pthread_unwind)
> extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
> __cleanup_fct_attribute __attribute ((__noreturn__))
> #ifndef SHARED
> weak_function
> #endif
> ;
> +/* NB: No hidden proto for __pthread_unwind_next: inside glibc, the
> + legacy unwinding mechanism is used. */
> +
> +#if IS_IN (libpthread)
> extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
> __cleanup_fct_attribute;
> extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
> __cleanup_fct_attribute;
> -#if IS_IN (libpthread)
> -hidden_proto (__pthread_unwind)
> -hidden_proto (__pthread_unwind_next)
> hidden_proto (__pthread_register_cancel)
> hidden_proto (__pthread_unregister_cancel)
> # ifdef SHARED
Ok.
> diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
> index a011d72fa1..060484cdc8 100644
> --- a/nptl/pthread_cancel.c
> +++ b/nptl/pthread_cancel.c
> @@ -23,6 +23,9 @@
> #include <atomic.h>
> #include <sysdep.h>
> #include <unistd.h>
> +#include <unwind-link.h>
> +#include <stdio.h>
> +#include <gnu/lib-names.h>
>
> int
> __pthread_cancel (pthread_t th)
> @@ -36,7 +39,12 @@ __pthread_cancel (pthread_t th)
>
> #ifdef SHARED
> /* Trigger an error if libgcc_s cannot be loaded. */
> - __pthread_unwind_link_get ();
> + {
> + struct unwind_link *unwind_link = __libc_unwind_link_get ();
> + if (unwind_link == NULL)
> + __libc_fatal (LIBGCC_S_SO
> + " must be installed for pthread_cancel to work\n");
> + }
Maybe add a inline function for this since it is used on multiple places?
> #endif
> int result = 0;
> int oldval;
Ok.
> diff --git a/nptl/pthread_exit.c b/nptl/pthread_exit.c
> index 4afc406268..aed8c12e17 100644
> --- a/nptl/pthread_exit.c
> +++ b/nptl/pthread_exit.c
> @@ -18,11 +18,20 @@
>
> #include <stdlib.h>
> #include "pthreadP.h"
> -
> +#include <unwind-link.h>
> +#include <stdio.h>
> +#include <gnu/lib-names.h>
>
> void
> __pthread_exit (void *value)
> {
> + {
> + struct unwind_link *unwind_link = __libc_unwind_link_get ();
> + if (unwind_link == NULL)
> + __libc_fatal (LIBGCC_S_SO
> + " must be installed for pthread_exit to work\n");
> + }
> +
> THREAD_SETMEM (THREAD_SELF, result, value);
>
> __do_cancel ();
Ok.
> diff --git a/nptl/unwind.c b/nptl/unwind.c
> index 9c7ed7d7ca..25a2ca32e6 100644
> --- a/nptl/unwind.c
> +++ b/nptl/unwind.c
> @@ -25,6 +25,7 @@
> #include "pthreadP.h"
> #include <libc-diag.h>
> #include <jmpbuf-unwind.h>
> +#include <shlib-compat.h>
>
> #ifdef _STACK_GROWS_DOWN
> # define FRAME_LEFT(frame, other, adj) \
> @@ -134,15 +135,20 @@ __pthread_unwind (__pthread_unwind_buf_t *buf)
> /* We better do not get here. */
> abort ();
> }
> -hidden_def (__pthread_unwind)
> -
> +libc_hidden_def (__pthread_unwind)
>
> void
> __cleanup_fct_attribute __attribute ((noreturn))
> -__pthread_unwind_next (__pthread_unwind_buf_t *buf)
> +___pthread_unwind_next (__pthread_unwind_buf_t *buf)
> {
> struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
>
> __pthread_unwind ((__pthread_unwind_buf_t *) ibuf->priv.data.prev);
> }
> -hidden_def (__pthread_unwind_next)
> +versioned_symbol (libc, ___pthread_unwind_next, __pthread_unwind_next,
> + GLIBC_2_34);
> +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_34)
> +strong_alias (___pthread_unwind_next, __pthread_unwind_next_alias)
> +compat_symbol (libc, __pthread_unwind_next_alias, __pthread_unwind_next,
> + GLIBC_2_3_3);
> +#endif
Ok.
> diff --git a/setjmp/Versions b/setjmp/Versions
> index 2baa49ae8a..3c7cf87780 100644
> --- a/setjmp/Versions
> +++ b/setjmp/Versions
> @@ -9,8 +9,4 @@ libc {
> # s*
> setjmp;
> }
> - GLIBC_PRIVATE {
> - # helper functions
> - __libc_longjmp; __libc_siglongjmp;
> - }
> }
Ok.
> diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
> index ad2042b93a..fb4164f0d9 100644
> --- a/sysdeps/arm/Makefile
> +++ b/sysdeps/arm/Makefile
> @@ -63,8 +63,3 @@ ifeq ($(subdir),rt)
> librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
> librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
> endif
> -
> -ifeq ($(subdir),nptl)
> -libpthread-sysdep_routines += pt-arm-unwind-resume
> -libpthread-shared-only-routines += pt-arm-unwind-resume
> -endif
Ok.
> diff --git a/sysdeps/arm/nptl/unwind-forcedunwind.c b/sysdeps/arm/nptl/unwind-forcedunwind.c
> deleted file mode 100644
> index 61db34c0b5..0000000000
> --- a/sysdeps/arm/nptl/unwind-forcedunwind.c
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -/* Unwinder function forwarders for libpthread. Arm version.
> - Copyright (C) 2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public License as
> - published by the Free Software Foundation; either version 2.1 of the
> - License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <sysdeps/nptl/unwind-forcedunwind.c>
> -
> -void *
> -__unwind_link_get_resume (void)
> -{
> - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_Resume);
> -}
Ok.
> diff --git a/sysdeps/arm/pt-arm-unwind-resume.S b/sysdeps/arm/pt-arm-unwind-resume.S
> deleted file mode 100644
> index c056eb38d0..0000000000
> --- a/sysdeps/arm/pt-arm-unwind-resume.S
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -/* _Unwind_Resume wrapper for ARM EABI.
> - Copyright (C) 2015-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public License as
> - published by the Free Software Foundation; either version 2.1 of the
> - License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library. If not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -/* The implementation in libpthread is identical to the one in libc. */
> -#include <sysdeps/arm/arm-unwind-resume.S>
Ok.
> diff --git a/sysdeps/generic/unwind-resume.c b/sysdeps/generic/unwind-resume.c
> index 9e63762bf1..66dbb67e81 100644
> --- a/sysdeps/generic/unwind-resume.c
> +++ b/sysdeps/generic/unwind-resume.c
> @@ -44,3 +44,17 @@ __gcc_personality_v0 PERSONALITY_PROTO
> {
> return UNWIND_LINK_PTR (link (), personality) PERSONALITY_ARGS;
> }
> +
> +_Unwind_Reason_Code
> +_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
> + void *stop_argument)
> +{
> + return UNWIND_LINK_PTR (link (), _Unwind_ForcedUnwind)
> + (exc, stop, stop_argument);
> +}
> +
> +_Unwind_Word
> +_Unwind_GetCFA (struct _Unwind_Context *context)
> +{
> + return UNWIND_LINK_PTR (link (), _Unwind_GetCFA) (context);
> +}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/sysdeps/ia64/unwind-resume.c
> similarity index 87%
> rename from sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
> rename to sysdeps/ia64/unwind-resume.c
> index eaed6cf2ef..f8cf447162 100644
> --- a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
> +++ b/sysdeps/ia64/unwind-resume.c
> @@ -16,11 +16,10 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -#include <sysdeps/nptl/unwind-forcedunwind.c>
> +#include <sysdeps/generic/unwind-resume.c>
>
> _Unwind_Word
> _Unwind_GetBSP (struct _Unwind_Context *context)
> {
> - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetBSP)
> - (context);
> + return UNWIND_LINK_PTR (link (), _Unwind_GetBSP) (context);
> }
Ok.
> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index 6ef7602cb9..280655fe40 100644
> --- a/sysdeps/nptl/pthread-functions.h
> +++ b/sysdeps/nptl/pthread-functions.h
> @@ -57,8 +57,6 @@ struct pthread_functions
> int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
> #define HAVE_PTR_NTHREADS
> unsigned int *ptr_nthreads;
> - void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
> - __attribute ((noreturn)) __cleanup_fct_attribute;
> void (*ptr__nptl_deallocate_tsd) (void);
> int (*ptr__nptl_setxid) (struct xid_command *);
> void (*ptr_set_robust) (struct pthread *);
Ok.
> diff --git a/sysdeps/nptl/unwind-forcedunwind.c b/sysdeps/nptl/unwind-forcedunwind.c
> deleted file mode 100644
> index c0234670cf..0000000000
> --- a/sysdeps/nptl/unwind-forcedunwind.c
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> - Contributed by Jakub Jelinek <jakub@redhat.com>.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public License as
> - published by the Free Software Foundation; either version 2.1 of the
> - License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; see the file COPYING.LIB. If
> - not, see <https://www.gnu.org/licenses/>. */
> -
> -#include <stdio.h>
> -#include <unwind-link.h>
> -#include <pthreadP.h>
> -#include <sysdep.h>
> -#include <gnu/lib-names.h>
> -#include <unwind-resume.h>
> -
> -struct unwind_link *
> -__pthread_unwind_link_get (void)
> -{
> - struct unwind_link *unwind_link = __libc_unwind_link_get ();
> - if (unwind_link == NULL)
> - __libc_fatal (LIBGCC_S_SO
> - " must be installed for pthread_cancel to work\n");
> - return unwind_link;
> -}
> -
> -#if !HAVE_ARCH_UNWIND_RESUME
> -void
> -_Unwind_Resume (struct _Unwind_Exception *exc)
> -{
> - UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_Resume) (exc);
> -}
> -#endif
> -
> -_Unwind_Reason_Code
> -__gcc_personality_v0 PERSONALITY_PROTO
> -{
> - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), personality)
> - PERSONALITY_ARGS;
> -}
> -
> -_Unwind_Reason_Code
> -_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
> - void *stop_argument)
> -{
> - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_ForcedUnwind)
> - (exc, stop, stop_argument);
> -}
> -
> -_Unwind_Word
> -_Unwind_GetCFA (struct _Unwind_Context *context)
> -{
> - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetCFA)
> - (context);
> -}
Ok.
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 8a11066f9e..a4eec97fd0 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -340,6 +340,7 @@ GLIBC_2.17 __progname D 0x8
> GLIBC_2.17 __progname_full D 0x8
> GLIBC_2.17 __pthread_cleanup_routine F
> GLIBC_2.17 __pthread_once F
> +GLIBC_2.17 __pthread_unwind_next F
> GLIBC_2.17 __ptsname_r_chk F
> GLIBC_2.17 __pwrite64 F
> GLIBC_2.17 __rawmemchr F
> @@ -2183,5 +2184,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index a57e807cd0..03f9309528 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.17 __pthread_rwlock_wrlock F
> GLIBC_2.17 __pthread_setspecific F
> GLIBC_2.17 __pthread_unregister_cancel F
> GLIBC_2.17 __pthread_unregister_cancel_restore F
> -GLIBC_2.17 __pthread_unwind_next F
> GLIBC_2.17 __pwrite64 F
> GLIBC_2.17 __read F
> GLIBC_2.17 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index b62c855163..cfd43859bc 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2154,6 +2154,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2264,6 +2265,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 059ae76802..62c3734ee1 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index cd549c654b..f4a38131a0 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -329,6 +329,7 @@ GLIBC_2.32 __progname D 0x4
> GLIBC_2.32 __progname_full D 0x4
> GLIBC_2.32 __pthread_cleanup_routine F
> GLIBC_2.32 __pthread_once F
> +GLIBC_2.32 __pthread_unwind_next F
> GLIBC_2.32 __ptsname_r_chk F
> GLIBC_2.32 __pwrite64 F
> GLIBC_2.32 __rawmemchr F
> @@ -1943,5 +1944,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 55970eb845..43c2308c10 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -34,7 +34,6 @@ GLIBC_2.32 __pthread_rwlock_wrlock F
> GLIBC_2.32 __pthread_setspecific F
> GLIBC_2.32 __pthread_unregister_cancel F
> GLIBC_2.32 __pthread_unregister_cancel_restore F
> -GLIBC_2.32 __pthread_unwind_next F
> GLIBC_2.32 __pwrite64 F
> GLIBC_2.32 __read F
> GLIBC_2.32 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 03e5389852..9e6b989de2 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -159,6 +159,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _Exit F
> @@ -490,6 +491,7 @@ GLIBC_2.4 __progname D 0x4
> GLIBC_2.4 __progname_full D 0x4
> GLIBC_2.4 __pthread_cleanup_routine F
> GLIBC_2.4 __pthread_once F
> +GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __ptsname_r_chk F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __rawmemchr F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 2e3d644ed9..9e897ccaac 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
> GLIBC_2.4 __pthread_setspecific F
> GLIBC_2.4 __pthread_unregister_cancel F
> GLIBC_2.4 __pthread_unregister_cancel_restore F
> -GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __read F
> GLIBC_2.4 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index ac2fcf7b14..319cf8474a 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -156,6 +156,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _Exit F
> @@ -487,6 +488,7 @@ GLIBC_2.4 __progname D 0x4
> GLIBC_2.4 __progname_full D 0x4
> GLIBC_2.4 __pthread_cleanup_routine F
> GLIBC_2.4 __pthread_once F
> +GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __ptsname_r_chk F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __rawmemchr F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 2e3d644ed9..9e897ccaac 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
> GLIBC_2.4 __pthread_setspecific F
> GLIBC_2.4 __pthread_unregister_cancel F
> GLIBC_2.4 __pthread_unregister_cancel_restore F
> -GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __read F
> GLIBC_2.4 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 336a59110e..a9094c6575 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -333,6 +333,7 @@ GLIBC_2.29 __progname D 0x4
> GLIBC_2.29 __progname_full D 0x4
> GLIBC_2.29 __pthread_cleanup_routine F
> GLIBC_2.29 __pthread_once F
> +GLIBC_2.29 __pthread_unwind_next F
> GLIBC_2.29 __ptsname_r_chk F
> GLIBC_2.29 __pwrite64 F
> GLIBC_2.29 __rawmemchr F
> @@ -2127,5 +2128,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 78e69d3e06..02ecea2de5 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -34,7 +34,6 @@ GLIBC_2.29 __pthread_rwlock_wrlock F
> GLIBC_2.29 __pthread_setspecific F
> GLIBC_2.29 __pthread_unregister_cancel F
> GLIBC_2.29 __pthread_unregister_cancel_restore F
> -GLIBC_2.29 __pthread_unwind_next F
> GLIBC_2.29 __pwrite64 F
> GLIBC_2.29 __read F
> GLIBC_2.29 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 6d40c40268..63e458dc99 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2003,6 +2003,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2085,6 +2086,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 96c70fb45e..98c5811d37 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 2022f82d81..428ff25c25 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2168,6 +2168,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2252,6 +2253,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index f2be012ea9..13df0ccca6 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
> index 97fc7df0b1..f6a08d15d0 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Makefile
> +++ b/sysdeps/unix/sysv/linux/ia64/Makefile
> @@ -23,7 +23,7 @@ librt-shared-only-routines += rt-sysdep
> endif
>
> ifeq ($(subdir),nptl)
> -libpthread-sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
> +sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
> endif
>
> ifeq ($(subdir),conform)
Ok.
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index b9eeaabb01..3556b0eac4 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2035,6 +2035,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2117,6 +2118,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 3698acd3e9..78c683810a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 5a099fb3d0..245ae8da1f 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -160,6 +160,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _Exit F
> @@ -476,6 +477,7 @@ GLIBC_2.4 __progname D 0x4
> GLIBC_2.4 __progname_full D 0x4
> GLIBC_2.4 __pthread_cleanup_routine F
> GLIBC_2.4 __pthread_once F
> +GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __ptsname_r_chk F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __rawmemchr F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 2e3d644ed9..9e897ccaac 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
> GLIBC_2.4 __pthread_setspecific F
> GLIBC_2.4 __pthread_unregister_cancel F
> GLIBC_2.4 __pthread_unregister_cancel_restore F
> -GLIBC_2.4 __pthread_unwind_next F
> GLIBC_2.4 __pwrite64 F
> GLIBC_2.4 __read F
> GLIBC_2.4 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index f81c9cc523..fba3ac0138 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2112,6 +2112,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2197,6 +2198,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index f2be012ea9..13df0ccca6 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index ce50516bc6..6a6d813b2c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.18 __progname D 0x4
> GLIBC_2.18 __progname_full D 0x4
> GLIBC_2.18 __pthread_cleanup_routine F
> GLIBC_2.18 __pthread_once F
> +GLIBC_2.18 __pthread_unwind_next F
> GLIBC_2.18 __ptsname_r_chk F
> GLIBC_2.18 __pwrite64 F
> GLIBC_2.18 __rawmemchr F
> @@ -2178,5 +2179,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 73c70d5c87..51975cabbb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.18 __pthread_rwlock_wrlock F
> GLIBC_2.18 __pthread_setspecific F
> GLIBC_2.18 __pthread_unregister_cancel F
> GLIBC_2.18 __pthread_unregister_cancel_restore F
> -GLIBC_2.18 __pthread_unwind_next F
> GLIBC_2.18 __pwrite64 F
> GLIBC_2.18 __read F
> GLIBC_2.18 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 37ecc7c967..7138bb3fe7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.18 __progname D 0x4
> GLIBC_2.18 __progname_full D 0x4
> GLIBC_2.18 __pthread_cleanup_routine F
> GLIBC_2.18 __pthread_once F
> +GLIBC_2.18 __pthread_unwind_next F
> GLIBC_2.18 __ptsname_r_chk F
> GLIBC_2.18 __pwrite64 F
> GLIBC_2.18 __rawmemchr F
> @@ -2175,5 +2176,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 73c70d5c87..51975cabbb 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.18 __pthread_rwlock_wrlock F
> GLIBC_2.18 __pthread_setspecific F
> GLIBC_2.18 __pthread_unregister_cancel F
> GLIBC_2.18 __pthread_unregister_cancel_restore F
> -GLIBC_2.18 __pthread_unwind_next F
> GLIBC_2.18 __pwrite64 F
> GLIBC_2.18 __read F
> GLIBC_2.18 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 6d50fcc64f..d070746259 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2086,6 +2086,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2168,6 +2169,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index faa1ad9d1c..8829753707 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -196,7 +196,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index b4e05e270d..d40d0079fc 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2084,6 +2084,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2166,6 +2167,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index faa1ad9d1c..8829753707 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -196,7 +196,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 71d184c2aa..d56b5a25cb 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2092,6 +2092,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x200
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2174,6 +2175,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 1e792c6705..d334efb37c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2085,6 +2085,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x400
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2168,6 +2169,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 5afc3e8022..4422b5ca92 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -378,6 +378,7 @@ GLIBC_2.21 __progname D 0x4
> GLIBC_2.21 __progname_full D 0x4
> GLIBC_2.21 __pthread_cleanup_routine F
> GLIBC_2.21 __pthread_once F
> +GLIBC_2.21 __pthread_unwind_next F
> GLIBC_2.21 __ptsname_r_chk F
> GLIBC_2.21 __pwrite64 F
> GLIBC_2.21 __rawmemchr F
> @@ -2216,5 +2217,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 5db41bc85b..f370adca8d 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.21 __pthread_rwlock_wrlock F
> GLIBC_2.21 __pthread_setspecific F
> GLIBC_2.21 __pthread_unregister_cancel F
> GLIBC_2.21 __pthread_unregister_cancel_restore F
> -GLIBC_2.21 __pthread_unwind_next F
> GLIBC_2.21 __pwrite64 F
> GLIBC_2.21 __read F
> GLIBC_2.21 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 4bfae8faa6..8bd6dd5b48 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2116,6 +2116,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> @@ -2224,6 +2225,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 995c88cbce..e354162563 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index dc102f7f29..6bf7342f4c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2149,6 +2149,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 getcontext F
> GLIBC_2.3.3 gnu_dev_major F
> @@ -2257,6 +2258,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 9f019c4eac..2d616e24cd 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1984,6 +1984,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2087,6 +2088,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 07428bd3d6..3bedf42d7a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -186,7 +186,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index f1217ffca5..247c8f77cf 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -426,6 +426,7 @@ GLIBC_2.17 __progname D 0x8
> GLIBC_2.17 __progname_full D 0x8
> GLIBC_2.17 __pthread_cleanup_routine F
> GLIBC_2.17 __pthread_once F
> +GLIBC_2.17 __pthread_unwind_next F
> GLIBC_2.17 __ptsname_r_chk F
> GLIBC_2.17 __pwrite64 F
> GLIBC_2.17 __rawmemchr F
> @@ -2378,5 +2379,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index a57e807cd0..03f9309528 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.17 __pthread_rwlock_wrlock F
> GLIBC_2.17 __pthread_setspecific F
> GLIBC_2.17 __pthread_unregister_cancel F
> GLIBC_2.17 __pthread_unregister_cancel_restore F
> -GLIBC_2.17 __pthread_unwind_next F
> GLIBC_2.17 __pwrite64 F
> GLIBC_2.17 __read F
> GLIBC_2.17 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index afaabf996e..1af16292a7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -326,6 +326,7 @@ GLIBC_2.33 __progname D 0x4
> GLIBC_2.33 __progname_full D 0x4
> GLIBC_2.33 __pthread_cleanup_routine F
> GLIBC_2.33 __pthread_once F
> +GLIBC_2.33 __pthread_unwind_next F
> GLIBC_2.33 __ptsname_r_chk F
> GLIBC_2.33 __pwrite64 F
> GLIBC_2.33 __rawmemchr F
> @@ -1945,5 +1946,6 @@ GLIBC_2.33 wscanf F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index ddf52b427a..a9958f0b67 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -34,7 +34,6 @@ GLIBC_2.33 __pthread_rwlock_wrlock F
> GLIBC_2.33 __pthread_setspecific F
> GLIBC_2.33 __pthread_unregister_cancel F
> GLIBC_2.33 __pthread_unregister_cancel_restore F
> -GLIBC_2.33 __pthread_unwind_next F
> GLIBC_2.33 __pwrite64 F
> GLIBC_2.33 __read F
> GLIBC_2.33 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 28563980d5..54038ac5ba 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -337,6 +337,7 @@ GLIBC_2.27 __progname D 0x8
> GLIBC_2.27 __progname_full D 0x8
> GLIBC_2.27 __pthread_cleanup_routine F
> GLIBC_2.27 __pthread_once F
> +GLIBC_2.27 __pthread_unwind_next F
> GLIBC_2.27 __ptsname_r_chk F
> GLIBC_2.27 __pwrite64 F
> GLIBC_2.27 __rawmemchr F
> @@ -2145,5 +2146,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index b12ec34091..0c6ae5b20c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.27 __pthread_rwlock_wrlock F
> GLIBC_2.27 __pthread_setspecific F
> GLIBC_2.27 __pthread_unregister_cancel F
> GLIBC_2.27 __pthread_unregister_cancel_restore F
> -GLIBC_2.27 __pthread_unwind_next F
> GLIBC_2.27 __pwrite64 F
> GLIBC_2.27 __read F
> GLIBC_2.27 __res_state F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 6cfde17d64..1e896254ef 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2125,6 +2125,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2222,6 +2223,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 738e9ab535..d72648c9dd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -198,7 +198,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 16b2483535..3cf10b2ab2 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2029,6 +2029,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2123,6 +2124,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 13a2e8ef91..09c03d66b8 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -190,7 +190,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index a6fd6eb894..f7bded858a 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2007,6 +2007,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2092,6 +2093,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 96c70fb45e..98c5811d37 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index f4ba7b4ee8..c8ec299eac 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2007,6 +2007,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2089,6 +2090,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 96c70fb45e..98c5811d37 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 70c2a92dfc..64529443e9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2119,6 +2119,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x104
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2213,6 +2214,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 059ae76802..62c3734ee1 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 6f323b3705..5c5ad0af63 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2058,6 +2058,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2140,6 +2141,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 3698acd3e9..78c683810a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_attr_setstack F
> GLIBC_2.3.3 pthread_attr_setstacksize F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 35503c7361..1805cd6b9b 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2016,6 +2016,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
> GLIBC_2.3.2 pthread_cond_wait F
> GLIBC_2.3.2 strptime_l F
> GLIBC_2.3.3 __pthread_cleanup_routine F
> +GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 _sys_siglist D 0x208
> GLIBC_2.3.3 gnu_dev_major F
> GLIBC_2.3.3 gnu_dev_makedev F
> @@ -2099,6 +2100,7 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 7636fde610..31bb6837f9 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -188,7 +188,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
> GLIBC_2.3.3 __pthread_register_cancel_defer F
> GLIBC_2.3.3 __pthread_unregister_cancel F
> GLIBC_2.3.3 __pthread_unregister_cancel_restore F
> -GLIBC_2.3.3 __pthread_unwind_next F
> GLIBC_2.3.3 pthread_attr_getaffinity_np F
> GLIBC_2.3.3 pthread_barrierattr_getpshared F
> GLIBC_2.3.3 pthread_condattr_getclock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 3af0b4def9..780679cb52 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -341,6 +341,7 @@ GLIBC_2.16 __progname D 0x4
> GLIBC_2.16 __progname_full D 0x4
> GLIBC_2.16 __pthread_cleanup_routine F
> GLIBC_2.16 __pthread_once F
> +GLIBC_2.16 __pthread_unwind_next F
> GLIBC_2.16 __ptsname_r_chk F
> GLIBC_2.16 __pwrite64 F
> GLIBC_2.16 __rawmemchr F
> @@ -2197,5 +2198,6 @@ GLIBC_2.33 stat64 F
> GLIBC_2.34 __libc_start_main F
> GLIBC_2.34 __pthread_cleanup_routine F
> GLIBC_2.34 __pthread_once F
> +GLIBC_2.34 __pthread_unwind_next F
> GLIBC_2.34 pthread_mutex_consistent F
> GLIBC_2.34 pthread_once F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index d15de68e7e..73719e6d11 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -35,7 +35,6 @@ GLIBC_2.16 __pthread_rwlock_wrlock F
> GLIBC_2.16 __pthread_setspecific F
> GLIBC_2.16 __pthread_unregister_cancel F
> GLIBC_2.16 __pthread_unregister_cancel_restore F
> -GLIBC_2.16 __pthread_unwind_next F
> GLIBC_2.16 __pwrite64 F
> GLIBC_2.16 __read F
> GLIBC_2.16 __res_state F
>
Ok.
* Adhemerval Zanella via Libc-alpha:
> On 16/03/2021 14:29, Florian Weimer via Libc-alpha wrote:
>> It's necessary to stub out __libc_disable_asynccancel and
>> __libc_enable_asynccancel via rtld-stubbed-symbols because the new
>> direct references to the unwinder result in symbol conflicts when the
>> rtld exception handling from libc is linked in during the construction
>> of librtld.map.
>
> From where exactly these come from? The *assynccancel should not be
> generated for rtld-* objects.
I think what happens is this: The libc.so objects that are used as a
starting point have them, so the reducer tries to link in those symbols,
and that fails with symbol conflicts.
>> diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
>> index a011d72fa1..060484cdc8 100644
>> --- a/nptl/pthread_cancel.c
>> +++ b/nptl/pthread_cancel.c
>> @@ -23,6 +23,9 @@
>> #include <atomic.h>
>> #include <sysdep.h>
>> #include <unistd.h>
>> +#include <unwind-link.h>
>> +#include <stdio.h>
>> +#include <gnu/lib-names.h>
>>
>> int
>> __pthread_cancel (pthread_t th)
>> @@ -36,7 +39,12 @@ __pthread_cancel (pthread_t th)
>>
>> #ifdef SHARED
>> /* Trigger an error if libgcc_s cannot be loaded. */
>> - __pthread_unwind_link_get ();
>> + {
>> + struct unwind_link *unwind_link = __libc_unwind_link_get ();
>> + if (unwind_link == NULL)
>> + __libc_fatal (LIBGCC_S_SO
>> + " must be installed for pthread_cancel to work\n");
>> + }
>
> Maybe add a inline function for this since it is used on multiple places?
The error message is slightly different because the function name is
different. __libc_fatal doesn't do format processing, so it has to be
one literal. So there isn't that much commonality.
Thanks for the review.
Florian
On 17/03/2021 16:54, Florian Weimer wrote:
> * Adhemerval Zanella via Libc-alpha:
>
>> On 16/03/2021 14:29, Florian Weimer via Libc-alpha wrote:
>>> It's necessary to stub out __libc_disable_asynccancel and
>>> __libc_enable_asynccancel via rtld-stubbed-symbols because the new
>>> direct references to the unwinder result in symbol conflicts when the
>>> rtld exception handling from libc is linked in during the construction
>>> of librtld.map.
>>
>> From where exactly these come from? The *assynccancel should not be
>> generated for rtld-* objects.
>
> I think what happens is this: The libc.so objects that are used as a
> starting point have them, so the reducer tries to link in those symbols,
> and that fails with symbol conflicts.
Right, but why doesn't it happen with other symbols that might be
pulled as well? It not a blocker, but I am trying to understand why
we are seeing this behavior with this change.
* Adhemerval Zanella:
> On 17/03/2021 16:54, Florian Weimer wrote:
>> * Adhemerval Zanella via Libc-alpha:
>>
>>> On 16/03/2021 14:29, Florian Weimer via Libc-alpha wrote:
>>>> It's necessary to stub out __libc_disable_asynccancel and
>>>> __libc_enable_asynccancel via rtld-stubbed-symbols because the new
>>>> direct references to the unwinder result in symbol conflicts when the
>>>> rtld exception handling from libc is linked in during the construction
>>>> of librtld.map.
>>>
>>> From where exactly these come from? The *assynccancel should not be
>>> generated for rtld-* objects.
>>
>> I think what happens is this: The libc.so objects that are used as a
>> starting point have them, so the reducer tries to link in those symbols,
>> and that fails with symbol conflicts.
>
> Right, but why doesn't it happen with other symbols that might be
> pulled as well? It not a blocker, but I am trying to understand why
> we are seeing this behavior with this change.
Ah, the explanation is quite trivial: We used to have a forwarder for
__pthread_unwind, and that acted as a firewall for the rtld symbol set
discovery. Now the forwarder is gone, so the implementation of
__pthread_unwind starts to matter.
Maybe I should stub out __pthread_unwind instead? But doing it for the
cancellation feels more natural.
Thanks,
Florian
On 17/03/2021 17:33, Florian Weimer wrote:
> * Adhemerval Zanella:
>
>> On 17/03/2021 16:54, Florian Weimer wrote:
>>> * Adhemerval Zanella via Libc-alpha:
>>>
>>>> On 16/03/2021 14:29, Florian Weimer via Libc-alpha wrote:
>>>>> It's necessary to stub out __libc_disable_asynccancel and
>>>>> __libc_enable_asynccancel via rtld-stubbed-symbols because the new
>>>>> direct references to the unwinder result in symbol conflicts when the
>>>>> rtld exception handling from libc is linked in during the construction
>>>>> of librtld.map.
>>>>
>>>> From where exactly these come from? The *assynccancel should not be
>>>> generated for rtld-* objects.
>>>
>>> I think what happens is this: The libc.so objects that are used as a
>>> starting point have them, so the reducer tries to link in those symbols,
>>> and that fails with symbol conflicts.
>>
>> Right, but why doesn't it happen with other symbols that might be
>> pulled as well? It not a blocker, but I am trying to understand why
>> we are seeing this behavior with this change.
>
> Ah, the explanation is quite trivial: We used to have a forwarder for
> __pthread_unwind, and that acted as a firewall for the rtld symbol set
> discovery. Now the forwarder is gone, so the implementation of
> __pthread_unwind starts to matter.
>
> Maybe I should stub out __pthread_unwind instead? But doing it for the
> cancellation feels more natural.
The cancellation stub are fine, the long term goal is to remove them
anyway.
@@ -519,6 +519,8 @@ $(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
# discovery mechanism is not compatible with the libc implementation
# when compiled for libc.
rtld-stubbed-symbols = \
+ __libc_disable_asynccancel \
+ __libc_enable_asynccancel \
calloc \
free \
malloc \
@@ -20,9 +20,9 @@ extern int __sigjmp_save (jmp_buf __env, int __savemask);
extern void _longjmp_unwind (jmp_buf env, int val);
extern void __libc_siglongjmp (sigjmp_buf env, int val)
- __attribute__ ((noreturn));
+ __attribute__ ((noreturn)) attribute_hidden;
extern void __libc_longjmp (sigjmp_buf env, int val)
- __attribute__ ((noreturn));
+ __attribute__ ((noreturn)) attribute_hidden;
libc_hidden_proto (_setjmp)
libc_hidden_proto (__sigsetjmp)
@@ -80,6 +80,7 @@ routines = \
pthread_self \
pthread_setschedparam \
pthread_sigmask \
+ unwind \
shared-only-routines = forward
static-only-routines = pthread_atfork
@@ -229,15 +230,12 @@ libpthread-routines = \
sem_wait \
sigaction \
tpp \
- unwind \
- unwind-forcedunwind \
vars \
version \
libpthread-shared-only-routines = \
pt-allocrtsig \
pt-interp \
- unwind-forcedunwind \
version \
# Since cancellation handling is in large parts handled using exceptions
@@ -56,6 +56,7 @@ libc {
}
GLIBC_2.3.3 {
__pthread_cleanup_routine;
+ __pthread_unwind_next;
pthread_attr_setaffinity_np;
pthread_getaffinity_np;
}
@@ -118,6 +119,7 @@ libc {
__pthread_cond_init; # Used by the C11 threads.
__pthread_force_elision;
__pthread_getattr_default_np;
+ __pthread_unwind;
}
}
@@ -323,7 +325,6 @@ libpthread {
__pthread_register_cancel_defer;
__pthread_unregister_cancel;
__pthread_unregister_cancel_restore;
- __pthread_unwind_next;
pthread_attr_getaffinity_np;
pthread_barrierattr_getpshared;
pthread_condattr_getclock;
@@ -412,6 +413,5 @@ libpthread {
__pthread_clock_settime;
__pthread_get_minstack;
__pthread_initialize_minimal;
- __pthread_unwind;
}
}
@@ -123,9 +123,3 @@ FORWARD (__pthread_setcancelstate, (int state, int *oldstate),
strong_alias (__pthread_setcancelstate, pthread_setcancelstate)
FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-
-FORWARD_NORETURN (__pthread_unwind,
- void attribute_hidden __attribute ((noreturn))
- __cleanup_fct_attribute attribute_compat_text_section,
- (__pthread_unwind_buf_t *buf), (buf),
- __safe_fatal ())
@@ -95,7 +95,6 @@ static const struct pthread_functions pthread_functions =
.ptr___pthread_getspecific = __pthread_getspecific,
.ptr___pthread_setspecific = __pthread_setspecific,
.ptr_nthreads = &__nptl_nthreads,
- .ptr___pthread_unwind = &__pthread_unwind,
.ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
.ptr__nptl_setxid = __nptl_setxid,
.ptr_set_robust = __nptl_set_robust
@@ -271,19 +271,21 @@ extern void __pthread_unwind (__pthread_unwind_buf_t *__buf)
weak_function
#endif
;
+libc_hidden_proto (__pthread_unwind)
extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
__cleanup_fct_attribute __attribute ((__noreturn__))
#ifndef SHARED
weak_function
#endif
;
+/* NB: No hidden proto for __pthread_unwind_next: inside glibc, the
+ legacy unwinding mechanism is used. */
+
+#if IS_IN (libpthread)
extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
__cleanup_fct_attribute;
extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
__cleanup_fct_attribute;
-#if IS_IN (libpthread)
-hidden_proto (__pthread_unwind)
-hidden_proto (__pthread_unwind_next)
hidden_proto (__pthread_register_cancel)
hidden_proto (__pthread_unregister_cancel)
# ifdef SHARED
@@ -23,6 +23,9 @@
#include <atomic.h>
#include <sysdep.h>
#include <unistd.h>
+#include <unwind-link.h>
+#include <stdio.h>
+#include <gnu/lib-names.h>
int
__pthread_cancel (pthread_t th)
@@ -36,7 +39,12 @@ __pthread_cancel (pthread_t th)
#ifdef SHARED
/* Trigger an error if libgcc_s cannot be loaded. */
- __pthread_unwind_link_get ();
+ {
+ struct unwind_link *unwind_link = __libc_unwind_link_get ();
+ if (unwind_link == NULL)
+ __libc_fatal (LIBGCC_S_SO
+ " must be installed for pthread_cancel to work\n");
+ }
#endif
int result = 0;
int oldval;
@@ -18,11 +18,20 @@
#include <stdlib.h>
#include "pthreadP.h"
-
+#include <unwind-link.h>
+#include <stdio.h>
+#include <gnu/lib-names.h>
void
__pthread_exit (void *value)
{
+ {
+ struct unwind_link *unwind_link = __libc_unwind_link_get ();
+ if (unwind_link == NULL)
+ __libc_fatal (LIBGCC_S_SO
+ " must be installed for pthread_exit to work\n");
+ }
+
THREAD_SETMEM (THREAD_SELF, result, value);
__do_cancel ();
@@ -25,6 +25,7 @@
#include "pthreadP.h"
#include <libc-diag.h>
#include <jmpbuf-unwind.h>
+#include <shlib-compat.h>
#ifdef _STACK_GROWS_DOWN
# define FRAME_LEFT(frame, other, adj) \
@@ -134,15 +135,20 @@ __pthread_unwind (__pthread_unwind_buf_t *buf)
/* We better do not get here. */
abort ();
}
-hidden_def (__pthread_unwind)
-
+libc_hidden_def (__pthread_unwind)
void
__cleanup_fct_attribute __attribute ((noreturn))
-__pthread_unwind_next (__pthread_unwind_buf_t *buf)
+___pthread_unwind_next (__pthread_unwind_buf_t *buf)
{
struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
__pthread_unwind ((__pthread_unwind_buf_t *) ibuf->priv.data.prev);
}
-hidden_def (__pthread_unwind_next)
+versioned_symbol (libc, ___pthread_unwind_next, __pthread_unwind_next,
+ GLIBC_2_34);
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_34)
+strong_alias (___pthread_unwind_next, __pthread_unwind_next_alias)
+compat_symbol (libc, __pthread_unwind_next_alias, __pthread_unwind_next,
+ GLIBC_2_3_3);
+#endif
@@ -9,8 +9,4 @@ libc {
# s*
setjmp;
}
- GLIBC_PRIVATE {
- # helper functions
- __libc_longjmp; __libc_siglongjmp;
- }
}
@@ -63,8 +63,3 @@ ifeq ($(subdir),rt)
librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume
endif
-
-ifeq ($(subdir),nptl)
-libpthread-sysdep_routines += pt-arm-unwind-resume
-libpthread-shared-only-routines += pt-arm-unwind-resume
-endif
deleted file mode 100644
@@ -1,25 +0,0 @@
-/* Unwinder function forwarders for libpthread. Arm version.
- Copyright (C) 2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <sysdeps/nptl/unwind-forcedunwind.c>
-
-void *
-__unwind_link_get_resume (void)
-{
- return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_Resume);
-}
deleted file mode 100644
@@ -1,20 +0,0 @@
-/* _Unwind_Resume wrapper for ARM EABI.
- Copyright (C) 2015-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* The implementation in libpthread is identical to the one in libc. */
-#include <sysdeps/arm/arm-unwind-resume.S>
@@ -44,3 +44,17 @@ __gcc_personality_v0 PERSONALITY_PROTO
{
return UNWIND_LINK_PTR (link (), personality) PERSONALITY_ARGS;
}
+
+_Unwind_Reason_Code
+_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
+ void *stop_argument)
+{
+ return UNWIND_LINK_PTR (link (), _Unwind_ForcedUnwind)
+ (exc, stop, stop_argument);
+}
+
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *context)
+{
+ return UNWIND_LINK_PTR (link (), _Unwind_GetCFA) (context);
+}
similarity index 87%
rename from sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
rename to sysdeps/ia64/unwind-resume.c
@@ -16,11 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <sysdeps/nptl/unwind-forcedunwind.c>
+#include <sysdeps/generic/unwind-resume.c>
_Unwind_Word
_Unwind_GetBSP (struct _Unwind_Context *context)
{
- return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetBSP)
- (context);
+ return UNWIND_LINK_PTR (link (), _Unwind_GetBSP) (context);
}
@@ -57,8 +57,6 @@ struct pthread_functions
int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
#define HAVE_PTR_NTHREADS
unsigned int *ptr_nthreads;
- void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
- __attribute ((noreturn)) __cleanup_fct_attribute;
void (*ptr__nptl_deallocate_tsd) (void);
int (*ptr__nptl_setxid) (struct xid_command *);
void (*ptr_set_robust) (struct pthread *);
deleted file mode 100644
@@ -1,64 +0,0 @@
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <https://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <unwind-link.h>
-#include <pthreadP.h>
-#include <sysdep.h>
-#include <gnu/lib-names.h>
-#include <unwind-resume.h>
-
-struct unwind_link *
-__pthread_unwind_link_get (void)
-{
- struct unwind_link *unwind_link = __libc_unwind_link_get ();
- if (unwind_link == NULL)
- __libc_fatal (LIBGCC_S_SO
- " must be installed for pthread_cancel to work\n");
- return unwind_link;
-}
-
-#if !HAVE_ARCH_UNWIND_RESUME
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
- UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_Resume) (exc);
-}
-#endif
-
-_Unwind_Reason_Code
-__gcc_personality_v0 PERSONALITY_PROTO
-{
- return UNWIND_LINK_PTR (__pthread_unwind_link_get (), personality)
- PERSONALITY_ARGS;
-}
-
-_Unwind_Reason_Code
-_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
- void *stop_argument)
-{
- return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_ForcedUnwind)
- (exc, stop, stop_argument);
-}
-
-_Unwind_Word
-_Unwind_GetCFA (struct _Unwind_Context *context)
-{
- return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetCFA)
- (context);
-}
@@ -340,6 +340,7 @@ GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_unwind_next F
GLIBC_2.17 __ptsname_r_chk F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __rawmemchr F
@@ -2183,5 +2184,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.17 __pthread_rwlock_wrlock F
GLIBC_2.17 __pthread_setspecific F
GLIBC_2.17 __pthread_unregister_cancel F
GLIBC_2.17 __pthread_unregister_cancel_restore F
-GLIBC_2.17 __pthread_unwind_next F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __read F
GLIBC_2.17 __res_state F
@@ -2154,6 +2154,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2264,6 +2265,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -329,6 +329,7 @@ GLIBC_2.32 __progname D 0x4
GLIBC_2.32 __progname_full D 0x4
GLIBC_2.32 __pthread_cleanup_routine F
GLIBC_2.32 __pthread_once F
+GLIBC_2.32 __pthread_unwind_next F
GLIBC_2.32 __ptsname_r_chk F
GLIBC_2.32 __pwrite64 F
GLIBC_2.32 __rawmemchr F
@@ -1943,5 +1944,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -34,7 +34,6 @@ GLIBC_2.32 __pthread_rwlock_wrlock F
GLIBC_2.32 __pthread_setspecific F
GLIBC_2.32 __pthread_unregister_cancel F
GLIBC_2.32 __pthread_unregister_cancel_restore F
-GLIBC_2.32 __pthread_unwind_next F
GLIBC_2.32 __pwrite64 F
GLIBC_2.32 __read F
GLIBC_2.32 __res_state F
@@ -159,6 +159,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _Exit F
@@ -490,6 +491,7 @@ GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __ptsname_r_chk F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __rawmemchr F
@@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
-GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
@@ -156,6 +156,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _Exit F
@@ -487,6 +488,7 @@ GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __ptsname_r_chk F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __rawmemchr F
@@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
-GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
@@ -333,6 +333,7 @@ GLIBC_2.29 __progname D 0x4
GLIBC_2.29 __progname_full D 0x4
GLIBC_2.29 __pthread_cleanup_routine F
GLIBC_2.29 __pthread_once F
+GLIBC_2.29 __pthread_unwind_next F
GLIBC_2.29 __ptsname_r_chk F
GLIBC_2.29 __pwrite64 F
GLIBC_2.29 __rawmemchr F
@@ -2127,5 +2128,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -34,7 +34,6 @@ GLIBC_2.29 __pthread_rwlock_wrlock F
GLIBC_2.29 __pthread_setspecific F
GLIBC_2.29 __pthread_unregister_cancel F
GLIBC_2.29 __pthread_unregister_cancel_restore F
-GLIBC_2.29 __pthread_unwind_next F
GLIBC_2.29 __pwrite64 F
GLIBC_2.29 __read F
GLIBC_2.29 __res_state F
@@ -2003,6 +2003,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2085,6 +2086,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2168,6 +2168,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2252,6 +2253,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -23,7 +23,7 @@ librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),nptl)
-libpthread-sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
+sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
endif
ifeq ($(subdir),conform)
@@ -2035,6 +2035,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2117,6 +2118,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -160,6 +160,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _Exit F
@@ -476,6 +477,7 @@ GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __ptsname_r_chk F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __rawmemchr F
@@ -69,7 +69,6 @@ GLIBC_2.4 __pthread_rwlock_wrlock F
GLIBC_2.4 __pthread_setspecific F
GLIBC_2.4 __pthread_unregister_cancel F
GLIBC_2.4 __pthread_unregister_cancel_restore F
-GLIBC_2.4 __pthread_unwind_next F
GLIBC_2.4 __pwrite64 F
GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
@@ -2112,6 +2112,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2197,6 +2198,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -341,6 +341,7 @@ GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __pthread_once F
+GLIBC_2.18 __pthread_unwind_next F
GLIBC_2.18 __ptsname_r_chk F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __rawmemchr F
@@ -2178,5 +2179,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.18 __pthread_rwlock_wrlock F
GLIBC_2.18 __pthread_setspecific F
GLIBC_2.18 __pthread_unregister_cancel F
GLIBC_2.18 __pthread_unregister_cancel_restore F
-GLIBC_2.18 __pthread_unwind_next F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __read F
GLIBC_2.18 __res_state F
@@ -341,6 +341,7 @@ GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __pthread_once F
+GLIBC_2.18 __pthread_unwind_next F
GLIBC_2.18 __ptsname_r_chk F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __rawmemchr F
@@ -2175,5 +2176,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.18 __pthread_rwlock_wrlock F
GLIBC_2.18 __pthread_setspecific F
GLIBC_2.18 __pthread_unregister_cancel F
GLIBC_2.18 __pthread_unregister_cancel_restore F
-GLIBC_2.18 __pthread_unwind_next F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __read F
GLIBC_2.18 __res_state F
@@ -2086,6 +2086,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2168,6 +2169,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -196,7 +196,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -2084,6 +2084,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2166,6 +2167,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -196,7 +196,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -2092,6 +2092,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2174,6 +2175,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -2085,6 +2085,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x400
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2168,6 +2169,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -378,6 +378,7 @@ GLIBC_2.21 __progname D 0x4
GLIBC_2.21 __progname_full D 0x4
GLIBC_2.21 __pthread_cleanup_routine F
GLIBC_2.21 __pthread_once F
+GLIBC_2.21 __pthread_unwind_next F
GLIBC_2.21 __ptsname_r_chk F
GLIBC_2.21 __pwrite64 F
GLIBC_2.21 __rawmemchr F
@@ -2216,5 +2217,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.21 __pthread_rwlock_wrlock F
GLIBC_2.21 __pthread_setspecific F
GLIBC_2.21 __pthread_unregister_cancel F
GLIBC_2.21 __pthread_unregister_cancel_restore F
-GLIBC_2.21 __pthread_unwind_next F
GLIBC_2.21 __pwrite64 F
GLIBC_2.21 __read F
GLIBC_2.21 __res_state F
@@ -2116,6 +2116,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
@@ -2224,6 +2225,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2149,6 +2149,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
@@ -2257,6 +2258,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -1984,6 +1984,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2087,6 +2088,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -186,7 +186,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -426,6 +426,7 @@ GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_unwind_next F
GLIBC_2.17 __ptsname_r_chk F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __rawmemchr F
@@ -2378,5 +2379,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.17 __pthread_rwlock_wrlock F
GLIBC_2.17 __pthread_setspecific F
GLIBC_2.17 __pthread_unregister_cancel F
GLIBC_2.17 __pthread_unregister_cancel_restore F
-GLIBC_2.17 __pthread_unwind_next F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __read F
GLIBC_2.17 __res_state F
@@ -326,6 +326,7 @@ GLIBC_2.33 __progname D 0x4
GLIBC_2.33 __progname_full D 0x4
GLIBC_2.33 __pthread_cleanup_routine F
GLIBC_2.33 __pthread_once F
+GLIBC_2.33 __pthread_unwind_next F
GLIBC_2.33 __ptsname_r_chk F
GLIBC_2.33 __pwrite64 F
GLIBC_2.33 __rawmemchr F
@@ -1945,5 +1946,6 @@ GLIBC_2.33 wscanf F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -34,7 +34,6 @@ GLIBC_2.33 __pthread_rwlock_wrlock F
GLIBC_2.33 __pthread_setspecific F
GLIBC_2.33 __pthread_unregister_cancel F
GLIBC_2.33 __pthread_unregister_cancel_restore F
-GLIBC_2.33 __pthread_unwind_next F
GLIBC_2.33 __pwrite64 F
GLIBC_2.33 __read F
GLIBC_2.33 __res_state F
@@ -337,6 +337,7 @@ GLIBC_2.27 __progname D 0x8
GLIBC_2.27 __progname_full D 0x8
GLIBC_2.27 __pthread_cleanup_routine F
GLIBC_2.27 __pthread_once F
+GLIBC_2.27 __pthread_unwind_next F
GLIBC_2.27 __ptsname_r_chk F
GLIBC_2.27 __pwrite64 F
GLIBC_2.27 __rawmemchr F
@@ -2145,5 +2146,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.27 __pthread_rwlock_wrlock F
GLIBC_2.27 __pthread_setspecific F
GLIBC_2.27 __pthread_unregister_cancel F
GLIBC_2.27 __pthread_unregister_cancel_restore F
-GLIBC_2.27 __pthread_unwind_next F
GLIBC_2.27 __pwrite64 F
GLIBC_2.27 __read F
GLIBC_2.27 __res_state F
@@ -2125,6 +2125,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2222,6 +2223,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -198,7 +198,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2029,6 +2029,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2123,6 +2124,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -190,7 +190,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2007,6 +2007,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2092,6 +2093,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2007,6 +2007,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2089,6 +2090,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -2119,6 +2119,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2213,6 +2214,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 _IO_fprintf F
@@ -197,7 +197,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -2058,6 +2058,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2140,6 +2141,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -189,7 +189,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
@@ -2016,6 +2016,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.2 strptime_l F
GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2099,6 +2100,7 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
GLIBC_2.4 __confstr_chk F
@@ -188,7 +188,6 @@ GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
@@ -341,6 +341,7 @@ GLIBC_2.16 __progname D 0x4
GLIBC_2.16 __progname_full D 0x4
GLIBC_2.16 __pthread_cleanup_routine F
GLIBC_2.16 __pthread_once F
+GLIBC_2.16 __pthread_unwind_next F
GLIBC_2.16 __ptsname_r_chk F
GLIBC_2.16 __pwrite64 F
GLIBC_2.16 __rawmemchr F
@@ -2197,5 +2198,6 @@ GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_once F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.34 pthread_once F
@@ -35,7 +35,6 @@ GLIBC_2.16 __pthread_rwlock_wrlock F
GLIBC_2.16 __pthread_setspecific F
GLIBC_2.16 __pthread_unregister_cancel F
GLIBC_2.16 __pthread_unregister_cancel_restore F
-GLIBC_2.16 __pthread_unwind_next F
GLIBC_2.16 __pwrite64 F
GLIBC_2.16 __read F
GLIBC_2.16 __res_state F