dwarf2-signal.h (INIT_SEGV, [...]): use sigaction instead of __libc_sigaction.
authorHans Boehm <Hans_Boehm@hp.com>
Fri, 3 May 2002 00:21:48 +0000 (00:21 +0000)
committerHans Boehm <hboehm@gcc.gnu.org>
Fri, 3 May 2002 00:21:48 +0000 (00:21 +0000)
* include/dwarf2-signal.h (INIT_SEGV, INIT_FPE for ia64):
use sigaction instead of __libc_sigaction.

From-SVN: r53074

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

index 26f4b0beb42fc8b408ae3342df0c29784a8e13ab..0aa5d59ad450736f251e890511fa22b04c4a7555 100644 (file)
@@ -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.
index 21decd5c6682eafdd31946434edcee6f7ab237e3..7dbcd9dfd2db20ba5787b2509a662d66072e4db9 100644 (file)
@@ -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__ */