summaryrefslogtreecommitdiff
path: root/lang/drscheme/files/patch-sighand.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/drscheme/files/patch-sighand.c')
-rw-r--r--lang/drscheme/files/patch-sighand.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/lang/drscheme/files/patch-sighand.c b/lang/drscheme/files/patch-sighand.c
new file mode 100644
index 000000000000..1ffd96097fe1
--- /dev/null
+++ b/lang/drscheme/files/patch-sighand.c
@@ -0,0 +1,22 @@
+--- mzscheme/gc2/sighand.c.orig 2007-04-29 04:08:24.000000000 +0200
++++ mzscheme/gc2/sighand.c 2008-06-19 04:36:23.000000000 +0200
+@@ -27,13 +27,18 @@
+ /* As of 2007/04/28, this is a guess for NetBSD and OpenBSD! */
+ #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ # include <signal.h>
++# include <sys/param.h>
+ void fault_handler(int sn, siginfo_t *si, void *ctx)
+ {
+ if (!designate_modified(si->si_addr))
+ abort();
+ }
+ # define NEED_SIGACTION
+-# define USE_SIGACTON_SIGNAL_KIND SIGBUS
++# if defined(__FreeBSD__) && (__FreeBSD_version < 700000)
++# define USE_SIGACTON_SIGNAL_KIND SIGBUS
++# else
++# define USE_SIGACTON_SIGNAL_KIND SIGSEGV
++# endif
+ #endif
+
+ /* ========== Solaris signal handler ========== */