summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-26 22:44:48 +0000
committerhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-26 22:44:48 +0000
commit41962d982b032d1a392eba19a40889de68e6a9ef (patch)
tree304f0cb950ebe668e5655b3714f6bbe60a07c217
parent09a6a91be70cc2e5c9966d25c688db339ea870fd (diff)
downloadgcc-41962d982b032d1a392eba19a40889de68e6a9ef.tar.gz
* include/dwarf2-signal.h: Temporarily back out last change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51415 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/include/dwarf2-signal.h32
2 files changed, 6 insertions, 30 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 0dca16f90a1..257e1626a72 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2002-03-26 Hans Boehm <Hans_Boehm@hp.com>
+
+ * include/dwarf2-signal.h: Temporarily back out last change.
+
2002-03-26 Loren J. Rittle <ljrittle@acm.org>
* include/posix-threads.h: Support <.../pal.h> on FreeBSD/alpha.
diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h
index f1572d3e772..3a662aec2d9 100644
--- a/libjava/include/dwarf2-signal.h
+++ b/libjava/include/dwarf2-signal.h
@@ -41,25 +41,7 @@ do \
_sc->sc_pc += 4; \
} \
while (0)
-
-#elif defined(__ia64__)
-
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- /* IA-64 either leaves PC pointing at a faulting instruction or the \
- following instruction, depending on the signal. SEGV always does \
- the former, so we adjust the saved PC to point to the following \
- instruction; this is what the handler in libgcc expects. */ \
- /* Note that we are lying to the unwinder here, which expects the \
- faulting pc, not pc+1. But we claim the unwind information can't \
- be changed by such a ld or st instruction, so it doesn't matter. */ \
- struct sigcontext *_sc = (struct sigcontext *)_p; \
- _sc->sc_ip++; \
-} \
-while (0)
#else
-#error
#define MAKE_THROW_FRAME(_exception) \
do \
{ \
@@ -68,16 +50,6 @@ do \
while (0)
#endif
-// 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 ();
-
#define INIT_SEGV \
do \
{ \
@@ -86,7 +58,7 @@ do \
act.sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
- __libc_sigaction (SIGSEGV, &act, NULL); \
+ syscall (SYS_sigaction, SIGSEGV, &act, NULL); \
} \
while (0)
@@ -99,7 +71,7 @@ do \
act.sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
- __libc_sigaction (SIGFPE, &act, NULL); \
+ syscall (SYS_sigaction, SIGFPE, &act, NULL); \
} \
while (0)