mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
* 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:
@ -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 */
|
||||
|
||||
|
Reference in New Issue
Block a user