aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog2
-rw-r--r--nptl/Makefile5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/Makefile3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/unwindbuf.sym7
4 files changed, 15 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 11071d68c3..a739fe1db7 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -2,6 +2,8 @@
* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
Use correct cleanup handler registration. Add unwind info.
+ * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
+ * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
* tst-once3.c: Add cleanup handler and check it is called.
* tst-once4.c: Likewise.
* tst-oncex3.c: New file.
diff --git a/nptl/Makefile b/nptl/Makefile
index 09a7ecc1b2..a261efbb6d 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -244,7 +244,8 @@ tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \
tst-cancelx6 tst-cancelx7 tst-cancelx8 tst-cancelx9 tst-cancelx10 \
tst-cancelx11 tst-cancelx12 tst-cancelx13 tst-cancelx14 tst-cancelx15\
tst-cancelx16 tst-cancelx17 tst-cancelx18 \
- tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3
+ tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3 \
+ tst-oncex3 tst-oncex4
endif
ifeq ($(build-shared),yes)
tests += tst-atfork2 tst-tls3
@@ -369,6 +370,8 @@ CFLAGS-tst-cleanupx0.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-tst-cleanupx1.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-tst-cleanupx2.c += -fexceptions
CFLAGS-tst-cleanupx3.c += -fexceptions
+CFLAGS-tst-oncex3.c += -fexceptions
+CFLAGS-tst-oncex4.c += -fexceptions
tst-cancel7-ARGS = --command "$(built-program-cmd)"
tst-umask1-ARGS = $(objpfx)tst-umask1.temp
diff --git a/nptl/sysdeps/unix/sysv/linux/Makefile b/nptl/sysdeps/unix/sysv/linux/Makefile
index 510232c9c6..c2988bc902 100644
--- a/nptl/sysdeps/unix/sysv/linux/Makefile
+++ b/nptl/sysdeps/unix/sysv/linux/Makefile
@@ -23,7 +23,8 @@ sysdep_routines += register-atfork unregister-atfork libc_pthread_init \
libpthread-sysdep_routines += pt-fork pthread_mutex_cond_lock
-gen-as-const-headers += lowlevelcond.sym lowlevelrwlock.sym lowlevelbarrier.sym
+gen-as-const-headers += lowlevelcond.sym lowlevelrwlock.sym \
+ lowlevelbarrier.sym unwindbuf.sym
endif
ifeq ($(subdir),posix)
diff --git a/nptl/sysdeps/unix/sysv/linux/unwindbuf.sym b/nptl/sysdeps/unix/sysv/linux/unwindbuf.sym
new file mode 100644
index 0000000000..8044b4078c
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/unwindbuf.sym
@@ -0,0 +1,7 @@
+#include <pthread.h>
+#include <stddef.h>
+
+--
+
+UNWINDBUFSIZE sizeof (__pthread_unwind_buf_t)
+UWJMPBUF offsetof (__pthread_unwind_buf_t, __cancel_jmp_buf)