1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
* sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
	* sysdeps/i386/jmpbuf-unwind.h: Likewise
	* sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
	* sysdeps/s390/jmpbuf-unwind.h: Likewise.
	* sysdeps/sh/jmpbuf-unwind.h: Likewise.
	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
	* sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
	* unwind.c: Use it.
This commit is contained in:
Ulrich Drepper
2004-09-02 22:47:23 +00:00
parent 73f7c32c47
commit f76c849910
12 changed files with 49 additions and 14 deletions

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>
and Richard Henderson <rth@redhat.com>, 2003.
@ -47,7 +47,7 @@ unwind_stop (int version, _Unwind_Action actions,
struct pthread *self = THREAD_SELF;
struct _pthread_cleanup_buffer *curp = THREAD_GETMEM (self, cleanup);
int do_longjump = 0;
/* Adjust all pointers used in comparisons, so that top of thread's
stack is at the top of address space. Without that, things break
if stack is allocated above the main stack. */
@ -93,7 +93,7 @@ unwind_stop (int version, _Unwind_Action actions,
}
if (do_longjump)
__libc_longjmp ((struct __jmp_buf_tag *) buf->cancel_jmp_buf, 1);
__libc_unwind_longjmp ((struct __jmp_buf_tag *) buf->cancel_jmp_buf, 1);
return _URC_NO_REASON;
}
@ -155,7 +155,7 @@ __pthread_unwind (__pthread_unwind_buf_t *buf)
}
/* We simply jump to the registered setjmp buffer. */
__libc_longjmp ((struct __jmp_buf_tag *) ibuf->cancel_jmp_buf, 1);
__libc_unwind_longjmp ((struct __jmp_buf_tag *) ibuf->cancel_jmp_buf, 1);
#endif
/* NOTREACHED */