aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog9
-rwxr-xr-xlibjava/configure3
-rw-r--r--libjava/configure.host4
-rw-r--r--libjava/configure.in3
-rw-r--r--libjava/include/darwin-signal.h51
5 files changed, 68 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7d43c48..8df3952 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2004-06-26 Geoffrey Keating <geoffk@apple.com>
+ Andreas Tobler <a.tobler@schweiz.ch>
+
+ * configure.host (powerpc-*-darwin*): New case, define
+ can_unwind_signal.
+ * configure.in (*-*-darwin*): New case, point to darwin-signal.h.
+ * configure: Regenerate.
+ * include/darwin-signal.h: New.
+
2004-06-30 Jerry Quinn <jlquinn@optonline.net>
* java/beans/Statement.java (doExecute): Fix formatting.
diff --git a/libjava/configure b/libjava/configure
index baf065d..463bd0b 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -8553,6 +8553,9 @@ case "${host}" in
mips*-*-linux*)
SIGNAL_HANDLER=include/mips-signal.h
;;
+ *-*-darwin*)
+ SIGNAL_HANDLER=include/darwin-signal.h
+ ;;
*)
SIGNAL_HANDLER=include/default-signal.h
;;
diff --git a/libjava/configure.host b/libjava/configure.host
index c021d13..d008df1 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -232,10 +232,10 @@ EOF
;;
esac
;;
- *-*-darwin*)
+ powerpc*-*-darwin*)
enable_hash_synchronization_default=no
slow_pthread_self=
- can_unwind_signal=no
+ can_unwind_signal=yes
;;
*-*-freebsd*)
slow_pthread_self=
diff --git a/libjava/configure.in b/libjava/configure.in
index c763b75..2eff8f9 100644
--- a/libjava/configure.in
+++ b/libjava/configure.in
@@ -1205,6 +1205,9 @@ case "${host}" in
mips*-*-linux*)
SIGNAL_HANDLER=include/mips-signal.h
;;
+ *-*-darwin*)
+ SIGNAL_HANDLER=include/darwin-signal.h
+ ;;
*)
SIGNAL_HANDLER=include/default-signal.h
;;
diff --git a/libjava/include/darwin-signal.h b/libjava/include/darwin-signal.h
new file mode 100644
index 0000000..5003e21
--- /dev/null
+++ b/libjava/include/darwin-signal.h
@@ -0,0 +1,51 @@
+/* darwin-signal.h - Catch runtime signals and turn them into exceptions,
+ on a Darwin system. */
+
+/* Copyright (C) 2004 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/* This file is really more of a specification. The rest of the system
+ should be arranged so that this Just Works. */
+
+#ifndef JAVA_SIGNAL_H
+# define JAVA_SIGNAL_H 1
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <signal.h>
+
+typedef void (* SIG_PF)(int);
+
+# define HANDLE_SEGV 1
+# undef HANDLE_FPE
+
+# define SIGNAL_HANDLER(_name) \
+ static void _name (int _dummy __attribute__ ((unused)))
+
+# define MAKE_THROW_FRAME(_exception)
+
+# define INIT_SEGV \
+ do { \
+ struct sigaction sa; \
+ sa.sa_handler = catch_segv; \
+ sigemptyset (&sa.sa_mask); \
+ sa.sa_flags = SA_NODEFER; \
+ sigaction (SIGBUS, &sa, NULL); \
+ sigaction (SIGSEGV, &sa, NULL); \
+ } while (0)
+
+# define INIT_FPE \
+ do { \
+ struct sigaction sa; \
+ sa.sa_handler = catch_fpe; \
+ sigemptyset (&sa.sa_mask); \
+ sa.sa_flags = SA_NODEFER; \
+ sigaction (SIGFPE, &sa, NULL); \
+ } while (0)
+
+#endif /* JAVA_SIGNAL_H */