* include/dwarf2-signal.h: Temporarily back out last change.
authorhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Mar 2002 22:44:48 +0000 (22:44 +0000)
committerhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Mar 2002 22:44:48 +0000 (22:44 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51415 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/include/dwarf2-signal.h

index 0dca16f..257e162 100644 (file)
@@ -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.
index f1572d3..3a662ae 100644 (file)
@@ -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)