--- configure.orig	Thu Aug 21 04:27:56 2003
+++ configure	Tue Aug 10 21:16:46 2004
@@ -10986,9 +10986,9 @@
 
 #include <signal.h>
 #include "$srcdir/src/fault-macos-powerpc.c"
-void sigsegv_handler (int sig, int code, struct sigcontext *scp)
+void sigsegv_handler (int sig, siginfo_t *sip, struct sigcontext *scp)
 {
-  void *fault_address = (void *) (get_fault_addr (scp));
+  void *fault_address = (void *) (get_fault_addr (scp, sip->si_addr));
 }
 
 int
@@ -11037,6 +11037,7 @@
 #if HAVE_SYS_SIGNAL_H
 # include <sys/signal.h>
 #endif
+#include <sys/ucontext.h>
 #include "$srcdir/src/fault-macos-powerpc.c"
 #include <sys/types.h>
 #include <sys/mman.h>
@@ -11061,9 +11062,9 @@
 #endif
 unsigned long page;
 int handler_called = 0;
-void sigsegv_handler (int sig, int code, struct sigcontext *scp)
+void sigsegv_handler (int sig, siginfo_t *sip, struct sigcontext *scp)
 {
-  void *fault_address = (void *) (get_fault_addr (scp));
+  void *fault_address = (void *) (get_fault_addr (scp, sip->si_addr));
   handler_called++;
   if (handler_called == 10)
     exit (4);
@@ -11102,7 +11103,7 @@
   sigemptyset(&action.sa_mask);
 
   action.sa_handler = (void (*) (int)) &sigsegv_handler;
-  action.sa_flags = 0;
+  action.sa_flags = SA_SIGINFO;
 
   sigaction (SIGSEGV, &action, (struct sigaction *) NULL);
   sigaction (SIGBUS, &action, (struct sigaction *) NULL);
