diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/Makefile | 2 | ||||
-rw-r--r-- | nptl/descr.h | 6 | ||||
-rw-r--r-- | nptl/unwind.c | 34 | ||||
-rw-r--r-- | nptl/version.c | 2 |
4 files changed, 1 insertions, 43 deletions
diff --git a/nptl/Makefile b/nptl/Makefile index 311b1a78b4..7b816a3e2d 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -311,14 +311,12 @@ LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst CFLAGS-tst-cleanup2.c = -fno-builtin CFLAGS-tst-cleanupx2.c = -fno-builtin -ifeq ($(have-forced-unwind),yes) 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-cancelx20 tst-cancelx21 \ tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3 tst-cleanupx4 \ tst-oncex3 tst-oncex4 -endif ifeq ($(build-shared),yes) tests += tst-atfork2 tst-tls3 tst-tls4 tst-tls5 tst-_res1 tst-fini1 \ tst-stackguard1 diff --git a/nptl/descr.h b/nptl/descr.h index a502048b44..bd99c367a7 100644 --- a/nptl/descr.h +++ b/nptl/descr.h @@ -32,9 +32,7 @@ #include <dl-sysdep.h> #include "../nptl_db/thread_db.h" #include <tls.h> -#ifdef HAVE_FORCED_UNWIND -# include <unwind.h> -#endif +#include <unwind.h> #define __need_res_state #include <resolv.h> #include <kernel-features.h> @@ -362,10 +360,8 @@ struct pthread /* Next descriptor with a pending event. */ struct pthread *nextevent; -#ifdef HAVE_FORCED_UNWIND /* Machine-specific unwind info. */ struct _Unwind_Exception exc; -#endif /* If nonzero pointer to area allocated for the stack and its size. */ diff --git a/nptl/unwind.c b/nptl/unwind.c index 904187ed55..5a41c1b61d 100644 --- a/nptl/unwind.c +++ b/nptl/unwind.c @@ -25,8 +25,6 @@ #include "pthreadP.h" #include <jmpbuf-unwind.h> -#ifdef HAVE_FORCED_UNWIND - #ifdef _STACK_GROWS_DOWN # define FRAME_LEFT(frame, other, adj) \ ((uintptr_t) frame - adj >= (uintptr_t) other - adj) @@ -107,8 +105,6 @@ unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc) __libc_fatal ("FATAL: exception not rethrown\n"); } -#endif /* have forced unwind */ - void __cleanup_fct_attribute __attribute ((noreturn)) @@ -117,42 +113,12 @@ __pthread_unwind (__pthread_unwind_buf_t *buf) struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf; struct pthread *self = THREAD_SELF; -#ifdef HAVE_FORCED_UNWIND /* This is not a catchable exception, so don't provide any details about the exception type. We do need to initialize the field though. */ THREAD_SETMEM (self, exc.exception_class, 0); THREAD_SETMEM (self, exc.exception_cleanup, &unwind_cleanup); _Unwind_ForcedUnwind (&self->exc, unwind_stop, ibuf); -#else - /* Handle the compatibility stuff first. Execute all handlers - registered with the old method. We don't execute them in order, - instead, they will run first. */ - struct _pthread_cleanup_buffer *oldp = ibuf->priv.data.cleanup; - struct _pthread_cleanup_buffer *curp = THREAD_GETMEM (self, cleanup); - - if (curp != oldp) - { - do - { - /* Pointer to the next element. */ - struct _pthread_cleanup_buffer *nextp = curp->__prev; - - /* Call the handler. */ - curp->__routine (curp->__arg); - - /* To the next. */ - curp = nextp; - } - while (curp != oldp); - - /* Mark the current element as handled. */ - THREAD_SETMEM (self, cleanup, curp); - } - - /* We simply jump to the registered setjmp buffer. */ - __libc_unwind_longjmp ((struct __jmp_buf_tag *) ibuf->cancel_jmp_buf, 1); -#endif /* NOTREACHED */ /* We better do not get here. */ diff --git a/nptl/version.c b/nptl/version.c index cfa2acb3d8..ba01a6540a 100644 --- a/nptl/version.c +++ b/nptl/version.c @@ -27,9 +27,7 @@ static const char banner[] = This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n" -#ifdef HAVE_FORCED_UNWIND "Forced unwind support included.\n" -#endif ; |