summaryrefslogtreecommitdiff
path: root/lang/sml-nj
diff options
context:
space:
mode:
authorJoseph Koshy <jkoshy@FreeBSD.org>2000-01-28 06:36:13 +0000
committerJoseph Koshy <jkoshy@FreeBSD.org>2000-01-28 06:36:13 +0000
commit1353f66bf5d6014a2d129de144a826e37ee124f6 (patch)
tree02d62320179872f7f649c61a82840deed311b926 /lang/sml-nj
parentAdd CVS tags to the files that could tolerate them. (diff)
Fix building of SML/NJ under 4-CURRENT after 1999/7/25.
The trap handler returns different information after this date for numeric error conditions. Since kern.osreldate is not a reliable indicator of when this change occurred, we revert to checking for the presence of a particular #define in <machine/trap.h> to decide if the SML/NJ runtime sources need to use the newer interface. Submitted by: Tom <tcrimi@andrew.cmu.edu> (in part)
Notes
Notes: svn path=/head/; revision=25153
Diffstat (limited to 'lang/sml-nj')
-rw-r--r--lang/sml-nj/files/extra-patch-signals21
-rw-r--r--lang/sml-nj/files/patch-ab12
2 files changed, 30 insertions, 3 deletions
diff --git a/lang/sml-nj/files/extra-patch-signals b/lang/sml-nj/files/extra-patch-signals
new file mode 100644
index 000000000000..5546f0e4f7e8
--- /dev/null
+++ b/lang/sml-nj/files/extra-patch-signals
@@ -0,0 +1,21 @@
+*** src.old/runtime/mach-dep/signal-sysdep.h Sat Jan 22 18:15:21 2000
+--- src/runtime/mach-dep/signal-sysdep.h Sun Jan 23 01:46:53 2000
+***************
+*** 396,403 ****
+ # elif defined(OPSYS_FREEBSD)
+ /** x86, FreeBSD **/
+ # define SIG_FAULT1 SIGFPE
+! # define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV_TRAP))
+! # define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF_TRAP))
+
+ # define SIG_GetCode(info, scp) (info)
+ # define SIG_GetPC(scp) ((scp)->sc_pc)
+--- 396,403 ----
+ # elif defined(OPSYS_FREEBSD)
+ /** x86, FreeBSD **/
+ # define SIG_FAULT1 SIGFPE
+! # define INT_DIVZERO(s, c) (((s) == SIGFPE) && ((c) == FPE_INTDIV))
+! # define INT_OVFLW(s, c) (((s) == SIGFPE) && ((c) == FPE_INTOVF))
+
+ # define SIG_GetCode(info, scp) (info)
+ # define SIG_GetPC(scp) ((scp)->sc_pc)
diff --git a/lang/sml-nj/files/patch-ab b/lang/sml-nj/files/patch-ab
index 122da2bf99a8..d8af8af38993 100644
--- a/lang/sml-nj/files/patch-ab
+++ b/lang/sml-nj/files/patch-ab
@@ -1,15 +1,21 @@
--- config/install.sh.orig Wed Aug 5 13:43:43 1998
-+++ config/install.sh Tue Feb 2 12:57:13 1999
-@@ -181,6 +181,12 @@
++++ config/install.sh Sat Jan 29 20:46:09 2000
+@@ -181,6 +181,18 @@
if [ "$?" != "0" ]; then
exit $?
fi
+# we need to patch just before build
++echo "applying source patches"
+patch_file="${FILESDIR}/patch-global-names"
+if [ -f $patch_file ]; then
-+ echo "applying source patches"
+ $PATCH $PATCH_ARGS < $patch_file
+fi
++if grep -w FPE_INTDIV /usr/include/machine/trap.h > /dev/null 2>&1; then
++ patch_file="${FILESDIR}/patch-signals"
++ if [ -f $patch_file ]; then
++ $PATCH $PATCH_ARGS < $patch_file
++ fi
++fi
if [ ! -x $RUNDIR/run.$ARCH-$OPSYS ]; then
cd $SRCDIR/runtime/objs
echo "compiling the run-time system"