diff options
author | hboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-03 00:21:48 +0000 |
---|---|---|
committer | hboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-03 00:21:48 +0000 |
commit | 39abb7c870d04876635edecc5502a27b8d14488f (patch) | |
tree | 1b3a9bec08903968aebcc4d38f523b8365a5c44d /libjava | |
parent | 0bc18d6674b057042a848181b0f7bf0d5baba887 (diff) | |
download | gcc-39abb7c870d04876635edecc5502a27b8d14488f.tar.gz |
* include/dwarf2-signal.h (INIT_SEGV, INIT_FPE for ia64):
use sigaction instead of __libc_sigaction.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53074 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/include/dwarf2-signal.h | 16 |
2 files changed, 10 insertions, 11 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 26f4b0beb42..0aa5d59ad45 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2002-05-02 Hans Boehm <Hans_Boehm@hp.com> + + * include/dwarf2-signal.h (INIT_SEGV, INIT_FPE for ia64): + use sigaction instead of __libc_sigaction. + 2002-05-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * testsuite/lib/libjava.exp (libjava_find_spec): New function. diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h index 21decd5c668..7dbcd9dfd2d 100644 --- a/libjava/include/dwarf2-signal.h +++ b/libjava/include/dwarf2-signal.h @@ -243,15 +243,9 @@ while (0) #else /* __ia64__ */ -// FIXME: We shouldn't be using libc_sigaction here, since it should -// be glibc private. But using syscall here would mean translating to -// the kernel's struct sigaction and argument sequence, which we -// shouldn't either. The right solution is to call sigaction and to -// make sure that we can unwind correctly through the pthread signal -// wrapper. -extern "C" int __libc_sigaction (int __sig, - __const struct sigaction *__restrict __act, - struct sigaction *__restrict __oact) throw (); +// On IA64, unwind information is mandatory, so we can unwind +// correctly through glibc frames. Thus we call the ordinary +// sigaction. #define INIT_SEGV \ do \ @@ -261,7 +255,7 @@ do \ act.sa_sigaction = _Jv_catch_segv; \ sigemptyset (&act.sa_mask); \ act.sa_flags = SA_SIGINFO; \ - __libc_sigaction (SIGSEGV, &act, NULL); \ + sigaction (SIGSEGV, &act, NULL); \ } \ while (0) @@ -274,7 +268,7 @@ do \ act.sa_sigaction = _Jv_catch_fpe; \ sigemptyset (&act.sa_mask); \ act.sa_flags = SA_SIGINFO; \ - __libc_sigaction (SIGFPE, &act, NULL); \ + sigaction (SIGFPE, &act, NULL); \ } \ while (0) #endif /* __ia64__ || __sparc__ */ |