* [PATCH 0/8] Move libpthread unwind-related functionality into libc
@ 2021-03-04 12:10 Florian Weimer
2021-03-04 12:11 ` [PATCH v3 1/8] nptl: Move pthread_mutex_consistent " Florian Weimer
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:10 UTC (permalink / raw)
To: libc-alpha
This series continues my efforts to remove libpthread. Its focus is
unwinding in various forms: DWARF unwinding for new-style cancellation,
longjmp-based unwinding, and callback-based unwinding (legacy
cancellation unwinder).
I have tested intermediate steps with build-many-glibcs.py, and the
final patch also passed testing on i386-linux-gnu,
powerpc64le-linux-gnu, s390x-linux-gnu, x86_64-linux-gnu.
This series depends on this additional patch:
<shlib-compat.h>: Support compat_symbol_reference for _ISOMAC
Florian Weimer (8):
nptl: Move pthread_mutex_consistent into libc
nptl: Move __pthread_cleanup_routine into libc
nptl: Move legacy unwinding implementation into libc
nptl: Move legacy cancelation handling into libc as compat symbols
nptl: Remove longjmp, siglongjmp from libpthread
Legacy unwinder: Remove definition of _Unwind_GetCFA
nptl: Move __pthread_cleanup_upto into libc
nptl: Move __pthread_unwind_next into libc
NEWS | 4 +-
elf/Makefile | 2 +
include/setjmp.h | 4 +-
nptl/Makefile | 26 ++++---
nptl/Versions | 33 ++++++---
nptl/cleanup_compat.c | 16 +++--
nptl/cleanup_defer_compat.c | 72 ++++---------------
nptl/cleanup_routine.c | 12 +++-
nptl/forward.c | 6 --
nptl/libc-cleanup.c | 64 ++++++++++++++++-
nptl/nptl-init.c | 4 --
nptl/pt-longjmp.c | 49 -------------
nptl/pthreadP.h | 21 +++---
nptl/pthread_cancel.c | 10 ++-
nptl/{pt-cleanup.c => pthread_cleanup_upto.c} | 2 +-
nptl/pthread_exit.c | 11 ++-
nptl/pthread_mutex_consistent.c | 22 +++++-
nptl/tst-cleanup4.c | 5 ++
nptl/tst-cleanup4aux.c | 5 ++
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-dw2.c | 8 ---
sysdeps/generic/unwind-resume.c | 14 ++++
.../unwind-resume.c} | 5 +-
sysdeps/nptl/jmp-unwind.c | 8 +--
sysdeps/nptl/libc-lock.h | 59 +++++++--------
sysdeps/nptl/libc-lockP.h | 22 +-----
sysdeps/nptl/pthread-functions.h | 6 --
sysdeps/nptl/pthread.h | 5 +-
sysdeps/nptl/unwind-forcedunwind.c | 64 -----------------
sysdeps/pthread/tst-robust1.c | 4 +-
sysdeps/pthread/tst-robust8.c | 2 +-
sysdeps/pthread/tst-robust9.c | 4 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 11 +++
.../sysv/linux/aarch64/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/alpha/libc.abilist | 11 +++
.../unix/sysv/linux/alpha/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/arc/libc.abilist | 11 +++
.../unix/sysv/linux/arc/libpthread.abilist | 8 ---
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 11 +++
.../unix/sysv/linux/arm/be/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 11 +++
.../unix/sysv/linux/arm/le/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/csky/libc.abilist | 11 +++
.../unix/sysv/linux/csky/libpthread.abilist | 8 ---
sysdeps/unix/sysv/linux/hppa/libc.abilist | 11 +++
.../unix/sysv/linux/hppa/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/i386/libc.abilist | 11 +++
.../unix/sysv/linux/i386/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/ia64/Makefile | 2 +-
sysdeps/unix/sysv/linux/ia64/libc.abilist | 11 +++
.../unix/sysv/linux/ia64/libpthread.abilist | 10 ---
.../sysv/linux/m68k/coldfire/libc.abilist | 11 +++
.../linux/m68k/coldfire/libpthread.abilist | 10 ---
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 11 +++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 10 ---
.../sysv/linux/microblaze/be/libc.abilist | 11 +++
.../linux/microblaze/be/libpthread.abilist | 10 ---
.../sysv/linux/microblaze/le/libc.abilist | 11 +++
.../linux/microblaze/le/libpthread.abilist | 10 ---
.../sysv/linux/mips/mips32/fpu/libc.abilist | 11 +++
.../sysv/linux/mips/mips32/libpthread.abilist | 10 ---
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 11 +++
.../sysv/linux/mips/mips64/libpthread.abilist | 10 ---
.../sysv/linux/mips/mips64/n32/libc.abilist | 11 +++
.../sysv/linux/mips/mips64/n64/libc.abilist | 11 +++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 11 +++
.../unix/sysv/linux/nios2/libpthread.abilist | 10 ---
.../linux/powerpc/powerpc32/fpu/libc.abilist | 11 +++
.../powerpc/powerpc32/libpthread.abilist | 12 ----
.../powerpc/powerpc32/nofpu/libc.abilist | 11 +++
.../linux/powerpc/powerpc64/be/libc.abilist | 11 +++
.../powerpc/powerpc64/be/libpthread.abilist | 12 ----
.../linux/powerpc/powerpc64/le/libc.abilist | 11 +++
.../powerpc/powerpc64/le/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c | 61 ----------------
.../unix/sysv/linux/riscv/rv32/libc.abilist | 11 +++
.../sysv/linux/riscv/rv32/libpthread.abilist | 8 ---
.../unix/sysv/linux/riscv/rv64/libc.abilist | 11 +++
.../sysv/linux/riscv/rv64/libpthread.abilist | 8 ---
sysdeps/unix/sysv/linux/s390/Versions | 2 +-
sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 7 +-
.../unix/sysv/linux/s390/libpthread-compat.c | 25 +++++++
sysdeps/unix/sysv/linux/s390/pt-longjmp.c | 33 ---------
.../unix/sysv/linux/s390/s390-32/libc.abilist | 11 +++
.../linux/s390/s390-32/libpthread.abilist | 13 +---
.../unix/sysv/linux/s390/s390-64/libc.abilist | 11 +++
.../linux/s390/s390-64/libpthread.abilist | 13 +---
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 11 +++
.../unix/sysv/linux/sh/be/libpthread.abilist | 10 ---
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 11 +++
.../unix/sysv/linux/sh/le/libpthread.abilist | 10 ---
.../sysv/linux/sparc/sparc32/libc.abilist | 11 +++
.../linux/sparc/sparc32/libpthread.abilist | 10 ---
.../sysv/linux/sparc/sparc64/libc.abilist | 11 +++
.../linux/sparc/sparc64/libpthread.abilist | 10 ---
.../unix/sysv/linux/x86_64/64/libc.abilist | 11 +++
.../sysv/linux/x86_64/64/libpthread.abilist | 10 ---
.../unix/sysv/linux/x86_64/x32/libc.abilist | 11 +++
.../sysv/linux/x86_64/x32/libpthread.abilist | 10 ---
sysdeps/x86/nptl/pt-longjmp.c | 71 ------------------
104 files changed, 648 insertions(+), 834 deletions(-)
delete mode 100644 nptl/pt-longjmp.c
rename nptl/{pt-cleanup.c => pthread_cleanup_upto.c} (98%)
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
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
create mode 100644 sysdeps/unix/sysv/linux/s390/libpthread-compat.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/pt-longjmp.c
delete mode 100644 sysdeps/x86/nptl/pt-longjmp.c
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/8] nptl: Move pthread_mutex_consistent into libc
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
@ 2021-03-04 12:11 ` Florian Weimer
2021-03-04 12:11 ` [PATCH 2/8] nptl: Move __pthread_cleanup_routine " Florian Weimer
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:11 UTC (permalink / raw)
To: libc-alpha
And deprecated pthread_mutex_consistent_np, its old name.
---
v2: Address abilist conflicts due to __libc_start_main symbol.
Use a non-function macro for pthread_mutex_consistent_np.
v3: Reposted as part of series.
NEWS | 4 +++-
nptl/Makefile | 2 +-
nptl/Versions | 11 ++++++++--
nptl/pthread_mutex_consistent.c | 22 ++++++++++++++++---
sysdeps/nptl/pthread.h | 5 +++--
sysdeps/pthread/tst-robust1.c | 4 ++--
sysdeps/pthread/tst-robust8.c | 2 +-
sysdeps/pthread/tst-robust9.c | 4 ++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 3 +++
.../sysv/linux/aarch64/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +++
.../unix/sysv/linux/alpha/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 3 +++
.../unix/sysv/linux/arc/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 +++
.../unix/sysv/linux/arm/be/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 +++
.../unix/sysv/linux/arm/le/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 3 +++
.../unix/sysv/linux/csky/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 +++
.../unix/sysv/linux/hppa/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 3 +++
.../unix/sysv/linux/i386/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 +++
.../unix/sysv/linux/ia64/libpthread.abilist | 2 --
.../sysv/linux/m68k/coldfire/libc.abilist | 3 +++
.../linux/m68k/coldfire/libpthread.abilist | 2 --
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 +++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 2 --
.../sysv/linux/microblaze/be/libc.abilist | 3 +++
.../linux/microblaze/be/libpthread.abilist | 2 --
.../sysv/linux/microblaze/le/libc.abilist | 3 +++
.../linux/microblaze/le/libpthread.abilist | 2 --
.../sysv/linux/mips/mips32/fpu/libc.abilist | 3 +++
.../sysv/linux/mips/mips32/libpthread.abilist | 2 --
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 +++
.../sysv/linux/mips/mips64/libpthread.abilist | 2 --
.../sysv/linux/mips/mips64/n32/libc.abilist | 3 +++
.../sysv/linux/mips/mips64/n64/libc.abilist | 3 +++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 +++
.../unix/sysv/linux/nios2/libpthread.abilist | 2 --
.../linux/powerpc/powerpc32/fpu/libc.abilist | 3 +++
.../powerpc/powerpc32/libpthread.abilist | 2 --
.../powerpc/powerpc32/nofpu/libc.abilist | 3 +++
.../linux/powerpc/powerpc64/be/libc.abilist | 3 +++
.../powerpc/powerpc64/be/libpthread.abilist | 2 --
.../linux/powerpc/powerpc64/le/libc.abilist | 3 +++
.../powerpc/powerpc64/le/libpthread.abilist | 2 --
.../unix/sysv/linux/riscv/rv32/libc.abilist | 3 +++
.../sysv/linux/riscv/rv32/libpthread.abilist | 2 --
.../unix/sysv/linux/riscv/rv64/libc.abilist | 3 +++
.../sysv/linux/riscv/rv64/libpthread.abilist | 2 --
.../unix/sysv/linux/s390/s390-32/libc.abilist | 3 +++
.../linux/s390/s390-32/libpthread.abilist | 2 --
.../unix/sysv/linux/s390/s390-64/libc.abilist | 3 +++
.../linux/s390/s390-64/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 +++
.../unix/sysv/linux/sh/be/libpthread.abilist | 2 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 +++
.../unix/sysv/linux/sh/le/libpthread.abilist | 2 --
.../sysv/linux/sparc/sparc32/libc.abilist | 3 +++
.../linux/sparc/sparc32/libpthread.abilist | 2 --
.../sysv/linux/sparc/sparc64/libc.abilist | 3 +++
.../linux/sparc/sparc64/libpthread.abilist | 2 --
.../unix/sysv/linux/x86_64/64/libc.abilist | 3 +++
.../sysv/linux/x86_64/64/libpthread.abilist | 2 --
.../unix/sysv/linux/x86_64/x32/libc.abilist | 3 +++
.../sysv/linux/x86_64/x32/libpthread.abilist | 2 --
69 files changed, 136 insertions(+), 72 deletions(-)
diff --git a/NEWS b/NEWS
index 73a1a0df97..904c52aa52 100644
--- a/NEWS
+++ b/NEWS
@@ -20,7 +20,9 @@ Major new features:
Deprecated and removed features, and other changes affecting compatibility:
- [Add deprecations, removals and changes affecting compatibility here]
+* The function pthread_mutex_consistent_np has been deprecated; programs
+ should use the equivalent standard function pthread_mutex_consistent
+ instead.
Changes to build and runtime requirements:
diff --git a/nptl/Makefile b/nptl/Makefile
index 5f85dd7854..e7853a7cc9 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -71,6 +71,7 @@ routines = \
pthread_getaffinity \
pthread_getattr_np \
pthread_getschedparam \
+ pthread_mutex_consistent \
pthread_self \
pthread_setschedparam \
pthread_sigmask \
@@ -161,7 +162,6 @@ libpthread-routines = \
pthread_kill_other_threads \
pthread_mutex_cond_lock \
pthread_mutex_conf \
- pthread_mutex_consistent \
pthread_mutex_destroy \
pthread_mutex_getprioceiling \
pthread_mutex_init \
diff --git a/nptl/Versions b/nptl/Versions
index 186befebfd..09fcc05ffe 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -55,6 +55,12 @@ libc {
GLIBC_2.3.4 {
pthread_attr_setaffinity_np;
}
+ GLIBC_2.4 {
+ pthread_mutex_consistent_np;
+ }
+ GLIBC_2.12 {
+ pthread_mutex_consistent;
+ }
# C11 thread symbols.
GLIBC_2.28 {
thrd_current;
@@ -70,6 +76,9 @@ libc {
pthread_getattr_np;
pthread_sigmask;
}
+ GLIBC_2.34 {
+ pthread_mutex_consistent;
+ }
GLIBC_PRIVATE {
__futex_abstimed_wait64;
__futex_abstimed_wait_cancelable64;
@@ -328,7 +337,6 @@ libpthread {
}
GLIBC_2.4 {
- pthread_mutex_consistent_np;
pthread_mutex_getprioceiling;
pthread_mutex_setprioceiling;
pthread_mutexattr_getprioceiling;
@@ -345,7 +353,6 @@ libpthread {
GLIBC_2.12 {
pthread_getname_np;
- pthread_mutex_consistent;
pthread_mutexattr_getrobust;
pthread_mutexattr_setrobust;
pthread_setname_np;
diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c
index 937c7c4640..0a84063a2b 100644
--- a/nptl/pthread_mutex_consistent.c
+++ b/nptl/pthread_mutex_consistent.c
@@ -18,10 +18,10 @@
#include <errno.h>
#include <pthreadP.h>
-
+#include <shlib-compat.h>
int
-pthread_mutex_consistent (pthread_mutex_t *mutex)
+__pthread_mutex_consistent (pthread_mutex_t *mutex)
{
/* Test whether this is a robust mutex with a dead owner.
See concurrency notes regarding __kind in struct __pthread_mutex_s
@@ -35,4 +35,20 @@ pthread_mutex_consistent (pthread_mutex_t *mutex)
return 0;
}
-weak_alias (pthread_mutex_consistent, pthread_mutex_consistent_np)
+versioned_symbol (libc, __pthread_mutex_consistent, pthread_mutex_consistent,
+ GLIBC_2_34);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_4, GLIBC_2_34)
+/* Compat symbol with the old libc version, _np alias. */
+# undef pthread_mutex_consistent_np
+strong_alias (__pthread_mutex_consistent, __pthread_mutex_consistent_1)
+compat_symbol (libc, __pthread_mutex_consistent_1,
+ pthread_mutex_consistent_np, GLIBC_2_4);
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_34)
+/* Compat symbol with the old libc version. */
+strong_alias (__pthread_mutex_consistent, __pthread_mutex_consistent_2)
+compat_symbol (libc, __pthread_mutex_consistent_2,
+ pthread_mutex_consistent, GLIBC_2_12);
+#endif
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index a04a3a2754..2ec2caec98 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -809,8 +809,9 @@ extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
__THROW __nonnull ((1));
# ifdef __USE_GNU
-extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
+# define pthread_mutex_consistent_np __glibc_macro_warning ("\
+pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent") \
+ pthread_mutex_consistent
# endif
#endif
diff --git a/sysdeps/pthread/tst-robust1.c b/sysdeps/pthread/tst-robust1.c
index d4b1d88a68..6342fcbbf7 100644
--- a/sysdeps/pthread/tst-robust1.c
+++ b/sysdeps/pthread/tst-robust1.c
@@ -241,14 +241,14 @@ do_test (void)
#endif
#ifndef NOT_CONSISTENT
- e = pthread_mutex_consistent_np (&m1);
+ e = pthread_mutex_consistent (&m1);
if (e != 0)
{
printf ("%ld: mutex_consistent m1 failed with error %d\n", round, e);
return 1;
}
- e = pthread_mutex_consistent_np (&m2);
+ e = pthread_mutex_consistent (&m2);
if (e != 0)
{
printf ("%ld: mutex_consistent m2 failed with error %d\n", round, e);
diff --git a/sysdeps/pthread/tst-robust8.c b/sysdeps/pthread/tst-robust8.c
index 27dd53d2c3..8f135cb516 100644
--- a/sysdeps/pthread/tst-robust8.c
+++ b/sysdeps/pthread/tst-robust8.c
@@ -92,7 +92,7 @@ mutex_timedlock of %d in thread %ld failed with %d\n",
}
if (e == EOWNERDEAD)
- pthread_mutex_consistent_np (&map[r]);
+ pthread_mutex_consistent (&map[r]);
if (e == 0 || e == EOWNERDEAD)
state[r] = 1;
diff --git a/sysdeps/pthread/tst-robust9.c b/sysdeps/pthread/tst-robust9.c
index befc14f2d8..532aebc4e9 100644
--- a/sysdeps/pthread/tst-robust9.c
+++ b/sysdeps/pthread/tst-robust9.c
@@ -14,10 +14,10 @@ tf (void *data)
int err = pthread_mutex_lock (&m);
if (err == EOWNERDEAD)
{
- err = pthread_mutex_consistent_np (&m);
+ err = pthread_mutex_consistent (&m);
if (err)
{
- puts ("pthread_mutex_consistent_np");
+ puts ("pthread_mutex_consistent");
exit (1);
}
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index bac795262d..231330e591 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1442,6 +1442,8 @@ GLIBC_2.17 pthread_exit F
GLIBC_2.17 pthread_getaffinity_np F
GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
GLIBC_2.17 pthread_mutex_destroy F
GLIBC_2.17 pthread_mutex_init F
GLIBC_2.17 pthread_mutex_lock F
@@ -2172,3 +2174,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index c6b4ea2dc1..61d7427ce2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -104,8 +104,6 @@ GLIBC_2.17 pthread_key_create F
GLIBC_2.17 pthread_key_delete F
GLIBC_2.17 pthread_kill F
GLIBC_2.17 pthread_kill_other_threads_np F
-GLIBC_2.17 pthread_mutex_consistent F
-GLIBC_2.17 pthread_mutex_consistent_np F
GLIBC_2.17 pthread_mutex_destroy F
GLIBC_2.17 pthread_mutex_getprioceiling F
GLIBC_2.17 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 897f70db22..72c1c3ae6a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1749,6 +1749,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x458
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x458
GLIBC_2.12 sys_nerr D 0x4
@@ -2254,6 +2255,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2437,6 +2439,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 390b6384d0..ae285e5f15 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -228,7 +227,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 604d259ad6..180b1e6244 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1369,6 +1369,8 @@ GLIBC_2.32 pthread_exit F
GLIBC_2.32 pthread_getaffinity_np F
GLIBC_2.32 pthread_getattr_np F
GLIBC_2.32 pthread_getschedparam F
+GLIBC_2.32 pthread_mutex_consistent F
+GLIBC_2.32 pthread_mutex_consistent_np F
GLIBC_2.32 pthread_mutex_destroy F
GLIBC_2.32 pthread_mutex_init F
GLIBC_2.32 pthread_mutex_lock F
@@ -1932,3 +1934,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 1adcbecc2e..2f76de6bfc 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -116,8 +116,6 @@ GLIBC_2.32 pthread_key_delete F
GLIBC_2.32 pthread_kill F
GLIBC_2.32 pthread_kill_other_threads_np F
GLIBC_2.32 pthread_mutex_clocklock F
-GLIBC_2.32 pthread_mutex_consistent F
-GLIBC_2.32 pthread_mutex_consistent_np F
GLIBC_2.32 pthread_mutex_destroy F
GLIBC_2.32 pthread_mutex_getprioceiling F
GLIBC_2.32 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 094236f713..e3781f0e83 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -156,6 +157,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -1535,6 +1537,7 @@ GLIBC_2.4 pthread_exit F
GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_init F
GLIBC_2.4 pthread_mutex_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index b6c26c7a50..3e000c237f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -138,7 +137,6 @@ GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 2bb4d31e81..0cd363cc2d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -153,6 +154,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -1532,6 +1534,7 @@ GLIBC_2.4 pthread_exit F
GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_init F
GLIBC_2.4 pthread_mutex_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index b6c26c7a50..3e000c237f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -138,7 +137,6 @@ GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index d4291fecfb..c1e62a6df3 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1430,6 +1430,8 @@ GLIBC_2.29 pthread_exit F
GLIBC_2.29 pthread_getaffinity_np F
GLIBC_2.29 pthread_getattr_np F
GLIBC_2.29 pthread_getschedparam F
+GLIBC_2.29 pthread_mutex_consistent F
+GLIBC_2.29 pthread_mutex_consistent_np F
GLIBC_2.29 pthread_mutex_destroy F
GLIBC_2.29 pthread_mutex_init F
GLIBC_2.29 pthread_mutex_lock F
@@ -2116,3 +2118,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 6ce59276a7..f05530eb2a 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -113,8 +113,6 @@ GLIBC_2.29 pthread_key_create F
GLIBC_2.29 pthread_key_delete F
GLIBC_2.29 pthread_kill F
GLIBC_2.29 pthread_kill_other_threads_np F
-GLIBC_2.29 pthread_mutex_consistent F
-GLIBC_2.29 pthread_mutex_consistent_np F
GLIBC_2.29 pthread_mutex_destroy F
GLIBC_2.29 pthread_mutex_getprioceiling F
GLIBC_2.29 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1fd2a862f6..50d9080eb6 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x404
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x404
GLIBC_2.12 sys_nerr D 0x4
@@ -2075,6 +2076,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2144,6 +2146,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index cabc5af858..0dfc29288c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -218,7 +217,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 943331f01e..d172849c32 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1754,6 +1754,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2242,6 +2243,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2311,6 +2313,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 18177307c8..d1e2b47f75 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -226,7 +225,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f530151bde..e9e82e5ec8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x438
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x438
GLIBC_2.12 sys_nerr D 0x4
@@ -2107,6 +2108,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2176,6 +2178,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 335f486cb5..cfccc04631 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -220,7 +219,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 6e76b6dcaa..b0c0d7208d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.12 __m68k_read_tp F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -157,6 +158,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0x98
GLIBC_2.4 _IO_2_1_stdin_ D 0x98
@@ -1515,6 +1517,7 @@ GLIBC_2.4 pthread_exit F
GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_init F
GLIBC_2.4 pthread_mutex_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index b6c26c7a50..3e000c237f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -138,7 +137,6 @@ GLIBC_2.4 pthread_key_create F
GLIBC_2.4 pthread_key_delete F
GLIBC_2.4 pthread_kill F
GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_destroy F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 7541b8289f..c312a9e726 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1711,6 +1711,7 @@ GLIBC_2.12 __m68k_read_tp F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2187,6 +2188,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2256,6 +2258,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 18177307c8..d1e2b47f75 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -226,7 +225,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 6cf1936c42..4e5f7336c3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1445,6 +1445,8 @@ GLIBC_2.18 pthread_exit F
GLIBC_2.18 pthread_getaffinity_np F
GLIBC_2.18 pthread_getattr_np F
GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_mutex_consistent F
+GLIBC_2.18 pthread_mutex_consistent_np F
GLIBC_2.18 pthread_mutex_destroy F
GLIBC_2.18 pthread_mutex_init F
GLIBC_2.18 pthread_mutex_lock F
@@ -2167,3 +2169,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 60397187b6..fe2312fb86 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -105,8 +105,6 @@ GLIBC_2.18 pthread_key_create F
GLIBC_2.18 pthread_key_delete F
GLIBC_2.18 pthread_kill F
GLIBC_2.18 pthread_kill_other_threads_np F
-GLIBC_2.18 pthread_mutex_consistent F
-GLIBC_2.18 pthread_mutex_consistent_np F
GLIBC_2.18 pthread_mutex_destroy F
GLIBC_2.18 pthread_mutex_getprioceiling F
GLIBC_2.18 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 98730ebcda..374e48889a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1445,6 +1445,8 @@ GLIBC_2.18 pthread_exit F
GLIBC_2.18 pthread_getaffinity_np F
GLIBC_2.18 pthread_getattr_np F
GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_mutex_consistent F
+GLIBC_2.18 pthread_mutex_consistent_np F
GLIBC_2.18 pthread_mutex_destroy F
GLIBC_2.18 pthread_mutex_init F
GLIBC_2.18 pthread_mutex_lock F
@@ -2164,3 +2166,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 60397187b6..fe2312fb86 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -105,8 +105,6 @@ GLIBC_2.18 pthread_key_create F
GLIBC_2.18 pthread_key_delete F
GLIBC_2.18 pthread_kill F
GLIBC_2.18 pthread_kill_other_threads_np F
-GLIBC_2.18 pthread_mutex_consistent F
-GLIBC_2.18 pthread_mutex_consistent_np F
GLIBC_2.18 pthread_mutex_destroy F
GLIBC_2.18 pthread_mutex_getprioceiling F
GLIBC_2.18 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 92fa6cbc73..f4c9a0e288 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1344,6 +1344,7 @@ GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.13 fanotify_init F
GLIBC_2.13 fanotify_mark F
@@ -2158,6 +2159,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2225,6 +2227,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index b35d7f19ca..62bf9399d7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -94,7 +94,6 @@ GLIBC_2.0 tcdrain F
GLIBC_2.0 write F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -227,7 +226,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 265a49e74e..1935dd7207 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1344,6 +1344,7 @@ GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.13 fanotify_init F
GLIBC_2.13 fanotify_mark F
@@ -2156,6 +2157,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2223,6 +2225,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index b35d7f19ca..62bf9399d7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -94,7 +94,6 @@ GLIBC_2.0 tcdrain F
GLIBC_2.0 write F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -227,7 +226,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index cfa5e1111b..130dd19d46 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1344,6 +1344,7 @@ GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.13 fanotify_init F
GLIBC_2.13 fanotify_mark F
@@ -2164,6 +2165,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2231,6 +2233,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 8c03ac52cd..a8728b1a57 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1342,6 +1342,7 @@ GLIBC_2.11 mkostemps64 F
GLIBC_2.11 mkstemps F
GLIBC_2.11 mkstemps64 F
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.13 fanotify_init F
GLIBC_2.13 fanotify_mark F
@@ -2158,6 +2159,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2225,6 +2227,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 17f5609e06..040ee6c0b6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1487,6 +1487,8 @@ GLIBC_2.21 pthread_exit F
GLIBC_2.21 pthread_getaffinity_np F
GLIBC_2.21 pthread_getattr_np F
GLIBC_2.21 pthread_getschedparam F
+GLIBC_2.21 pthread_mutex_consistent F
+GLIBC_2.21 pthread_mutex_consistent_np F
GLIBC_2.21 pthread_mutex_destroy F
GLIBC_2.21 pthread_mutex_init F
GLIBC_2.21 pthread_mutex_lock F
@@ -2205,3 +2207,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 924ad6e451..84b9c738cd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -105,8 +105,6 @@ GLIBC_2.21 pthread_key_create F
GLIBC_2.21 pthread_key_delete F
GLIBC_2.21 pthread_kill F
GLIBC_2.21 pthread_kill_other_threads_np F
-GLIBC_2.21 pthread_mutex_consistent F
-GLIBC_2.21 pthread_mutex_consistent_np F
GLIBC_2.21 pthread_mutex_destroy F
GLIBC_2.21 pthread_mutex_getprioceiling F
GLIBC_2.21 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 76a16e2a6d..d51a3a1b32 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1715,6 +1715,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2214,6 +2215,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2397,6 +2399,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 13b41dafb6..ba3891cc85 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -228,7 +227,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 697f072fd4..6b0a6ef07e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1715,6 +1715,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2247,6 +2248,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2442,6 +2444,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 2647bb51f1..d4fcc5479a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x438
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x438
GLIBC_2.12 sys_nerr D 0x4
@@ -2077,6 +2078,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2260,6 +2262,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index e9477a3584..ab4566e7c6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -217,7 +216,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 036b1c8345..bbe387fe61 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1531,6 +1531,8 @@ GLIBC_2.17 pthread_exit F
GLIBC_2.17 pthread_getaffinity_np F
GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
GLIBC_2.17 pthread_mutex_destroy F
GLIBC_2.17 pthread_mutex_init F
GLIBC_2.17 pthread_mutex_lock F
@@ -2367,3 +2369,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index c6b4ea2dc1..61d7427ce2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -104,8 +104,6 @@ GLIBC_2.17 pthread_key_create F
GLIBC_2.17 pthread_key_delete F
GLIBC_2.17 pthread_kill F
GLIBC_2.17 pthread_kill_other_threads_np F
-GLIBC_2.17 pthread_mutex_consistent F
-GLIBC_2.17 pthread_mutex_consistent_np F
GLIBC_2.17 pthread_mutex_destroy F
GLIBC_2.17 pthread_mutex_getprioceiling F
GLIBC_2.17 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ff3225e16f..684acb6795 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1371,6 +1371,8 @@ GLIBC_2.33 pthread_exit F
GLIBC_2.33 pthread_getaffinity_np F
GLIBC_2.33 pthread_getattr_np F
GLIBC_2.33 pthread_getschedparam F
+GLIBC_2.33 pthread_mutex_consistent F
+GLIBC_2.33 pthread_mutex_consistent_np F
GLIBC_2.33 pthread_mutex_destroy F
GLIBC_2.33 pthread_mutex_init F
GLIBC_2.33 pthread_mutex_lock F
@@ -1934,3 +1936,4 @@ GLIBC_2.33 write F
GLIBC_2.33 writev F
GLIBC_2.33 wscanf F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 61b3c4ff7a..33b755ed10 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -116,8 +116,6 @@ GLIBC_2.33 pthread_key_delete F
GLIBC_2.33 pthread_kill F
GLIBC_2.33 pthread_kill_other_threads_np F
GLIBC_2.33 pthread_mutex_clocklock F
-GLIBC_2.33 pthread_mutex_consistent F
-GLIBC_2.33 pthread_mutex_consistent_np F
GLIBC_2.33 pthread_mutex_destroy F
GLIBC_2.33 pthread_mutex_getprioceiling F
GLIBC_2.33 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index fb5ad9909f..6f8afeb03e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1433,6 +1433,8 @@ GLIBC_2.27 pthread_exit F
GLIBC_2.27 pthread_getaffinity_np F
GLIBC_2.27 pthread_getattr_np F
GLIBC_2.27 pthread_getschedparam F
+GLIBC_2.27 pthread_mutex_consistent F
+GLIBC_2.27 pthread_mutex_consistent_np F
GLIBC_2.27 pthread_mutex_destroy F
GLIBC_2.27 pthread_mutex_init F
GLIBC_2.27 pthread_mutex_lock F
@@ -2134,3 +2136,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 894c474fcb..4be8886aed 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -102,8 +102,6 @@ GLIBC_2.27 pthread_key_create F
GLIBC_2.27 pthread_key_delete F
GLIBC_2.27 pthread_kill F
GLIBC_2.27 pthread_kill_other_threads_np F
-GLIBC_2.27 pthread_mutex_consistent F
-GLIBC_2.27 pthread_mutex_consistent_np F
GLIBC_2.27 pthread_mutex_destroy F
GLIBC_2.27 pthread_mutex_getprioceiling F
GLIBC_2.27 pthread_mutex_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index cead75acc5..a4b1c00c78 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1707,6 +1707,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2212,6 +2213,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2395,6 +2397,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 0a60f1cca2..5de8344b6f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -228,7 +227,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 31366dd7e6..c05c18c2bb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x438
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x438
GLIBC_2.12 sys_nerr D 0x4
@@ -2113,6 +2114,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2296,6 +2298,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 0e99688824..4313608817 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -220,7 +219,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a3a8be8910..635a05bf2f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2082,6 +2083,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2151,6 +2153,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index cabc5af858..0dfc29288c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -218,7 +217,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 8f505c5045..5b09a03eef 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2079,6 +2080,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2148,6 +2150,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index cabc5af858..0dfc29288c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -218,7 +217,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 53ef6304f1..7019d97b8d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1708,6 +1708,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x21c
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x21c
GLIBC_2.12 sys_nerr D 0x4
@@ -2203,6 +2204,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
@@ -2412,6 +2414,7 @@ GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
GLIBC_2.4 printf F
GLIBC_2.4 printf_size F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 qecvt F
GLIBC_2.4 qecvt_r F
GLIBC_2.4 qfcvt F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 390b6384d0..ae285e5f15 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -131,7 +131,6 @@ GLIBC_2.1.1 sem_unlink F
GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -228,7 +227,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index eba0cb156d..deb4735664 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x438
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x438
GLIBC_2.12 sys_nerr D 0x4
@@ -2130,6 +2131,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2199,6 +2201,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 335f486cb5..cfccc04631 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -220,7 +219,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 17ce5dfd58..779b06605b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
GLIBC_2.12 _sys_errlist D 0x438
GLIBC_2.12 _sys_nerr D 0x4
GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 recvmmsg F
GLIBC_2.12 sys_errlist D 0x438
GLIBC_2.12 sys_nerr D 0x4
@@ -2089,6 +2090,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
@@ -2158,6 +2160,7 @@ GLIBC_2.4 open_wmemstream F
GLIBC_2.4 openat F
GLIBC_2.4 openat64 F
GLIBC_2.4 ppoll F
+GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 readlinkat F
GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 971269d2ef..6a53a8d4ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -1,6 +1,5 @@
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
@@ -217,7 +216,6 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 17a1c83903..a85d2af101 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1450,6 +1450,8 @@ GLIBC_2.16 pthread_exit F
GLIBC_2.16 pthread_getaffinity_np F
GLIBC_2.16 pthread_getattr_np F
GLIBC_2.16 pthread_getschedparam F
+GLIBC_2.16 pthread_mutex_consistent F
+GLIBC_2.16 pthread_mutex_consistent_np F
GLIBC_2.16 pthread_mutex_destroy F
GLIBC_2.16 pthread_mutex_init F
GLIBC_2.16 pthread_mutex_lock F
@@ -2186,3 +2188,4 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index b9bf4324a9..54a57590db 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -104,8 +104,6 @@ GLIBC_2.16 pthread_key_create F
GLIBC_2.16 pthread_key_delete F
GLIBC_2.16 pthread_kill F
GLIBC_2.16 pthread_kill_other_threads_np F
-GLIBC_2.16 pthread_mutex_consistent F
-GLIBC_2.16 pthread_mutex_consistent_np F
GLIBC_2.16 pthread_mutex_destroy F
GLIBC_2.16 pthread_mutex_getprioceiling F
GLIBC_2.16 pthread_mutex_init F
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/8] nptl: Move __pthread_cleanup_routine into libc
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
2021-03-04 12:11 ` [PATCH v3 1/8] nptl: Move pthread_mutex_consistent " Florian Weimer
@ 2021-03-04 12:11 ` Florian Weimer
2021-03-04 12:11 ` [PATCH 3/8] nptl: Move legacy unwinding implementation " Florian Weimer
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:11 UTC (permalink / raw)
To: libc-alpha
---
nptl/Makefile | 2 +-
nptl/Versions | 3 ++-
nptl/cleanup_routine.c | 12 ++++++++++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arc/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/csky/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/coldfire/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
.../unix/sysv/linux/m68k/m680x0/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
.../unix/sysv/linux/mips/mips32/libpthread.abilist | 1 -
.../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 ++
.../unix/sysv/linux/mips/mips64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/nios2/libpthread.abilist | 1 -
.../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc32/libpthread.abilist | 1 -
.../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 ++
.../sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libpthread.abilist | 1 -
.../sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
.../unix/sysv/linux/riscv/rv64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc32/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist | 1 -
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/x32/libpthread.abilist | 1 -
64 files changed, 77 insertions(+), 33 deletions(-)
diff --git a/nptl/Makefile b/nptl/Makefile
index e7853a7cc9..72edfc301f 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -30,6 +30,7 @@ extra-libs-others := $(extra-libs)
routines = \
alloca_cutoff \
+ cleanup_routine \
elision-conf \
elision-lock \
elision-timed \
@@ -99,7 +100,6 @@ libpthread-routines = \
cleanup_compat \
cleanup_defer \
cleanup_defer_compat \
- cleanup_routine \
events \
flockfile \
ftrylockfile \
diff --git a/nptl/Versions b/nptl/Versions
index 09fcc05ffe..f12e566b03 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -49,6 +49,7 @@ libc {
pthread_cond_wait;
}
GLIBC_2.3.3 {
+ __pthread_cleanup_routine;
pthread_attr_setaffinity_np;
pthread_getaffinity_np;
}
@@ -77,6 +78,7 @@ libc {
pthread_sigmask;
}
GLIBC_2.34 {
+ __pthread_cleanup_routine;
pthread_mutex_consistent;
}
GLIBC_PRIVATE {
@@ -314,7 +316,6 @@ libpthread {
}
GLIBC_2.3.3 {
- __pthread_cleanup_routine;
__pthread_register_cancel;
__pthread_register_cancel_defer;
__pthread_unregister_cancel;
diff --git a/nptl/cleanup_routine.c b/nptl/cleanup_routine.c
index 973f088be7..9710bf58ec 100644
--- a/nptl/cleanup_routine.c
+++ b/nptl/cleanup_routine.c
@@ -17,11 +17,19 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
-
+#include <shlib-compat.h>
void
-__pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
+___pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
{
if (f->__do_it)
f->__cancel_routine (f->__cancel_arg);
}
+versioned_symbol (libc, ___pthread_cleanup_routine, __pthread_cleanup_routine,
+ GLIBC_2_34);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_34)
+strong_alias (___pthread_cleanup_routine, __pthread_cleanup_routine_alias)
+compat_symbol (libc, __pthread_cleanup_routine_alias,
+ __pthread_cleanup_routine, GLIBC_2_3_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 231330e591..a55f3d9667 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -338,6 +338,7 @@ GLIBC_2.17 __printf_fp F
GLIBC_2.17 __profile_frequency F
GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __ptsname_r_chk F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __rawmemchr F
@@ -2174,4 +2175,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 61d7427ce2..6faf58d1e1 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.17 __lseek F
GLIBC_2.17 __open F
GLIBC_2.17 __open64 F
GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __pthread_getspecific F
GLIBC_2.17 __pthread_key_create F
GLIBC_2.17 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 72c1c3ae6a..54a11b7e76 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2147,6 +2147,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2255,6 +2256,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index ae285e5f15..f7aacc4472 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -203,7 +203,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 180b1e6244..a229125212 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -327,6 +327,7 @@ GLIBC_2.32 __printf_fp F
GLIBC_2.32 __profile_frequency F
GLIBC_2.32 __progname D 0x4
GLIBC_2.32 __progname_full D 0x4
+GLIBC_2.32 __pthread_cleanup_routine F
GLIBC_2.32 __ptsname_r_chk F
GLIBC_2.32 __pwrite64 F
GLIBC_2.32 __rawmemchr F
@@ -1934,4 +1935,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 2f76de6bfc..c635f1dac9 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -12,7 +12,6 @@ GLIBC_2.32 __lseek F
GLIBC_2.32 __open F
GLIBC_2.32 __open64 F
GLIBC_2.32 __pread64 F
-GLIBC_2.32 __pthread_cleanup_routine F
GLIBC_2.32 __pthread_getspecific F
GLIBC_2.32 __pthread_key_create F
GLIBC_2.32 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index e3781f0e83..cfc58ca510 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -157,6 +157,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -485,6 +486,7 @@ GLIBC_2.4 __printf_fp F
GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __pthread_cleanup_routine 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 3e000c237f..50fd6f5d1a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -48,7 +48,6 @@ GLIBC_2.4 __lseek F
GLIBC_2.4 __open F
GLIBC_2.4 __open64 F
GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_getspecific F
GLIBC_2.4 __pthread_key_create F
GLIBC_2.4 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 0cd363cc2d..e725ee6217 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -154,6 +154,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -482,6 +483,7 @@ GLIBC_2.4 __printf_fp F
GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __pthread_cleanup_routine 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 3e000c237f..50fd6f5d1a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -48,7 +48,6 @@ GLIBC_2.4 __lseek F
GLIBC_2.4 __open F
GLIBC_2.4 __open64 F
GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_getspecific F
GLIBC_2.4 __pthread_key_create F
GLIBC_2.4 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index c1e62a6df3..51d9d33b13 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -331,6 +331,7 @@ GLIBC_2.29 __printf_fp F
GLIBC_2.29 __profile_frequency F
GLIBC_2.29 __progname D 0x4
GLIBC_2.29 __progname_full D 0x4
+GLIBC_2.29 __pthread_cleanup_routine F
GLIBC_2.29 __ptsname_r_chk F
GLIBC_2.29 __pwrite64 F
GLIBC_2.29 __rawmemchr F
@@ -2118,4 +2119,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index f05530eb2a..e242edb9c3 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -12,7 +12,6 @@ GLIBC_2.29 __lseek F
GLIBC_2.29 __open F
GLIBC_2.29 __open64 F
GLIBC_2.29 __pread64 F
-GLIBC_2.29 __pthread_cleanup_routine F
GLIBC_2.29 __pthread_getspecific F
GLIBC_2.29 __pthread_key_create F
GLIBC_2.29 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 50d9080eb6..914aef5f35 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1996,6 +1996,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2076,6 +2077,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 0dfc29288c..5f87422e3f 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -195,7 +195,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d172849c32..f7ca08f695 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2161,6 +2161,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2243,6 +2244,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index d1e2b47f75..d32ce760fa 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -203,7 +203,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index e9e82e5ec8..a77ab9816b 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2028,6 +2028,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2108,6 +2109,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index cfccc04631..7c17d723de 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -195,7 +195,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index b0c0d7208d..49a3997d83 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -158,6 +158,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0x98
@@ -471,6 +472,7 @@ GLIBC_2.4 __printf_fp F
GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __pthread_cleanup_routine 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 3e000c237f..50fd6f5d1a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -48,7 +48,6 @@ GLIBC_2.4 __lseek F
GLIBC_2.4 __open F
GLIBC_2.4 __open64 F
GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_cleanup_routine F
GLIBC_2.4 __pthread_getspecific F
GLIBC_2.4 __pthread_key_create F
GLIBC_2.4 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index c312a9e726..9969b02829 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2105,6 +2105,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2188,6 +2189,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index d1e2b47f75..d32ce760fa 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -203,7 +203,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 4e5f7336c3..eb6d753ae8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -339,6 +339,7 @@ GLIBC_2.18 __printf_fp F
GLIBC_2.18 __profile_frequency F
GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
+GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __ptsname_r_chk F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __rawmemchr F
@@ -2169,4 +2170,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index fe2312fb86..9c4fd7ceba 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.18 __lseek F
GLIBC_2.18 __open F
GLIBC_2.18 __open64 F
GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __pthread_getspecific F
GLIBC_2.18 __pthread_key_create F
GLIBC_2.18 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 374e48889a..7c3d154267 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -339,6 +339,7 @@ GLIBC_2.18 __printf_fp F
GLIBC_2.18 __profile_frequency F
GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
+GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __ptsname_r_chk F
GLIBC_2.18 __pwrite64 F
GLIBC_2.18 __rawmemchr F
@@ -2166,4 +2167,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index fe2312fb86..9c4fd7ceba 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.18 __lseek F
GLIBC_2.18 __open F
GLIBC_2.18 __open64 F
GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_cleanup_routine F
GLIBC_2.18 __pthread_getspecific F
GLIBC_2.18 __pthread_key_create F
GLIBC_2.18 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index f4c9a0e288..bb2c61d8b4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2079,6 +2079,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2159,6 +2160,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 62bf9399d7..13e8544abb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -202,7 +202,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1935dd7207..7a418b2e12 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2077,6 +2077,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2157,6 +2158,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 62bf9399d7..13e8544abb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -202,7 +202,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 130dd19d46..29d9e4045a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2085,6 +2085,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x200
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2165,6 +2166,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_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 a8728b1a57..404789db07 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2078,6 +2078,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x400
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2159,6 +2160,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 040ee6c0b6..468444aa86 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -376,6 +376,7 @@ GLIBC_2.21 __printf_fp F
GLIBC_2.21 __profile_frequency F
GLIBC_2.21 __progname D 0x4
GLIBC_2.21 __progname_full D 0x4
+GLIBC_2.21 __pthread_cleanup_routine F
GLIBC_2.21 __ptsname_r_chk F
GLIBC_2.21 __pwrite64 F
GLIBC_2.21 __rawmemchr F
@@ -2207,4 +2208,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 84b9c738cd..1f8fea0c7e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.21 __lseek F
GLIBC_2.21 __open F
GLIBC_2.21 __open64 F
GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pthread_cleanup_routine F
GLIBC_2.21 __pthread_getspecific F
GLIBC_2.21 __pthread_key_create F
GLIBC_2.21 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index d51a3a1b32..41ba4fdb29 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2109,6 +2109,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
@@ -2215,6 +2216,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index ba3891cc85..90291af172 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -203,7 +203,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 6b0a6ef07e..1d030db5f7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2142,6 +2142,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 getcontext F
GLIBC_2.3.3 gnu_dev_major F
@@ -2248,6 +2249,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index d4fcc5479a..9f86b81d65 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1977,6 +1977,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2078,6 +2079,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index ab4566e7c6..e5d157b0fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -192,7 +192,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index bbe387fe61..599d06d56f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -424,6 +424,7 @@ GLIBC_2.17 __printf_fp F
GLIBC_2.17 __profile_frequency F
GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __ptsname_r_chk F
GLIBC_2.17 __pwrite64 F
GLIBC_2.17 __rawmemchr F
@@ -2369,4 +2370,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 61d7427ce2..6faf58d1e1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.17 __lseek F
GLIBC_2.17 __open F
GLIBC_2.17 __open64 F
GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_cleanup_routine F
GLIBC_2.17 __pthread_getspecific F
GLIBC_2.17 __pthread_key_create F
GLIBC_2.17 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 684acb6795..9f0068ba1c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -324,6 +324,7 @@ GLIBC_2.33 __printf_fp F
GLIBC_2.33 __profile_frequency F
GLIBC_2.33 __progname D 0x4
GLIBC_2.33 __progname_full D 0x4
+GLIBC_2.33 __pthread_cleanup_routine F
GLIBC_2.33 __ptsname_r_chk F
GLIBC_2.33 __pwrite64 F
GLIBC_2.33 __rawmemchr F
@@ -1936,4 +1937,5 @@ GLIBC_2.33 write F
GLIBC_2.33 writev F
GLIBC_2.33 wscanf F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 33b755ed10..76484b8073 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -12,7 +12,6 @@ GLIBC_2.33 __lseek F
GLIBC_2.33 __open F
GLIBC_2.33 __open64 F
GLIBC_2.33 __pread64 F
-GLIBC_2.33 __pthread_cleanup_routine F
GLIBC_2.33 __pthread_getspecific F
GLIBC_2.33 __pthread_key_create F
GLIBC_2.33 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 6f8afeb03e..833d6f11d6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -335,6 +335,7 @@ GLIBC_2.27 __printf_fp F
GLIBC_2.27 __profile_frequency F
GLIBC_2.27 __progname D 0x8
GLIBC_2.27 __progname_full D 0x8
+GLIBC_2.27 __pthread_cleanup_routine F
GLIBC_2.27 __ptsname_r_chk F
GLIBC_2.27 __pwrite64 F
GLIBC_2.27 __rawmemchr F
@@ -2136,4 +2137,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 4be8886aed..2332ba5927 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -13,7 +13,6 @@ GLIBC_2.27 __lseek F
GLIBC_2.27 __open F
GLIBC_2.27 __open64 F
GLIBC_2.27 __pread64 F
-GLIBC_2.27 __pthread_cleanup_routine F
GLIBC_2.27 __pthread_getspecific F
GLIBC_2.27 __pthread_key_create F
GLIBC_2.27 __pthread_mutex_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a4b1c00c78..a3e732e82f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2118,6 +2118,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _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 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 5de8344b6f..996863ab38 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -205,7 +205,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index c05c18c2bb..4443545ed0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2022,6 +2022,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2114,6 +2115,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 4313608817..c6bed3332a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -197,7 +197,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 635a05bf2f..f9cb4195cd 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2000,6 +2000,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2083,6 +2084,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 0dfc29288c..5f87422e3f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -195,7 +195,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 5b09a03eef..e1ae67a464 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2000,6 +2000,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2080,6 +2081,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 0dfc29288c..5f87422e3f 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -195,7 +195,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 7019d97b8d..9ca458b1c5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2112,6 +2112,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x104
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2204,6 +2205,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index ae285e5f15..f7aacc4472 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -203,7 +203,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index deb4735664..6af3cc116b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2051,6 +2051,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2131,6 +2132,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index cfccc04631..7c17d723de 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -195,7 +195,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 779b06605b..e267cc2a23 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2009,6 +2009,7 @@ GLIBC_2.3.2 pthread_cond_signal F
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 _sys_siglist D 0x208
GLIBC_2.3.3 gnu_dev_major F
GLIBC_2.3.3 gnu_dev_makedev F
@@ -2090,6 +2091,7 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_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 6a53a8d4ba..6efd2bc164 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -194,7 +194,6 @@ GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
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
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index a85d2af101..50e860fe40 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -339,6 +339,7 @@ GLIBC_2.16 __printf_fp F
GLIBC_2.16 __profile_frequency F
GLIBC_2.16 __progname D 0x4
GLIBC_2.16 __progname_full D 0x4
+GLIBC_2.16 __pthread_cleanup_routine F
GLIBC_2.16 __ptsname_r_chk F
GLIBC_2.16 __pwrite64 F
GLIBC_2.16 __rawmemchr F
@@ -2188,4 +2189,5 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 54a57590db..62b31dc136 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -14,7 +14,6 @@ GLIBC_2.16 __lseek F
GLIBC_2.16 __open F
GLIBC_2.16 __open64 F
GLIBC_2.16 __pread64 F
-GLIBC_2.16 __pthread_cleanup_routine F
GLIBC_2.16 __pthread_getspecific F
GLIBC_2.16 __pthread_key_create F
GLIBC_2.16 __pthread_mutex_destroy F
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/8] nptl: Move legacy unwinding implementation into libc
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
2021-03-04 12:11 ` [PATCH v3 1/8] nptl: Move pthread_mutex_consistent " Florian Weimer
2021-03-04 12:11 ` [PATCH 2/8] nptl: Move __pthread_cleanup_routine " Florian Weimer
@ 2021-03-04 12:11 ` Florian Weimer
2021-03-04 12:11 ` [PATCH 4/8] nptl: Move legacy cancelation handling into libc as compat symbols Florian Weimer
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:11 UTC (permalink / raw)
To: libc-alpha
It is still used internally. Since unwinding is now available
unconditionally, avoid indirect calls through function pointers loaded
from the stack by inlining the non-cancellation cleanup code. This
avoids a regression in security hardening.
The out-of-line __libc_cleanup_routine implementation is no longer
needed because the inline definition is now static __always_inline.
---
nptl/Versions | 2 +
nptl/cleanup_defer_compat.c | 56 ++--------------------------
nptl/libc-cleanup.c | 64 ++++++++++++++++++++++++++++++--
nptl/nptl-init.c | 2 -
sysdeps/nptl/libc-lock.h | 59 ++++++++++++++---------------
sysdeps/nptl/libc-lockP.h | 22 +----------
sysdeps/nptl/pthread-functions.h | 4 --
7 files changed, 97 insertions(+), 112 deletions(-)
diff --git a/nptl/Versions b/nptl/Versions
index f12e566b03..59b1d66fee 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -86,6 +86,8 @@ libc {
__futex_abstimed_wait_cancelable64;
__libc_alloca_cutoff;
__libc_allocate_rtsig_private;
+ __libc_cleanup_pop_restore;
+ __libc_cleanup_push_defer;
__libc_current_sigrtmax_private;
__libc_current_sigrtmin_private;
__libc_dl_error_tsd;
diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
index 49ef53ea60..1957318208 100644
--- a/nptl/cleanup_defer_compat.c
+++ b/nptl/cleanup_defer_compat.c
@@ -17,41 +17,15 @@
<https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
-
+#include <libc-lock.h>
void
_pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg)
{
- struct pthread *self = THREAD_SELF;
-
buffer->__routine = routine;
buffer->__arg = arg;
- buffer->__prev = THREAD_GETMEM (self, cleanup);
-
- int cancelhandling = THREAD_GETMEM (self, cancelhandling);
-
- /* Disable asynchronous cancellation for now. */
- if (__glibc_unlikely (cancelhandling & CANCELTYPE_BITMASK))
- while (1)
- {
- int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
- cancelhandling
- & ~CANCELTYPE_BITMASK,
- cancelhandling);
- if (__glibc_likely (curval == cancelhandling))
- /* Successfully replaced the value. */
- break;
-
- /* Prepare for the next round. */
- cancelhandling = curval;
- }
-
- buffer->__canceltype = (cancelhandling & CANCELTYPE_BITMASK
- ? PTHREAD_CANCEL_ASYNCHRONOUS
- : PTHREAD_CANCEL_DEFERRED);
-
- THREAD_SETMEM (self, cleanup, buffer);
+ __libc_cleanup_push_defer (buffer);
}
strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
@@ -60,31 +34,7 @@ void
_pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
int execute)
{
- struct pthread *self = THREAD_SELF;
-
- THREAD_SETMEM (self, cleanup, buffer->__prev);
-
- int cancelhandling;
- if (__builtin_expect (buffer->__canceltype != PTHREAD_CANCEL_DEFERRED, 0)
- && ((cancelhandling = THREAD_GETMEM (self, cancelhandling))
- & CANCELTYPE_BITMASK) == 0)
- {
- while (1)
- {
- int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
- cancelhandling
- | CANCELTYPE_BITMASK,
- cancelhandling);
- if (__glibc_likely (curval == cancelhandling))
- /* Successfully replaced the value. */
- break;
-
- /* Prepare for the next round. */
- cancelhandling = curval;
- }
-
- CANCELLATION_P (self);
- }
+ __libc_cleanup_pop_restore (buffer);
/* If necessary call the cleanup routine after we removed the
current cleanup block from the list. */
diff --git a/nptl/libc-cleanup.c b/nptl/libc-cleanup.c
index 61f97eceda..14ccfe9285 100644
--- a/nptl/libc-cleanup.c
+++ b/nptl/libc-cleanup.c
@@ -17,11 +17,69 @@
<https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
+#include <tls.h>
+#include <libc-lock.h>
+void
+__libc_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer)
+{
+ struct pthread *self = THREAD_SELF;
+
+ buffer->__prev = THREAD_GETMEM (self, cleanup);
+
+ int cancelhandling = THREAD_GETMEM (self, cancelhandling);
+
+ /* Disable asynchronous cancellation for now. */
+ if (__glibc_unlikely (cancelhandling & CANCELTYPE_BITMASK))
+ while (1)
+ {
+ int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
+ cancelhandling
+ & ~CANCELTYPE_BITMASK,
+ cancelhandling);
+ if (__glibc_likely (curval == cancelhandling))
+ /* Successfully replaced the value. */
+ break;
+
+ /* Prepare for the next round. */
+ cancelhandling = curval;
+ }
+
+ buffer->__canceltype = (cancelhandling & CANCELTYPE_BITMASK
+ ? PTHREAD_CANCEL_ASYNCHRONOUS
+ : PTHREAD_CANCEL_DEFERRED);
+
+ THREAD_SETMEM (self, cleanup, buffer);
+}
+libc_hidden_def (__libc_cleanup_push_defer)
void
-__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
+__libc_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer)
{
- if (f->__do_it)
- f->__cancel_routine (f->__cancel_arg);
+ struct pthread *self = THREAD_SELF;
+
+ THREAD_SETMEM (self, cleanup, buffer->__prev);
+
+ int cancelhandling;
+ if (__builtin_expect (buffer->__canceltype != PTHREAD_CANCEL_DEFERRED, 0)
+ && ((cancelhandling = THREAD_GETMEM (self, cancelhandling))
+ & CANCELTYPE_BITMASK) == 0)
+ {
+ while (1)
+ {
+ int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
+ cancelhandling
+ | CANCELTYPE_BITMASK,
+ cancelhandling);
+ if (__glibc_likely (curval == cancelhandling))
+ /* Successfully replaced the value. */
+ break;
+
+ /* Prepare for the next round. */
+ cancelhandling = curval;
+ }
+
+ CANCELLATION_P (self);
+ }
}
+libc_hidden_def (__libc_cleanup_pop_restore)
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 865ee8db29..c2b563cc68 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -96,8 +96,6 @@ static const struct pthread_functions pthread_functions =
.ptr___pthread_key_create = __pthread_key_create,
.ptr___pthread_getspecific = __pthread_getspecific,
.ptr___pthread_setspecific = __pthread_setspecific,
- .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
- .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
.ptr_nthreads = &__nptl_nthreads,
.ptr___pthread_unwind = &__pthread_unwind,
.ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
diff --git a/sysdeps/nptl/libc-lock.h b/sysdeps/nptl/libc-lock.h
index dea96121b3..56fe83f69f 100644
--- a/sysdeps/nptl/libc-lock.h
+++ b/sysdeps/nptl/libc-lock.h
@@ -143,39 +143,40 @@ typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
__libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
#endif
-/* Note that for I/O cleanup handling we are using the old-style
- cancel handling. It does not have to be integrated with C++ since
- no C++ code is called in the middle. The old-style handling is
- faster and the support is not going away. */
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
- void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
- int execute);
+/* Put the unwind buffer BUFFER on the per-thread callback stack. The
+ caller must fill BUFFER->__routine and BUFFER->__arg before calling
+ this function. */
+void __libc_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer);
+libc_hidden_proto (__libc_cleanup_push_defer)
+/* Remove BUFFER from the unwind callback stack. The caller must invoke
+ the callback if desired. */
+void __libc_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer);
+libc_hidden_proto (__libc_cleanup_pop_restore)
/* Start critical region with cleanup. */
-#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
- { struct _pthread_cleanup_buffer _buffer; \
- int _avail; \
- if (DOIT) { \
- _avail = PTFAVAIL (_pthread_cleanup_push_defer); \
- if (_avail) { \
- __libc_ptf_call_always (_pthread_cleanup_push_defer, (&_buffer, FCT, \
- ARG)); \
- } else { \
- _buffer.__routine = (FCT); \
- _buffer.__arg = (ARG); \
- } \
- } else { \
- _avail = 0; \
- }
+#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
+ { bool _cleanup_start_doit; \
+ struct _pthread_cleanup_buffer _buffer; \
+ /* Non-addresable copy of FCT, so that we avoid indirect calls on \
+ the non-unwinding path. */ \
+ void (*_cleanup_routine) (void *) = (FCT); \
+ _buffer.__arg = (ARG); \
+ if (DOIT) \
+ { \
+ _cleanup_start_doit = true; \
+ _buffer.__routine = _cleanup_routine; \
+ __libc_cleanup_push_defer (&_buffer); \
+ } \
+ else \
+ _cleanup_start_doit = false;
/* End critical region with cleanup. */
-#define __libc_cleanup_region_end(DOIT) \
- if (_avail) { \
- __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
- } else if (DOIT) \
- _buffer.__routine (_buffer.__arg); \
- }
+#define __libc_cleanup_region_end(DOIT) \
+ if (_cleanup_start_doit) \
+ __libc_cleanup_pop_restore (&_buffer); \
+ if (DOIT) \
+ _cleanup_routine (_buffer.__arg); \
+ } /* matches __libc_cleanup_region_start */
/* Hide the definitions which are only supposed to be used inside libc in
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 4a0b96e6d9..6db3b4d8c6 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -251,32 +251,12 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
/* Get once control variable. */
#define __libc_once_get(ONCE_CONTROL) ((ONCE_CONTROL) != PTHREAD_ONCE_INIT)
-/* Note that for I/O cleanup handling we are using the old-style
- cancel handling. It does not have to be integrated with C++ snce
- no C++ code is called in the middle. The old-style handling is
- faster and the support is not going away. */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
- void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
- int execute);
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
- void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
- int execute);
-
-/* Sometimes we have to exit the block in the middle. */
-#define __libc_cleanup_end(DOIT) \
- if (_avail) { \
- __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
- } else if (DOIT) \
- _buffer.__routine (_buffer.__arg)
-
/* __libc_cleanup_push and __libc_cleanup_pop depend on exception
handling and stack unwinding. */
#ifdef __EXCEPTIONS
/* Normal cleanup handling, based on C cleanup attribute. */
-__extern_inline void
+static __always_inline void
__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
{
if (f->__do_it)
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index 97a5c48939..4268084b66 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -57,10 +57,6 @@ struct pthread_functions
int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *));
void *(*ptr___pthread_getspecific) (pthread_key_t);
int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
- void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer *,
- void (*) (void *), void *);
- void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *,
- int);
#define HAVE_PTR_NTHREADS
unsigned int *ptr_nthreads;
void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 4/8] nptl: Move legacy cancelation handling into libc as compat symbols
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
` (2 preceding siblings ...)
2021-03-04 12:11 ` [PATCH 3/8] nptl: Move legacy unwinding implementation " Florian Weimer
@ 2021-03-04 12:11 ` Florian Weimer
2021-03-04 12:11 ` [PATCH 5/8] nptl: Remove longjmp, siglongjmp from libpthread Florian Weimer
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:11 UTC (permalink / raw)
To: libc-alpha
This affects _pthread_cleanup_pop, _pthread_cleanup_pop_restore,
_pthread_cleanup_push, _pthread_cleanup_push_defer. The symbols
have been moved using scripts/move-symbol-to-libc.py.
No new symbol versions are added because the symbols are turned into
compatibility symbols at the same time.
---
nptl/Makefile | 15 ++++++++++----
nptl/Versions | 10 ++++++----
nptl/cleanup_compat.c | 16 +++++++++------
nptl/cleanup_defer_compat.c | 20 ++++++++++++-------
nptl/pthreadP.h | 9 ++++-----
nptl/tst-cleanup4.c | 5 +++++
nptl/tst-cleanup4aux.c | 5 +++++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++++
.../sysv/linux/aarch64/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++++
.../unix/sysv/linux/alpha/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++++
.../unix/sysv/linux/arc/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++++
.../unix/sysv/linux/arm/be/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++++
.../unix/sysv/linux/arm/le/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++++
.../unix/sysv/linux/csky/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++++
.../unix/sysv/linux/hppa/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++++
.../unix/sysv/linux/i386/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++++
.../unix/sysv/linux/ia64/libpthread.abilist | 4 ----
.../sysv/linux/m68k/coldfire/libc.abilist | 4 ++++
.../linux/m68k/coldfire/libpthread.abilist | 4 ----
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 4 ----
.../sysv/linux/microblaze/be/libc.abilist | 4 ++++
.../linux/microblaze/be/libpthread.abilist | 4 ----
.../sysv/linux/microblaze/le/libc.abilist | 4 ++++
.../linux/microblaze/le/libpthread.abilist | 4 ----
.../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++++
.../sysv/linux/mips/mips32/libpthread.abilist | 4 ----
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/libpthread.abilist | 4 ----
.../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++++
.../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++++
.../unix/sysv/linux/nios2/libpthread.abilist | 4 ----
.../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++++
.../powerpc/powerpc32/libpthread.abilist | 4 ----
.../powerpc/powerpc32/nofpu/libc.abilist | 4 ++++
.../linux/powerpc/powerpc64/be/libc.abilist | 4 ++++
.../powerpc/powerpc64/be/libpthread.abilist | 4 ----
.../linux/powerpc/powerpc64/le/libc.abilist | 4 ++++
.../powerpc/powerpc64/le/libpthread.abilist | 4 ----
.../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++++
.../sysv/linux/riscv/rv32/libpthread.abilist | 4 ----
.../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++++
.../sysv/linux/riscv/rv64/libpthread.abilist | 4 ----
.../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++++
.../linux/s390/s390-32/libpthread.abilist | 4 ----
.../unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++++
.../linux/s390/s390-64/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++++
.../unix/sysv/linux/sh/be/libpthread.abilist | 4 ----
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++++
.../unix/sysv/linux/sh/le/libpthread.abilist | 4 ----
.../sysv/linux/sparc/sparc32/libc.abilist | 4 ++++
.../linux/sparc/sparc32/libpthread.abilist | 4 ----
.../sysv/linux/sparc/sparc64/libc.abilist | 4 ++++
.../linux/sparc/sparc64/libpthread.abilist | 4 ----
.../unix/sysv/linux/x86_64/64/libc.abilist | 4 ++++
.../sysv/linux/x86_64/64/libpthread.abilist | 4 ----
.../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++++
.../sysv/linux/x86_64/x32/libpthread.abilist | 4 ----
68 files changed, 182 insertions(+), 142 deletions(-)
diff --git a/nptl/Makefile b/nptl/Makefile
index 72edfc301f..62811834d6 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -30,6 +30,8 @@ extra-libs-others := $(extra-libs)
routines = \
alloca_cutoff \
+ cleanup_compat \
+ cleanup_defer_compat \
cleanup_routine \
elision-conf \
elision-lock \
@@ -97,9 +99,7 @@ libpthread-routines = \
$(pthread-compat-wrappers) \
cancellation \
cleanup \
- cleanup_compat \
cleanup_defer \
- cleanup_defer_compat \
events \
flockfile \
ftrylockfile \
@@ -346,7 +346,6 @@ tests = tst-attr2 tst-attr3 tst-default-attr \
tst-tsd3 tst-tsd4 \
tst-cancel4_1 tst-cancel4_2 \
tst-cancel7 tst-cancel17 tst-cancel24 \
- tst-cleanup4 \
tst-signal3 \
tst-exec4 tst-exec5 \
tst-stack2 tst-stack3 tst-stack4 \
@@ -424,7 +423,7 @@ endif
LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
-tests += tst-cancelx7 tst-cancelx17 tst-cleanupx4
+tests += tst-cancelx7 tst-cancelx17
ifeq ($(build-shared),yes)
tests += tst-compat-forwarder tst-audit-threads
@@ -444,6 +443,14 @@ extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \
tst-cleanup4aux.o tst-cleanupx4aux.o
test-extras += tst-cleanup4aux tst-cleanupx4aux
+# This test exercises compat symbols removed in glibc 2.34.
+ifdef have-GLIBC_2.33
+tests += tst-cleanup4
+ifeq ($(build-shared),yes)
+tests += tst-cleanupx4
+endif
+endif
+
tst-tls3mod.so-no-z-defs = yes
tst-tls5mod.so-no-z-defs = yes
tst-tls5moda.so-no-z-defs = yes
diff --git a/nptl/Versions b/nptl/Versions
index 59b1d66fee..194ad5b87c 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -1,5 +1,9 @@
libc {
GLIBC_2.0 {
+ _pthread_cleanup_pop;
+ _pthread_cleanup_pop_restore;
+ _pthread_cleanup_push;
+ _pthread_cleanup_push_defer;
pthread_attr_destroy;
pthread_attr_getdetachstate;
pthread_attr_getinheritsched;
@@ -103,6 +107,8 @@ libc {
__pthread_attr_init;
__pthread_attr_setaffinity_np;
__pthread_attr_setsigmask_internal;
+ __pthread_cleanup_pop;
+ __pthread_cleanup_push;
__pthread_cond_destroy; # Used by the C11 threads.
__pthread_cond_init; # Used by the C11 threads.
__pthread_force_elision;
@@ -142,10 +148,6 @@ libpthread {
__sigaction;
__write;
_exit;
- _pthread_cleanup_pop;
- _pthread_cleanup_pop_restore;
- _pthread_cleanup_push;
- _pthread_cleanup_push_defer;
accept;
close;
connect;
diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
index fec88c2f86..b5fd657c38 100644
--- a/nptl/cleanup_compat.c
+++ b/nptl/cleanup_compat.c
@@ -16,12 +16,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#include <shlib-compat.h>
#include <stdlib.h>
#include "pthreadP.h"
-
void
-_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
+__pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg)
{
struct pthread *self = THREAD_SELF;
@@ -32,11 +32,10 @@ _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
THREAD_SETMEM (self, cleanup, buffer);
}
-strong_alias (_pthread_cleanup_push, __pthread_cleanup_push)
-
+libc_hidden_def (__pthread_cleanup_push)
void
-_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
+__pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
{
struct pthread *self __attribute ((unused)) = THREAD_SELF;
@@ -47,4 +46,9 @@ _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
if (execute)
buffer->__routine (buffer->__arg);
}
-strong_alias (_pthread_cleanup_pop, __pthread_cleanup_pop)
+libc_hidden_def (__pthread_cleanup_pop)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+compat_symbol (libc, __pthread_cleanup_push, _pthread_cleanup_push, GLIBC_2_0);
+compat_symbol (libc, __pthread_cleanup_pop, _pthread_cleanup_pop, GLIBC_2_0);
+#endif /* SHLIB_COMPAT */
diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
index 1957318208..a172218b42 100644
--- a/nptl/cleanup_defer_compat.c
+++ b/nptl/cleanup_defer_compat.c
@@ -16,10 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include "pthreadP.h"
-#include <libc-lock.h>
+#include <shlib-compat.h>
-void
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_34)
+# include "pthreadP.h"
+# include <libc-lock.h>
+
+void attribute_compat_text_section
_pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg)
{
@@ -27,10 +30,10 @@ _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
buffer->__arg = arg;
__libc_cleanup_push_defer (buffer);
}
-strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
-
+compat_symbol (libc, _pthread_cleanup_push_defer,
+ _pthread_cleanup_push_defer, GLIBC_2_0);
-void
+void attribute_compat_text_section
_pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
int execute)
{
@@ -41,4 +44,7 @@ _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
if (execute)
buffer->__routine (buffer->__arg);
}
-strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore)
+compat_symbol (libc, _pthread_cleanup_pop_restore,
+ _pthread_cleanup_pop_restore, GLIBC_2_0);
+
+#endif /* SHLIB_COMPAT */
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index d2fd0826fe..ee1e87f56b 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -585,11 +585,10 @@ libc_hidden_proto (__pthread_attr_setsigmask_internal)
extern __typeof (pthread_attr_getsigmask_np) __pthread_attr_getsigmask_np;
libc_hidden_proto (__pthread_attr_getsigmask_np)
-#if IS_IN (libpthread)
/* Special versions which use non-exported functions. */
extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
- void (*routine) (void *), void *arg)
- attribute_hidden;
+ void (*routine) (void *), void *arg);
+libc_hidden_proto (__pthread_cleanup_push)
/* Replace cleanup macros defined in <pthread.h> with internal
versions that don't depend on unwind info and better support
@@ -600,11 +599,11 @@ extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
__pthread_cleanup_push (&_buffer, (routine), (arg));
extern void __pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
- int execute) attribute_hidden;
+ int execute);
+libc_hidden_proto (__pthread_cleanup_pop)
# undef pthread_cleanup_pop
# define pthread_cleanup_pop(execute) \
__pthread_cleanup_pop (&_buffer, (execute)); }
-#endif
extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
void (*routine) (void *), void *arg);
diff --git a/nptl/tst-cleanup4.c b/nptl/tst-cleanup4.c
index 24c062db1a..4eb51580bc 100644
--- a/nptl/tst-cleanup4.c
+++ b/nptl/tst-cleanup4.c
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -25,8 +26,12 @@
extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
void (*__routine) (void *),
void *__arg);
+compat_symbol_reference (libc, _pthread_cleanup_push,
+ _pthread_cleanup_push, GLIBC_2_0);
extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
int __execute);
+compat_symbol_reference (libc, _pthread_cleanup_pop,
+ _pthread_cleanup_pop, GLIBC_2_0);
static int fds[2];
static pthread_barrier_t b2;
diff --git a/nptl/tst-cleanup4aux.c b/nptl/tst-cleanup4aux.c
index d20730ddf2..7713f9c612 100644
--- a/nptl/tst-cleanup4aux.c
+++ b/nptl/tst-cleanup4aux.c
@@ -17,6 +17,7 @@
<https://www.gnu.org/licenses/>. */
#include <pthread.h>
+#include <shlib-compat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -24,8 +25,12 @@
extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
void (*__routine) (void *),
void *__arg);
+compat_symbol_reference (libc, _pthread_cleanup_push,
+ _pthread_cleanup_push, GLIBC_2_0);
extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
int __execute);
+compat_symbol_reference (libc, _pthread_cleanup_pop,
+ _pthread_cleanup_pop, GLIBC_2_0);
extern void clh (void *arg);
extern void fn0 (void);
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index a55f3d9667..a585f7d30d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -538,6 +538,10 @@ GLIBC_2.17 _obstack_begin_1 F
GLIBC_2.17 _obstack_free F
GLIBC_2.17 _obstack_memory_used F
GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 _res D 0x238
GLIBC_2.17 _res_hconf D 0x48
GLIBC_2.17 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 6faf58d1e1..f1e3ca46ec 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
GLIBC_2.17 __write F
-GLIBC_2.17 _pthread_cleanup_pop F
-GLIBC_2.17 _pthread_cleanup_pop_restore F
-GLIBC_2.17 _pthread_cleanup_push F
-GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 accept F
GLIBC_2.17 close F
GLIBC_2.17 connect F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 54a11b7e76..c9ac935ccf 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -277,6 +277,10 @@ GLIBC_2.0 _obstack_newchunk F
GLIBC_2.0 _outb F
GLIBC_2.0 _outl F
GLIBC_2.0 _outw F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x238
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index f7aacc4472..ef7a0d8e8f 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index a229125212..27fecc5c8a 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -506,6 +506,10 @@ GLIBC_2.32 _obstack_begin_1 F
GLIBC_2.32 _obstack_free F
GLIBC_2.32 _obstack_memory_used F
GLIBC_2.32 _obstack_newchunk F
+GLIBC_2.32 _pthread_cleanup_pop F
+GLIBC_2.32 _pthread_cleanup_pop_restore F
+GLIBC_2.32 _pthread_cleanup_push F
+GLIBC_2.32 _pthread_cleanup_push_defer F
GLIBC_2.32 _res D 0x200
GLIBC_2.32 _res_hconf D 0x30
GLIBC_2.32 _setjmp F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index c635f1dac9..9713a20071 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -42,10 +42,6 @@ GLIBC_2.32 __res_state F
GLIBC_2.32 __send F
GLIBC_2.32 __sigaction F
GLIBC_2.32 __write F
-GLIBC_2.32 _pthread_cleanup_pop F
-GLIBC_2.32 _pthread_cleanup_pop_restore F
-GLIBC_2.32 _pthread_cleanup_push F
-GLIBC_2.32 _pthread_cleanup_push_defer F
GLIBC_2.32 accept F
GLIBC_2.32 call_once F
GLIBC_2.32 close F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index cfc58ca510..2383d95094 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -683,6 +683,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x200
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 50fd6f5d1a..d025072ee3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index e725ee6217..bb46b8b5e3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -680,6 +680,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x200
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 50fd6f5d1a..d025072ee3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 51d9d33b13..684e451f83 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -515,6 +515,10 @@ GLIBC_2.29 _obstack_begin_1 F
GLIBC_2.29 _obstack_free F
GLIBC_2.29 _obstack_memory_used F
GLIBC_2.29 _obstack_newchunk F
+GLIBC_2.29 _pthread_cleanup_pop F
+GLIBC_2.29 _pthread_cleanup_pop_restore F
+GLIBC_2.29 _pthread_cleanup_push F
+GLIBC_2.29 _pthread_cleanup_push_defer F
GLIBC_2.29 _res D 0x200
GLIBC_2.29 _res_hconf D 0x30
GLIBC_2.29 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index e242edb9c3..bb8a51a51d 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -42,10 +42,6 @@ GLIBC_2.29 __res_state F
GLIBC_2.29 __send F
GLIBC_2.29 __sigaction F
GLIBC_2.29 __write F
-GLIBC_2.29 _pthread_cleanup_pop F
-GLIBC_2.29 _pthread_cleanup_pop_restore F
-GLIBC_2.29 _pthread_cleanup_push F
-GLIBC_2.29 _pthread_cleanup_push_defer F
GLIBC_2.29 accept F
GLIBC_2.29 call_once F
GLIBC_2.29 close F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 914aef5f35..8dde237f8b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -502,6 +502,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 5f87422e3f..39d53b749c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index f7ca08f695..cc2226be23 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index d32ce760fa..664f51e01d 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index a77ab9816b..438f3bd131 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -514,6 +514,10 @@ GLIBC_2.2 _obstack_newchunk F
GLIBC_2.2 _outb F
GLIBC_2.2 _outl F
GLIBC_2.2 _outw F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 7c17d723de..291aa79fc6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 49a3997d83..5add3e607a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -671,6 +671,10 @@ GLIBC_2.4 _obstack_begin_1 F
GLIBC_2.4 _obstack_free F
GLIBC_2.4 _obstack_memory_used F
GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 _res D 0x1fe
GLIBC_2.4 _res_hconf D 0x30
GLIBC_2.4 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 50fd6f5d1a..d025072ee3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -78,10 +78,6 @@ GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
GLIBC_2.4 accept F
GLIBC_2.4 close F
GLIBC_2.4 connect F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 9969b02829..2e7c9f9b47 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x1fe
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index d32ce760fa..664f51e01d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index eb6d753ae8..493f7ddaa0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -541,6 +541,10 @@ GLIBC_2.18 _obstack_begin_1 F
GLIBC_2.18 _obstack_free F
GLIBC_2.18 _obstack_memory_used F
GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 _res D 0x200
GLIBC_2.18 _res_hconf D 0x30
GLIBC_2.18 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 9c4fd7ceba..9617cf2810 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.18 __res_state F
GLIBC_2.18 __send F
GLIBC_2.18 __sigaction F
GLIBC_2.18 __write F
-GLIBC_2.18 _pthread_cleanup_pop F
-GLIBC_2.18 _pthread_cleanup_pop_restore F
-GLIBC_2.18 _pthread_cleanup_push F
-GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 accept F
GLIBC_2.18 close F
GLIBC_2.18 connect F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 7c3d154267..ec83b89aa3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -541,6 +541,10 @@ GLIBC_2.18 _obstack_begin_1 F
GLIBC_2.18 _obstack_free F
GLIBC_2.18 _obstack_memory_used F
GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 _res D 0x200
GLIBC_2.18 _res_hconf D 0x30
GLIBC_2.18 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 9c4fd7ceba..9617cf2810 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.18 __res_state F
GLIBC_2.18 __send F
GLIBC_2.18 __sigaction F
GLIBC_2.18 __write F
-GLIBC_2.18 _pthread_cleanup_pop F
-GLIBC_2.18 _pthread_cleanup_pop_restore F
-GLIBC_2.18 _pthread_cleanup_push F
-GLIBC_2.18 _pthread_cleanup_push_defer F
GLIBC_2.18 accept F
GLIBC_2.18 close F
GLIBC_2.18 connect F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index bb2c61d8b4..cb0ab4bc19 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 13e8544abb..b9c9a88bc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 7a418b2e12..2be2623e99 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 13e8544abb..b9c9a88bc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 29d9e4045a..09147861b5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -262,6 +262,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 404789db07..4a0208c8c8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -260,6 +260,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x238
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 468444aa86..078025a7d6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -582,6 +582,10 @@ GLIBC_2.21 _obstack_begin_1 F
GLIBC_2.21 _obstack_free F
GLIBC_2.21 _obstack_memory_used F
GLIBC_2.21 _obstack_newchunk F
+GLIBC_2.21 _pthread_cleanup_pop F
+GLIBC_2.21 _pthread_cleanup_pop_restore F
+GLIBC_2.21 _pthread_cleanup_push F
+GLIBC_2.21 _pthread_cleanup_push_defer F
GLIBC_2.21 _res D 0x200
GLIBC_2.21 _res_hconf D 0x30
GLIBC_2.21 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 1f8fea0c7e..a0d444f1aa 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.21 __res_state F
GLIBC_2.21 __send F
GLIBC_2.21 __sigaction F
GLIBC_2.21 __write F
-GLIBC_2.21 _pthread_cleanup_pop F
-GLIBC_2.21 _pthread_cleanup_pop_restore F
-GLIBC_2.21 _pthread_cleanup_push F
-GLIBC_2.21 _pthread_cleanup_push_defer F
GLIBC_2.21 accept F
GLIBC_2.21 close F
GLIBC_2.21 connect F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 41ba4fdb29..bc79b844a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -275,6 +275,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 90291af172..0d8dc2be7a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 1d030db5f7..63c05472ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -275,6 +275,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 9f86b81d65..37e4ee564d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -561,6 +561,10 @@ GLIBC_2.3 _obstack_begin_1 F
GLIBC_2.3 _obstack_free F
GLIBC_2.3 _obstack_memory_used F
GLIBC_2.3 _obstack_newchunk F
+GLIBC_2.3 _pthread_cleanup_pop F
+GLIBC_2.3 _pthread_cleanup_pop_restore F
+GLIBC_2.3 _pthread_cleanup_push F
+GLIBC_2.3 _pthread_cleanup_push_defer F
GLIBC_2.3 _res D 0x238
GLIBC_2.3 _res_hconf D 0x48
GLIBC_2.3 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index e5d157b0fe..f9fe6b088c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -67,10 +67,6 @@ GLIBC_2.3 __res_state F
GLIBC_2.3 __send F
GLIBC_2.3 __sigaction F
GLIBC_2.3 __write F
-GLIBC_2.3 _pthread_cleanup_pop F
-GLIBC_2.3 _pthread_cleanup_pop_restore F
-GLIBC_2.3 _pthread_cleanup_push F
-GLIBC_2.3 _pthread_cleanup_push_defer F
GLIBC_2.3 accept F
GLIBC_2.3 close F
GLIBC_2.3 connect F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 599d06d56f..1888ec6e86 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -627,6 +627,10 @@ GLIBC_2.17 _obstack_begin_1 F
GLIBC_2.17 _obstack_free F
GLIBC_2.17 _obstack_memory_used F
GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 _res D 0x238
GLIBC_2.17 _res_hconf D 0x48
GLIBC_2.17 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 6faf58d1e1..f1e3ca46ec 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
GLIBC_2.17 __write F
-GLIBC_2.17 _pthread_cleanup_pop F
-GLIBC_2.17 _pthread_cleanup_pop_restore F
-GLIBC_2.17 _pthread_cleanup_push F
-GLIBC_2.17 _pthread_cleanup_push_defer F
GLIBC_2.17 accept F
GLIBC_2.17 close F
GLIBC_2.17 connect F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 9f0068ba1c..8cd92b1abe 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -500,6 +500,10 @@ GLIBC_2.33 _obstack_begin_1 F
GLIBC_2.33 _obstack_free F
GLIBC_2.33 _obstack_memory_used F
GLIBC_2.33 _obstack_newchunk F
+GLIBC_2.33 _pthread_cleanup_pop F
+GLIBC_2.33 _pthread_cleanup_pop_restore F
+GLIBC_2.33 _pthread_cleanup_push F
+GLIBC_2.33 _pthread_cleanup_push_defer F
GLIBC_2.33 _res D 0x200
GLIBC_2.33 _res_hconf D 0x30
GLIBC_2.33 _setjmp F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 76484b8073..71e8f38003 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -42,10 +42,6 @@ GLIBC_2.33 __res_state F
GLIBC_2.33 __send F
GLIBC_2.33 __sigaction F
GLIBC_2.33 __write F
-GLIBC_2.33 _pthread_cleanup_pop F
-GLIBC_2.33 _pthread_cleanup_pop_restore F
-GLIBC_2.33 _pthread_cleanup_push F
-GLIBC_2.33 _pthread_cleanup_push_defer F
GLIBC_2.33 accept F
GLIBC_2.33 call_once F
GLIBC_2.33 close F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 833d6f11d6..894f01282f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -521,6 +521,10 @@ GLIBC_2.27 _obstack_begin_1 F
GLIBC_2.27 _obstack_free F
GLIBC_2.27 _obstack_memory_used F
GLIBC_2.27 _obstack_newchunk F
+GLIBC_2.27 _pthread_cleanup_pop F
+GLIBC_2.27 _pthread_cleanup_pop_restore F
+GLIBC_2.27 _pthread_cleanup_push F
+GLIBC_2.27 _pthread_cleanup_push_defer F
GLIBC_2.27 _res D 0x238
GLIBC_2.27 _res_hconf D 0x48
GLIBC_2.27 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 2332ba5927..f5f9baefb9 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -43,10 +43,6 @@ GLIBC_2.27 __res_state F
GLIBC_2.27 __send F
GLIBC_2.27 __sigaction F
GLIBC_2.27 __write F
-GLIBC_2.27 _pthread_cleanup_pop F
-GLIBC_2.27 _pthread_cleanup_pop_restore F
-GLIBC_2.27 _pthread_cleanup_push F
-GLIBC_2.27 _pthread_cleanup_push_defer F
GLIBC_2.27 accept F
GLIBC_2.27 close F
GLIBC_2.27 connect F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a3e732e82f..8788493ce0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -265,6 +265,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 996863ab38..24f75b3316 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 4443545ed0..4596ab72b0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -519,6 +519,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index c6bed3332a..e89d2e602c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -48,10 +48,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index f9cb4195cd..ae16394e8a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -505,6 +505,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 5f87422e3f..39d53b749c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index e1ae67a464..6e45427e90 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -505,6 +505,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x200
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 5f87422e3f..39d53b749c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 9ca458b1c5..080a036590 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -267,6 +267,10 @@ GLIBC_2.0 _obstack_begin_1 F
GLIBC_2.0 _obstack_free F
GLIBC_2.0 _obstack_memory_used F
GLIBC_2.0 _obstack_newchunk F
+GLIBC_2.0 _pthread_cleanup_pop F
+GLIBC_2.0 _pthread_cleanup_pop_restore F
+GLIBC_2.0 _pthread_cleanup_push F
+GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 _res D 0x200
GLIBC_2.0 _rpc_dtablesize F
GLIBC_2.0 _seterr_reply F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index f7aacc4472..ef7a0d8e8f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -25,10 +25,6 @@ GLIBC_2.0 __read F
GLIBC_2.0 __send F
GLIBC_2.0 __sigaction F
GLIBC_2.0 __write F
-GLIBC_2.0 _pthread_cleanup_pop F
-GLIBC_2.0 _pthread_cleanup_pop_restore F
-GLIBC_2.0 _pthread_cleanup_push F
-GLIBC_2.0 _pthread_cleanup_push_defer F
GLIBC_2.0 accept F
GLIBC_2.0 close F
GLIBC_2.0 connect F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 6af3cc116b..c8fb7da49f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -547,6 +547,10 @@ GLIBC_2.2 _obstack_begin_1 F
GLIBC_2.2 _obstack_free F
GLIBC_2.2 _obstack_memory_used F
GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 _res D 0x238
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 7c17d723de..291aa79fc6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e267cc2a23..cde6fdb49d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -508,6 +508,10 @@ GLIBC_2.2.5 _obstack_begin_1 F
GLIBC_2.2.5 _obstack_free F
GLIBC_2.2.5 _obstack_memory_used F
GLIBC_2.2.5 _obstack_newchunk F
+GLIBC_2.2.5 _pthread_cleanup_pop F
+GLIBC_2.2.5 _pthread_cleanup_pop_restore F
+GLIBC_2.2.5 _pthread_cleanup_push F
+GLIBC_2.2.5 _pthread_cleanup_push_defer F
GLIBC_2.2.5 _res D 0x238
GLIBC_2.2.5 _res_hconf D 0x48
GLIBC_2.2.5 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 6efd2bc164..87136ea96d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -46,10 +46,6 @@ GLIBC_2.2.5 __res_state F
GLIBC_2.2.5 __send F
GLIBC_2.2.5 __sigaction F
GLIBC_2.2.5 __write F
-GLIBC_2.2.5 _pthread_cleanup_pop F
-GLIBC_2.2.5 _pthread_cleanup_pop_restore F
-GLIBC_2.2.5 _pthread_cleanup_push F
-GLIBC_2.2.5 _pthread_cleanup_push_defer F
GLIBC_2.2.5 accept F
GLIBC_2.2.5 close F
GLIBC_2.2.5 connect F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 50e860fe40..e772da1ec4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -542,6 +542,10 @@ GLIBC_2.16 _obstack_begin_1 F
GLIBC_2.16 _obstack_free F
GLIBC_2.16 _obstack_memory_used F
GLIBC_2.16 _obstack_newchunk F
+GLIBC_2.16 _pthread_cleanup_pop F
+GLIBC_2.16 _pthread_cleanup_pop_restore F
+GLIBC_2.16 _pthread_cleanup_push F
+GLIBC_2.16 _pthread_cleanup_push_defer F
GLIBC_2.16 _res D 0x200
GLIBC_2.16 _res_hconf D 0x30
GLIBC_2.16 _rpc_dtablesize F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 62b31dc136..dc46297b81 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -44,10 +44,6 @@ GLIBC_2.16 __res_state F
GLIBC_2.16 __send F
GLIBC_2.16 __sigaction F
GLIBC_2.16 __write F
-GLIBC_2.16 _pthread_cleanup_pop F
-GLIBC_2.16 _pthread_cleanup_pop_restore F
-GLIBC_2.16 _pthread_cleanup_push F
-GLIBC_2.16 _pthread_cleanup_push_defer F
GLIBC_2.16 accept F
GLIBC_2.16 close F
GLIBC_2.16 connect F
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 5/8] nptl: Remove longjmp, siglongjmp from libpthread
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
` (3 preceding siblings ...)
2021-03-04 12:11 ` [PATCH 4/8] nptl: Move legacy cancelation handling into libc as compat symbols Florian Weimer
@ 2021-03-04 12:11 ` Florian Weimer
2021-03-04 12:12 ` [PATCH 6/8] Legacy unwinder: Remove definition of _Unwind_GetCFA Florian Weimer
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:11 UTC (permalink / raw)
To: libc-alpha
The definitions in libc are sufficient, the forwarders are no longer
needed.
The symbols have been moved using scripts/move-symbol-to-libc.py.
s390-linux-gnu and s390x-linux-gnu need a new version placeholder
to keep the GLIBC_2.19 symbol version in libpthread.
Tested on i386-linux-gnu, powerpc64le-linux-gnu, s390x-linux-gnu,
x86_64-linux-gnu. Built with build-many-glibcs.py.
---
nptl/Makefile | 1 -
nptl/Versions | 2 -
nptl/pt-longjmp.c | 49 -------------
.../sysv/linux/aarch64/libpthread.abilist | 2 -
.../unix/sysv/linux/alpha/libpthread.abilist | 2 -
.../unix/sysv/linux/arm/be/libpthread.abilist | 2 -
.../unix/sysv/linux/arm/le/libpthread.abilist | 2 -
.../unix/sysv/linux/hppa/libpthread.abilist | 2 -
.../unix/sysv/linux/i386/libpthread.abilist | 2 -
.../unix/sysv/linux/ia64/libpthread.abilist | 2 -
.../linux/m68k/coldfire/libpthread.abilist | 2 -
.../sysv/linux/m68k/m680x0/libpthread.abilist | 2 -
.../linux/microblaze/be/libpthread.abilist | 2 -
.../linux/microblaze/le/libpthread.abilist | 2 -
.../sysv/linux/mips/mips32/libpthread.abilist | 2 -
.../sysv/linux/mips/mips64/libpthread.abilist | 2 -
.../unix/sysv/linux/nios2/libpthread.abilist | 2 -
.../powerpc/powerpc32/libpthread.abilist | 4 --
.../powerpc/powerpc64/be/libpthread.abilist | 4 --
.../powerpc/powerpc64/le/libpthread.abilist | 2 -
sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c | 61 ----------------
sysdeps/unix/sysv/linux/s390/Versions | 2 +-
.../unix/sysv/linux/s390/libpthread-compat.c | 25 +++++++
sysdeps/unix/sysv/linux/s390/pt-longjmp.c | 33 ---------
.../linux/s390/s390-32/libpthread.abilist | 5 +-
.../linux/s390/s390-64/libpthread.abilist | 5 +-
.../unix/sysv/linux/sh/be/libpthread.abilist | 2 -
.../unix/sysv/linux/sh/le/libpthread.abilist | 2 -
.../linux/sparc/sparc32/libpthread.abilist | 2 -
.../linux/sparc/sparc64/libpthread.abilist | 2 -
.../sysv/linux/x86_64/64/libpthread.abilist | 2 -
.../sysv/linux/x86_64/x32/libpthread.abilist | 2 -
sysdeps/x86/nptl/pt-longjmp.c | 71 -------------------
33 files changed, 28 insertions(+), 276 deletions(-)
delete mode 100644 nptl/pt-longjmp.c
delete mode 100644 sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
create mode 100644 sysdeps/unix/sysv/linux/s390/libpthread-compat.c
delete mode 100644 sysdeps/unix/sysv/linux/s390/pt-longjmp.c
delete mode 100644 sysdeps/x86/nptl/pt-longjmp.c
diff --git a/nptl/Makefile b/nptl/Makefile
index 62811834d6..b52b7f574e 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -118,7 +118,6 @@ libpthread-routines = \
pt-fcntl \
pt-fork \
pt-interp \
- pt-longjmp \
pt-raise \
pt-system \
pthread_attr_getaffinity \
diff --git a/nptl/Versions b/nptl/Versions
index 194ad5b87c..37c0970967 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -157,7 +157,6 @@ libpthread {
fsync;
ftrylockfile;
funlockfile;
- longjmp;
lseek;
msync;
open;
@@ -207,7 +206,6 @@ libpthread {
sendmsg;
sendto;
sigaction;
- siglongjmp;
sigwait;
system;
tcdrain;
diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c
deleted file mode 100644
index 3f903495dc..0000000000
--- a/nptl/pt-longjmp.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI.
- Copyright (C) 2002-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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/>. */
-
-#include <setjmp.h>
-#include <shlib-compat.h>
-
-/* libpthread once had its own longjmp (and siglongjmp alias), though there
- was no apparent reason for it. There is no use in having a separate
- symbol in libpthread, but the historical ABI requires it. For static
- linking, there is no need to provide anything here--the libc version
- will be linked in. For shared library ABI compatibility, there must be
- longjmp and siglongjmp symbols in libpthread.so.
-
- With an IFUNC resolver, it would be possible to avoid the indirection,
- but the IFUNC resolver might run before the __libc_longjmp symbol has
- been relocated, in which case the IFUNC resolver would not be able to
- provide the correct address. */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-static void __attribute__ ((noreturn, used))
-longjmp_compat (jmp_buf env, int val)
-{
- __libc_longjmp (env, val);
-}
-
-strong_alias (longjmp_compat, longjmp_alias)
-compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0);
-
-strong_alias (longjmp_alias, siglongjmp_alias)
-compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0);
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index f1e3ca46ec..9b3cbe10f0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.17 fork F
GLIBC_2.17 fsync F
GLIBC_2.17 ftrylockfile F
GLIBC_2.17 funlockfile F
-GLIBC_2.17 longjmp F
GLIBC_2.17 lseek F
GLIBC_2.17 lseek64 F
GLIBC_2.17 msync F
@@ -177,7 +176,6 @@ GLIBC_2.17 send F
GLIBC_2.17 sendmsg F
GLIBC_2.17 sendto F
GLIBC_2.17 sigaction F
-GLIBC_2.17 siglongjmp F
GLIBC_2.17 sigwait F
GLIBC_2.17 system F
GLIBC_2.17 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index ef7a0d8e8f..22a620fdd4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index d025072ee3..d1978d77e1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -87,7 +87,6 @@ GLIBC_2.4 fork F
GLIBC_2.4 fsync F
GLIBC_2.4 ftrylockfile F
GLIBC_2.4 funlockfile F
-GLIBC_2.4 longjmp F
GLIBC_2.4 lseek F
GLIBC_2.4 lseek64 F
GLIBC_2.4 msync F
@@ -206,7 +205,6 @@ GLIBC_2.4 send F
GLIBC_2.4 sendmsg F
GLIBC_2.4 sendto F
GLIBC_2.4 sigaction F
-GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index d025072ee3..d1978d77e1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -87,7 +87,6 @@ GLIBC_2.4 fork F
GLIBC_2.4 fsync F
GLIBC_2.4 ftrylockfile F
GLIBC_2.4 funlockfile F
-GLIBC_2.4 longjmp F
GLIBC_2.4 lseek F
GLIBC_2.4 lseek64 F
GLIBC_2.4 msync F
@@ -206,7 +205,6 @@ GLIBC_2.4 send F
GLIBC_2.4 sendmsg F
GLIBC_2.4 sendto F
GLIBC_2.4 sigaction F
-GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 39d53b749c..326903937e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 664f51e01d..1529d0709e 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 291aa79fc6..66924e6ea3 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index d025072ee3..d1978d77e1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -87,7 +87,6 @@ GLIBC_2.4 fork F
GLIBC_2.4 fsync F
GLIBC_2.4 ftrylockfile F
GLIBC_2.4 funlockfile F
-GLIBC_2.4 longjmp F
GLIBC_2.4 lseek F
GLIBC_2.4 lseek64 F
GLIBC_2.4 msync F
@@ -206,7 +205,6 @@ GLIBC_2.4 send F
GLIBC_2.4 sendmsg F
GLIBC_2.4 sendto F
GLIBC_2.4 sigaction F
-GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 664f51e01d..1529d0709e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 9617cf2810..8c935ffb6f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.18 fork F
GLIBC_2.18 fsync F
GLIBC_2.18 ftrylockfile F
GLIBC_2.18 funlockfile F
-GLIBC_2.18 longjmp F
GLIBC_2.18 lseek F
GLIBC_2.18 lseek64 F
GLIBC_2.18 msync F
@@ -179,7 +178,6 @@ GLIBC_2.18 send F
GLIBC_2.18 sendmsg F
GLIBC_2.18 sendto F
GLIBC_2.18 sigaction F
-GLIBC_2.18 siglongjmp F
GLIBC_2.18 sigwait F
GLIBC_2.18 system F
GLIBC_2.18 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 9617cf2810..8c935ffb6f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.18 fork F
GLIBC_2.18 fsync F
GLIBC_2.18 ftrylockfile F
GLIBC_2.18 funlockfile F
-GLIBC_2.18 longjmp F
GLIBC_2.18 lseek F
GLIBC_2.18 lseek64 F
GLIBC_2.18 msync F
@@ -179,7 +178,6 @@ GLIBC_2.18 send F
GLIBC_2.18 sendmsg F
GLIBC_2.18 sendto F
GLIBC_2.18 sigaction F
-GLIBC_2.18 siglongjmp F
GLIBC_2.18 sigwait F
GLIBC_2.18 system F
GLIBC_2.18 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index b9c9a88bc1..9a4082ae99 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index b9c9a88bc1..9a4082ae99 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index a0d444f1aa..27aae5eab9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.21 fork F
GLIBC_2.21 fsync F
GLIBC_2.21 ftrylockfile F
GLIBC_2.21 funlockfile F
-GLIBC_2.21 longjmp F
GLIBC_2.21 lseek F
GLIBC_2.21 lseek64 F
GLIBC_2.21 msync F
@@ -179,7 +178,6 @@ GLIBC_2.21 send F
GLIBC_2.21 sendmsg F
GLIBC_2.21 sendto F
GLIBC_2.21 sigaction F
-GLIBC_2.21 siglongjmp F
GLIBC_2.21 sigwait F
GLIBC_2.21 system F
GLIBC_2.21 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 0d8dc2be7a..ea05d541a6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
@@ -211,11 +209,9 @@ GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_setaffinity_np F
GLIBC_2.3.3 pthread_timedjoin_np F
GLIBC_2.3.3 pthread_tryjoin_np F
-GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
-GLIBC_2.3.4 siglongjmp F
GLIBC_2.30 pthread_cond_clockwait F
GLIBC_2.30 pthread_mutex_clocklock F
GLIBC_2.30 pthread_rwlock_clockrdlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index f9fe6b088c..57e4072698 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -76,7 +76,6 @@ GLIBC_2.3 fork F
GLIBC_2.3 fsync F
GLIBC_2.3 ftrylockfile F
GLIBC_2.3 funlockfile F
-GLIBC_2.3 longjmp F
GLIBC_2.3 lseek F
GLIBC_2.3 lseek64 F
GLIBC_2.3 msync F
@@ -179,7 +178,6 @@ GLIBC_2.3 send F
GLIBC_2.3 sendmsg F
GLIBC_2.3 sendto F
GLIBC_2.3 sigaction F
-GLIBC_2.3 siglongjmp F
GLIBC_2.3 sigwait F
GLIBC_2.3 system F
GLIBC_2.3 tcdrain F
@@ -200,11 +198,9 @@ GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_setaffinity_np F
GLIBC_2.3.3 pthread_timedjoin_np F
GLIBC_2.3.3 pthread_tryjoin_np F
-GLIBC_2.3.4 longjmp F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
-GLIBC_2.3.4 siglongjmp F
GLIBC_2.30 pthread_cond_clockwait F
GLIBC_2.30 pthread_mutex_clocklock F
GLIBC_2.30 pthread_rwlock_clockrdlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index f1e3ca46ec..9b3cbe10f0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.17 fork F
GLIBC_2.17 fsync F
GLIBC_2.17 ftrylockfile F
GLIBC_2.17 funlockfile F
-GLIBC_2.17 longjmp F
GLIBC_2.17 lseek F
GLIBC_2.17 lseek64 F
GLIBC_2.17 msync F
@@ -177,7 +176,6 @@ GLIBC_2.17 send F
GLIBC_2.17 sendmsg F
GLIBC_2.17 sendto F
GLIBC_2.17 sigaction F
-GLIBC_2.17 siglongjmp F
GLIBC_2.17 sigwait F
GLIBC_2.17 system F
GLIBC_2.17 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
deleted file mode 100644
index ed6b2a5db1..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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/>. */
-
-#include <setjmp.h>
-#include <stdlib.h>
-#include <bits/wordsize.h>
-#include "pthreadP.h"
-#include <shlib-compat.h>
-#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3_4)
-
-/* These functions are not declared anywhere since they shouldn't be
- used at another place but here. */
-extern void __novmx__libc_siglongjmp (sigjmp_buf env, int val)
- __attribute__ ((noreturn));
-extern void __novmx__libc_longjmp (sigjmp_buf env, int val)
- __attribute__ ((noreturn));
-
-
-void __novmx_siglongjmp (sigjmp_buf env, int val)
-{
- __novmx__libc_siglongjmp (env, val);
-}
-
-void __novmx_longjmp (jmp_buf env, int val)
-{
- __novmx__libc_longjmp (env, val);
-}
-
-compat_symbol (libpthread, __novmx_longjmp, longjmp, GLIBC_2_0);
-compat_symbol (libpthread, __novmx_siglongjmp, siglongjmp, GLIBC_2_0);
-#endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)) */
-
-void
-__vmx_longjmp (jmp_buf env, int val)
-{
- __libc_longjmp (env, val);
-}
-
-void
-__vmx_siglongjmp (jmp_buf env, int val)
-{
- __libc_siglongjmp (env, val);
-}
-
-versioned_symbol (libpthread, __vmx_longjmp, longjmp, GLIBC_2_3_4);
-versioned_symbol (libpthread, __vmx_siglongjmp, siglongjmp, GLIBC_2_3_4);
diff --git a/sysdeps/unix/sysv/linux/s390/Versions b/sysdeps/unix/sysv/linux/s390/Versions
index 55518a7e5f..548397fcff 100644
--- a/sysdeps/unix/sysv/linux/s390/Versions
+++ b/sysdeps/unix/sysv/linux/s390/Versions
@@ -11,6 +11,6 @@ libc {
libpthread {
GLIBC_2.19 {
- longjmp; siglongjmp;
+ __libpthread_version_placeholder;
}
}
diff --git a/sysdeps/unix/sysv/linux/s390/libpthread-compat.c b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
new file mode 100644
index 0000000000..e8a7b6db5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
@@ -0,0 +1,25 @@
+/* Placeholder definitions to pull in removed symbol versions. s390 version.
+ Copyright (C) 2019-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/>. */
+
+#include <nptl/libpthread-compat.c>
+
+/* GLIBC_2.19 was used by a longjmp compatibility symbol. */
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20))
+compat_symbol_unique (libpthread,
+ __libpthread_version_placeholder, GLIBC_2_19);
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
deleted file mode 100644
index 6e97ed538b..0000000000
--- a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2014-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/>.
-
- Versioned copy of nptl/pt-longjmp.c modified for versioning
- the reverted jmpbuf extension. */
-
-#include <shlib-compat.h>
-
-#include <nptl/pt-longjmp.c>
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)
-/* In glibc release 2.19 new versions of longjmp-functions were introduced,
- but were reverted before 2.20. Thus both versions are the same function. */
-
-strong_alias (longjmp_alias, __v2longjmp)
-compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19);
-strong_alias (siglongjmp_alias, __v2siglongjmp)
-compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19);
-#endif /* SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 24f75b3316..e98dd348b8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
@@ -132,8 +130,7 @@ GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.19 longjmp F
-GLIBC_2.19 siglongjmp F
+GLIBC_2.19 __libpthread_version_placeholder F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
GLIBC_2.2 __pthread_rwlock_destroy F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index e89d2e602c..d579d5f9cd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -5,8 +5,7 @@ GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.19 longjmp F
-GLIBC_2.19 siglongjmp F
+GLIBC_2.19 __libpthread_version_placeholder F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
@@ -57,7 +56,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -161,7 +159,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 39d53b749c..326903937e 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 39d53b749c..326903937e 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index ef7a0d8e8f..22a620fdd4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -34,7 +34,6 @@ GLIBC_2.0 fork F
GLIBC_2.0 fsync F
GLIBC_2.0 ftrylockfile F
GLIBC_2.0 funlockfile F
-GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
GLIBC_2.0 open F
@@ -83,7 +82,6 @@ GLIBC_2.0 send F
GLIBC_2.0 sendmsg F
GLIBC_2.0 sendto F
GLIBC_2.0 sigaction F
-GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 291aa79fc6..66924e6ea3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 87136ea96d..f7ff1c51b8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -55,7 +55,6 @@ GLIBC_2.2.5 fork F
GLIBC_2.2.5 fsync F
GLIBC_2.2.5 ftrylockfile F
GLIBC_2.2.5 funlockfile F
-GLIBC_2.2.5 longjmp F
GLIBC_2.2.5 lseek F
GLIBC_2.2.5 lseek64 F
GLIBC_2.2.5 msync F
@@ -159,7 +158,6 @@ GLIBC_2.2.5 send F
GLIBC_2.2.5 sendmsg F
GLIBC_2.2.5 sendto F
GLIBC_2.2.5 sigaction F
-GLIBC_2.2.5 siglongjmp F
GLIBC_2.2.5 sigwait F
GLIBC_2.2.5 system F
GLIBC_2.2.5 tcdrain F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index dc46297b81..410f00a561 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -53,7 +53,6 @@ GLIBC_2.16 fork F
GLIBC_2.16 fsync F
GLIBC_2.16 ftrylockfile F
GLIBC_2.16 funlockfile F
-GLIBC_2.16 longjmp F
GLIBC_2.16 lseek F
GLIBC_2.16 lseek64 F
GLIBC_2.16 msync F
@@ -177,7 +176,6 @@ GLIBC_2.16 send F
GLIBC_2.16 sendmsg F
GLIBC_2.16 sendto F
GLIBC_2.16 sigaction F
-GLIBC_2.16 siglongjmp F
GLIBC_2.16 sigwait F
GLIBC_2.16 system F
GLIBC_2.16 tcdrain F
diff --git a/sysdeps/x86/nptl/pt-longjmp.c b/sysdeps/x86/nptl/pt-longjmp.c
deleted file mode 100644
index 77b32667ee..0000000000
--- a/sysdeps/x86/nptl/pt-longjmp.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI.
- X86 version.
- Copyright (C) 1918-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/>. */
-
-#include <pthreadP.h>
-#include <jmp_buf-ssp.h>
-
-#ifdef __x86_64__
-# define SHADOW_STACK_POINTER_SIZE 8
-#else
-# define SHADOW_STACK_POINTER_SIZE 4
-#endif
-
-/* Assert that the priv field in struct pthread_unwind_buf has space
- to store shadow stack pointer. */
-_Static_assert ((offsetof (struct pthread_unwind_buf, priv)
- <= SHADOW_STACK_POINTER_OFFSET)
- && ((offsetof (struct pthread_unwind_buf, priv)
- + sizeof (((struct pthread_unwind_buf *) 0)->priv))
- >= (SHADOW_STACK_POINTER_OFFSET
- + SHADOW_STACK_POINTER_SIZE)),
- "Shadow stack pointer is not within private storage "
- "of pthread_unwind_buf.");
-
-#include <shlib-compat.h>
-
-/* libpthread once had its own longjmp (and siglongjmp alias), though there
- was no apparent reason for it. There is no use in having a separate
- symbol in libpthread, but the historical ABI requires it. For static
- linking, there is no need to provide anything here--the libc version
- will be linked in. For shared library ABI compatibility, there must be
- longjmp and siglongjmp symbols in libpthread.so.
-
- With an IFUNC resolver, it would be possible to avoid the indirection,
- but the IFUNC resolver might run before the __libc_longjmp symbol has
- been relocated, in which case the IFUNC resolver would not be able to
- provide the correct address. */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-static void __attribute__ ((noreturn, used))
-longjmp_compat (jmp_buf env, int val)
-{
- /* NB: We call __libc_siglongjmp, instead of __libc_longjmp, since
- __libc_longjmp is a private interface for cancellation which
- doesn't restore shadow stack register. */
- __libc_siglongjmp (env, val);
-}
-
-strong_alias (longjmp_compat, longjmp_alias)
-compat_symbol (libpthread, longjmp_alias, longjmp, GLIBC_2_0);
-
-strong_alias (longjmp_alias, siglongjmp_alias)
-compat_symbol (libpthread, siglongjmp_alias, siglongjmp, GLIBC_2_0);
-
-#endif
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 6/8] Legacy unwinder: Remove definition of _Unwind_GetCFA
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
` (4 preceding siblings ...)
2021-03-04 12:11 ` [PATCH 5/8] nptl: Remove longjmp, siglongjmp from libpthread Florian Weimer
@ 2021-03-04 12:12 ` Florian Weimer
2021-03-04 12:12 ` [PATCH 7/8] nptl: Move __pthread_cleanup_upto into libc Florian Weimer
2021-03-04 12:12 ` [PATCH 8/8] nptl: Move __pthread_unwind_next " Florian Weimer
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:12 UTC (permalink / raw)
To: libc-alpha
It is not actually used by the legacy unwinder linked into
libc.so, and it conflicts with the unwind-link functionality
in libpthread.
---
sysdeps/generic/unwind-dw2.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/sysdeps/generic/unwind-dw2.c b/sysdeps/generic/unwind-dw2.c
index 618fa8885f..da971279be 100644
--- a/sysdeps/generic/unwind-dw2.c
+++ b/sysdeps/generic/unwind-dw2.c
@@ -177,14 +177,6 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
return * (_Unwind_Word *) context->reg[index];
}
-/* Get the value of the CFA as saved in CONTEXT. */
-
-_Unwind_Word
-_Unwind_GetCFA (struct _Unwind_Context *context)
-{
- return (_Unwind_Ptr) context->cfa;
-}
-
/* Overwrite the saved value for register REG in CONTEXT with VAL. */
inline void
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 7/8] nptl: Move __pthread_cleanup_upto into libc
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
` (5 preceding siblings ...)
2021-03-04 12:12 ` [PATCH 6/8] Legacy unwinder: Remove definition of _Unwind_GetCFA Florian Weimer
@ 2021-03-04 12:12 ` Florian Weimer
2021-03-04 12:12 ` [PATCH 8/8] nptl: Move __pthread_unwind_next " Florian Weimer
7 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:12 UTC (permalink / raw)
To: libc-alpha
This internal symbol is used as part of the longjmp implementation.
Rename the file from nptl/pt-cleanup.c to nptl/pthread_cleanup_upto.c
so that the pt-* files remain restricted to libpthread.
---
nptl/Makefile | 2 +-
nptl/Versions | 1 +
nptl/nptl-init.c | 1 -
nptl/pthreadP.h | 4 +---
nptl/{pt-cleanup.c => pthread_cleanup_upto.c} | 2 +-
sysdeps/nptl/jmp-unwind.c | 8 ++------
sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 7 ++-----
7 files changed, 8 insertions(+), 17 deletions(-)
rename nptl/{pt-cleanup.c => pthread_cleanup_upto.c} (98%)
diff --git a/nptl/Makefile b/nptl/Makefile
index b52b7f574e..5884b83bf0 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -66,6 +66,7 @@ routines = \
pthread_attr_setscope \
pthread_attr_setsigmask \
pthread_attr_setsigmask_internal \
+ pthread_cleanup_upto \
pthread_cond_destroy \
pthread_cond_init \
pthread_condattr_destroy \
@@ -114,7 +115,6 @@ libpthread-routines = \
old_pthread_cond_timedwait \
old_pthread_cond_wait \
pt-allocrtsig \
- pt-cleanup \
pt-fcntl \
pt-fork \
pt-interp \
diff --git a/nptl/Versions b/nptl/Versions
index 37c0970967..35fb16cd02 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -109,6 +109,7 @@ libc {
__pthread_attr_setsigmask_internal;
__pthread_cleanup_pop;
__pthread_cleanup_push;
+ __pthread_cleanup_upto;
__pthread_cond_destroy; # Used by the C11 threads.
__pthread_cond_init; # Used by the C11 threads.
__pthread_force_elision;
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index c2b563cc68..41527dcad1 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -88,7 +88,6 @@ static const struct pthread_functions pthread_functions =
.ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
.ptr___pthread_setcancelstate = __pthread_setcancelstate,
.ptr_pthread_setcanceltype = __pthread_setcanceltype,
- .ptr___pthread_cleanup_upto = __pthread_cleanup_upto,
.ptr___pthread_once = __pthread_once,
.ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
.ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index ee1e87f56b..e29c0e3604 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -332,9 +332,7 @@ extern int __make_stacks_executable (void **stack_endp) attribute_hidden;
/* longjmp handling. */
extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe);
-#if IS_IN (libpthread)
-hidden_proto (__pthread_cleanup_upto)
-#endif
+libc_hidden_proto (__pthread_cleanup_upto)
/* Functions with versioned interfaces. */
diff --git a/nptl/pt-cleanup.c b/nptl/pthread_cleanup_upto.c
similarity index 98%
rename from nptl/pt-cleanup.c
rename to nptl/pthread_cleanup_upto.c
index 541533230d..89da3e5229 100644
--- a/nptl/pt-cleanup.c
+++ b/nptl/pthread_cleanup_upto.c
@@ -59,4 +59,4 @@ __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
THREAD_SETMEM (self, cleanup, cbuf);
}
-hidden_def (__pthread_cleanup_upto)
+libc_hidden_def (__pthread_cleanup_upto)
diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
index a79c792e82..96c4862c74 100644
--- a/sysdeps/nptl/jmp-unwind.c
+++ b/sysdeps/nptl/jmp-unwind.c
@@ -19,14 +19,10 @@
#include <setjmp.h>
#include <stddef.h>
#include <libc-lock.h>
-
-extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
-#pragma weak __pthread_cleanup_upto
-
+#include <nptl/pthreadP.h>
void
_longjmp_unwind (jmp_buf env, int val)
{
- __libc_ptf_call (__pthread_cleanup_upto, (env->__jmpbuf,
- CURRENT_STACK_FRAME), 0);
+ __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
}
diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index 2bdde57ec7..8e0399a3e9 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -19,15 +19,12 @@
#include <setjmp.h>
#include <stddef.h>
#include <libc-lock.h>
-
-extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
-#pragma weak __pthread_cleanup_upto
-
+#include <nptl/pthreadP.h>
void
_longjmp_unwind (jmp_buf env, int val)
{
char local_var;
- __libc_ptf_call (__pthread_cleanup_upto, (env->__jmpbuf, &local_var), 0);
+ __pthread_cleanup_upto (env->__jmpbuf, &local_var);
}
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 8/8] nptl: Move __pthread_unwind_next into libc
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
` (6 preceding siblings ...)
2021-03-04 12:12 ` [PATCH 7/8] nptl: Move __pthread_cleanup_upto into libc Florian Weimer
@ 2021-03-04 12:12 ` Florian Weimer
2021-03-11 22:39 ` Florian Weimer
7 siblings, 1 reply; 10+ messages in thread
From: Florian Weimer @ 2021-03-04 12:12 UTC (permalink / raw)
To: libc-alpha
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
diff --git a/elf/Makefile b/elf/Makefile
index b06bf6ca20..8361c1f162 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -521,6 +521,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)
diff --git a/nptl/Makefile b/nptl/Makefile
index 5884b83bf0..bb337a0f69 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -80,6 +80,7 @@ routines = \
pthread_setschedparam \
pthread_sigmask \
register-atfork \
+ unwind \
shared-only-routines = forward
static-only-routines = pthread_atfork
@@ -231,15 +232,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
diff --git a/nptl/Versions b/nptl/Versions
index 35fb16cd02..f1f96893ba 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -54,6 +54,7 @@ libc {
}
GLIBC_2.3.3 {
__pthread_cleanup_routine;
+ __pthread_unwind_next;
pthread_attr_setaffinity_np;
pthread_getaffinity_np;
}
@@ -114,6 +115,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;
}
}
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 ())
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 41527dcad1..7afbf53859 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -96,7 +96,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
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index e29c0e3604..50b1c4e95b 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
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");
+ }
#endif
int result = 0;
int oldval;
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 ();
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
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;
- }
}
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
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);
-}
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>
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);
+}
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);
}
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index 4268084b66..b8aeef85af 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -59,8 +59,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 *);
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);
-}
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index a585f7d30d..15cdf50dac 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -339,6 +339,7 @@ GLIBC_2.17 __profile_frequency F
GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
GLIBC_2.17 __pthread_cleanup_routine 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
@@ -2180,4 +2181,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 9b3cbe10f0..c80dc45854 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -37,7 +37,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 c9ac935ccf..92d6578cd2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2152,6 +2152,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
@@ -2261,6 +2262,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 22a620fdd4..7b355969d6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -201,7 +201,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 27fecc5c8a..213a545356 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -328,6 +328,7 @@ GLIBC_2.32 __profile_frequency F
GLIBC_2.32 __progname D 0x4
GLIBC_2.32 __progname_full D 0x4
GLIBC_2.32 __pthread_cleanup_routine 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
@@ -1940,4 +1941,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 9713a20071..b801bb110c 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -35,7 +35,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 2383d95094..a923ea510f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -158,6 +158,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -487,6 +488,7 @@ GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine 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 d1978d77e1..ed6e4fac37 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -71,7 +71,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 bb46b8b5e3..2f97102466 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -155,6 +155,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -484,6 +485,7 @@ GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine 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 d1978d77e1..ed6e4fac37 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -71,7 +71,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 684e451f83..e9705f1e9a 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -332,6 +332,7 @@ GLIBC_2.29 __profile_frequency F
GLIBC_2.29 __progname D 0x4
GLIBC_2.29 __progname_full D 0x4
GLIBC_2.29 __pthread_cleanup_routine 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
@@ -2124,4 +2125,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index bb8a51a51d..f3a0807274 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -35,7 +35,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 8dde237f8b..3f684c97aa 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2001,6 +2001,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
@@ -2082,6 +2083,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 326903937e..0e65f69f56 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -193,7 +193,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 cc2226be23..b74111ffb2 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2166,6 +2166,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
@@ -2249,6 +2250,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 1529d0709e..b42bf19daf 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -201,7 +201,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)
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 438f3bd131..60fa7d3ba8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2033,6 +2033,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
@@ -2114,6 +2115,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 66924e6ea3..a42bf6f4ae 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -193,7 +193,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 5add3e607a..e304e8baa1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -159,6 +159,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0x98
@@ -473,6 +474,7 @@ GLIBC_2.4 __profile_frequency F
GLIBC_2.4 __progname D 0x4
GLIBC_2.4 __progname_full D 0x4
GLIBC_2.4 __pthread_cleanup_routine 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 d1978d77e1..ed6e4fac37 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -71,7 +71,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 2e7c9f9b47..594d01dcb4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2110,6 +2110,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
@@ -2194,6 +2195,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 1529d0709e..b42bf19daf 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -201,7 +201,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 493f7ddaa0..0e003953d3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
GLIBC_2.18 __pthread_cleanup_routine 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,4 +2176,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 8c935ffb6f..85dcf4b1de 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -37,7 +37,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 ec83b89aa3..3557810d4d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.18 __profile_frequency F
GLIBC_2.18 __progname D 0x4
GLIBC_2.18 __progname_full D 0x4
GLIBC_2.18 __pthread_cleanup_routine 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
@@ -2172,4 +2173,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 8c935ffb6f..85dcf4b1de 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -37,7 +37,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 cb0ab4bc19..3a156160b2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/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
@@ -2165,6 +2166,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 9a4082ae99..2fac43025e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -200,7 +200,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 2be2623e99..2d98184386 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2082,6 +2082,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
@@ -2163,6 +2164,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 9a4082ae99..2fac43025e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -200,7 +200,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 09147861b5..468881e40d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2090,6 +2090,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
@@ -2171,6 +2172,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_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 4a0208c8c8..2b6ad42514 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2083,6 +2083,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
@@ -2165,6 +2166,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 078025a7d6..acd85bb2dd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -377,6 +377,7 @@ GLIBC_2.21 __profile_frequency F
GLIBC_2.21 __progname D 0x4
GLIBC_2.21 __progname_full D 0x4
GLIBC_2.21 __pthread_cleanup_routine 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
@@ -2213,4 +2214,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 27aae5eab9..052df52d47 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -37,7 +37,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 bc79b844a5..7301015647 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2114,6 +2114,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
@@ -2221,6 +2222,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index ea05d541a6..c10d71dd56 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -201,7 +201,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 63c05472ed..fb0076772f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2147,6 +2147,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
@@ -2254,6 +2255,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 37e4ee564d..29a783ab48 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1982,6 +1982,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
@@ -2084,6 +2085,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 57e4072698..6c2ef4c36e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/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/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 1888ec6e86..c458488225 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -425,6 +425,7 @@ GLIBC_2.17 __profile_frequency F
GLIBC_2.17 __progname D 0x8
GLIBC_2.17 __progname_full D 0x8
GLIBC_2.17 __pthread_cleanup_routine 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
@@ -2375,4 +2376,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 9b3cbe10f0..c80dc45854 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -37,7 +37,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 8cd92b1abe..9d9a3c39a4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -325,6 +325,7 @@ GLIBC_2.33 __profile_frequency F
GLIBC_2.33 __progname D 0x4
GLIBC_2.33 __progname_full D 0x4
GLIBC_2.33 __pthread_cleanup_routine 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
@@ -1942,4 +1943,5 @@ GLIBC_2.33 writev F
GLIBC_2.33 wscanf F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 71e8f38003..bfef27afe8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -35,7 +35,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 894f01282f..d67b74694a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -336,6 +336,7 @@ GLIBC_2.27 __profile_frequency F
GLIBC_2.27 __progname D 0x8
GLIBC_2.27 __progname_full D 0x8
GLIBC_2.27 __pthread_cleanup_routine 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
@@ -2142,4 +2143,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index f5f9baefb9..6e0be7e8a1 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -36,7 +36,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 8788493ce0..7efc961366 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2123,6 +2123,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
@@ -2219,6 +2220,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index e98dd348b8..d124bf35f6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -202,7 +202,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 4596ab72b0..54a184866f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2027,6 +2027,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
@@ -2120,6 +2121,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index d579d5f9cd..67789fd327 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -194,7 +194,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 ae16394e8a..c88e2795d0 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2005,6 +2005,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 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 326903937e..0e65f69f56 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -193,7 +193,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 6e45427e90..e76dcc2839 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2005,6 +2005,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
@@ -2086,6 +2087,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 326903937e..0e65f69f56 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -193,7 +193,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 080a036590..c697d8a39d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2117,6 +2117,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
@@ -2210,6 +2211,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 22a620fdd4..7b355969d6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -201,7 +201,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 c8fb7da49f..b7e06d8600 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2056,6 +2056,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
@@ -2137,6 +2138,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 66924e6ea3..a42bf6f4ae 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -193,7 +193,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 cde6fdb49d..f19865b88f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2014,6 +2014,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
@@ -2096,6 +2097,7 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_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 f7ff1c51b8..66ef583776 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -192,7 +192,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 e772da1ec4..6dd92575f7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -340,6 +340,7 @@ GLIBC_2.16 __profile_frequency F
GLIBC_2.16 __progname D 0x4
GLIBC_2.16 __progname_full D 0x4
GLIBC_2.16 __pthread_cleanup_routine 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
@@ -2194,4 +2195,5 @@ GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __pthread_cleanup_routine F
+GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 pthread_mutex_consistent F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 410f00a561..4bd3769776 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -37,7 +37,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
--
2.29.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 8/8] nptl: Move __pthread_unwind_next into libc
2021-03-04 12:12 ` [PATCH 8/8] nptl: Move __pthread_unwind_next " Florian Weimer
@ 2021-03-11 22:39 ` Florian Weimer
0 siblings, 0 replies; 10+ messages in thread
From: Florian Weimer @ 2021-03-11 22:39 UTC (permalink / raw)
To: Florian Weimer via Libc-alpha
* Florian Weimer via Libc-alpha:
> 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.
This patch is not compatible with Jabub's pthread_once fix: On several
targets, it now pulls in the libgcc_s unwinder because _Unwind_Resume is
used in pthread_once.
I think it should be possible to avoid that by delaying the removal of
> delete mode 100644 sysdeps/nptl/unwind-forcedunwind.c
until pthread_once is moved into libc.so.6.
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-03-11 22:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-04 12:10 [PATCH 0/8] Move libpthread unwind-related functionality into libc Florian Weimer
2021-03-04 12:11 ` [PATCH v3 1/8] nptl: Move pthread_mutex_consistent " Florian Weimer
2021-03-04 12:11 ` [PATCH 2/8] nptl: Move __pthread_cleanup_routine " Florian Weimer
2021-03-04 12:11 ` [PATCH 3/8] nptl: Move legacy unwinding implementation " Florian Weimer
2021-03-04 12:11 ` [PATCH 4/8] nptl: Move legacy cancelation handling into libc as compat symbols Florian Weimer
2021-03-04 12:11 ` [PATCH 5/8] nptl: Remove longjmp, siglongjmp from libpthread Florian Weimer
2021-03-04 12:12 ` [PATCH 6/8] Legacy unwinder: Remove definition of _Unwind_GetCFA Florian Weimer
2021-03-04 12:12 ` [PATCH 7/8] nptl: Move __pthread_cleanup_upto into libc Florian Weimer
2021-03-04 12:12 ` [PATCH 8/8] nptl: Move __pthread_unwind_next " Florian Weimer
2021-03-11 22:39 ` Florian Weimer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).