aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elf/Makefile2
-rw-r--r--include/setjmp.h4
-rw-r--r--nptl/Makefile4
-rw-r--r--nptl/Versions4
-rw-r--r--nptl/forward.c6
-rw-r--r--nptl/nptl-init.c1
-rw-r--r--nptl/pthreadP.h8
-rw-r--r--nptl/pthread_cancel.c10
-rw-r--r--nptl/pthread_exit.c11
-rw-r--r--nptl/unwind.c13
-rw-r--r--setjmp/Versions4
-rw-r--r--sysdeps/arm/Makefile5
-rw-r--r--sysdeps/arm/nptl/unwind-forcedunwind.c25
-rw-r--r--sysdeps/arm/pt-arm-unwind-resume.S20
-rw-r--r--sysdeps/generic/unwind-resume.c14
-rw-r--r--sysdeps/ia64/unwind-resume.c (renamed from sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c)5
-rw-r--r--sysdeps/nptl/pthread-functions.h2
-rw-r--r--sysdeps/nptl/unwind-forcedunwind.c64
-rw-r--r--sysdeps/powerpc/Versions4
-rw-r--r--sysdeps/powerpc/longjmp.c14
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist1
82 files changed, 126 insertions, 189 deletions
diff --git a/elf/Makefile b/elf/Makefile
index c531470ede..1103559b9b 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -528,6 +528,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 323bcc9432..1d3781062c 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -81,6 +81,7 @@ routines = \
pthread_self \
pthread_setschedparam \
pthread_sigmask \
+ unwind \
shared-only-routines = forward
static-only-routines = pthread_atfork
@@ -211,15 +212,12 @@ libpthread-routines = \
sem_unlink \
sem_wait \
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 1a7946cf2f..193376c827 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -57,6 +57,7 @@ libc {
}
GLIBC_2.3.3 {
__pthread_cleanup_routine;
+ __pthread_unwind_next;
pthread_attr_setaffinity_np;
pthread_getaffinity_np;
}
@@ -117,6 +118,7 @@ libc {
__pthread_cond_init; # Used by the C11 threads.
__pthread_force_elision;
__pthread_getattr_default_np;
+ __pthread_unwind;
}
}
@@ -278,7 +280,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;