summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-03 00:21:48 +0000
committerhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-03 00:21:48 +0000
commit39abb7c870d04876635edecc5502a27b8d14488f (patch)
tree1b3a9bec08903968aebcc4d38f523b8365a5c44d /libjava
parent0bc18d6674b057042a848181b0f7bf0d5baba887 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--libjava/include/dwarf2-signal.h16
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__ */