summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorgavan <gavan@pkgsrc.org>2006-03-28 21:35:27 +0000
committergavan <gavan@pkgsrc.org>2006-03-28 21:35:27 +0000
commitbf44a33e487764d14b912a4fe3251c763e0a168a (patch)
tree633a9860e59c380c6452c1c935cab3454c997c14 /lang
parent2ea4220459ee95d5bd53ed0a866584bc29c80eca (diff)
downloadpkgsrc-bf44a33e487764d14b912a4fe3251c763e0a168a.tar.gz
Apply patch from PR pkg/32722. Fixes building on i386.
Diffstat (limited to 'lang')
-rw-r--r--lang/smlnj/distinfo5
-rw-r--r--lang/smlnj/patches/patch-af51
-rw-r--r--lang/smlnj/patches/patch-ar21
3 files changed, 71 insertions, 6 deletions
diff --git a/lang/smlnj/distinfo b/lang/smlnj/distinfo
index 86546844499..be8317fd212 100644
--- a/lang/smlnj/distinfo
+++ b/lang/smlnj/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.9 2005/02/24 09:03:11 agc Exp $
+$NetBSD: distinfo,v 1.10 2006/03/28 21:35:27 gavan Exp $
SHA1 (smlnj-110.42/MLRISC.tgz) = 55055ed06f7dd2ef178ef365c018f0f38f740528
RMD160 (smlnj-110.42/MLRISC.tgz) = 40aebe1cbf975e098bdf5115fd13b428e845195a
@@ -57,7 +57,7 @@ SHA1 (patch-ab) = 3d5946b2d72dee255159afe6fb25240f8fa7e306
SHA1 (patch-ac) = 7b3ea837db260542d1477ccbe0dba24c6afbc1e2
SHA1 (patch-ad) = a406bde2f6f7e2d93d652135b94aefd4b7aca494
SHA1 (patch-ae) = 5796401418fd91a795fdfe75060cf654dd315ac1
-SHA1 (patch-af) = d9912bf260eb3d7e92a3c03c08e023cd0d8bef7d
+SHA1 (patch-af) = a2b75a7309398b6869995cb46aeedc1416700da4
SHA1 (patch-ag) = dae9c89ccc7ada96bd3ac4b2bae1da6427902fb4
SHA1 (patch-ah) = 4d1f861cf18424db18fbcd19fd2e123b9a0a5247
SHA1 (patch-ai) = dfb45b2c7d59bcd9230edb30d5dfffd4dab5782e
@@ -69,3 +69,4 @@ SHA1 (patch-an) = d6e1a75d5fb68423ce3181622de919c2337db2e7
SHA1 (patch-ao) = 1c66024c5949269291cbf6f815baf6162db47d31
SHA1 (patch-ap) = 8e9e28548b4e58de68a11982a355a010ea96aa29
SHA1 (patch-aq) = 7d0734b76d778d7f584d2e70d325fd72e6554b01
+SHA1 (patch-ar) = 7e0bcad61ecdc39bb0fc038ea02921d683ba8648
diff --git a/lang/smlnj/patches/patch-af b/lang/smlnj/patches/patch-af
index b8fdd4f075f..c79a187c2e2 100644
--- a/lang/smlnj/patches/patch-af
+++ b/lang/smlnj/patches/patch-af
@@ -1,8 +1,8 @@
-$NetBSD: patch-af,v 1.3 2003/07/01 23:19:14 jtb Exp $
+$NetBSD: patch-af,v 1.4 2006/03/28 21:35:27 gavan Exp $
---- src/runtime/mach-dep/signal-sysdep.h.orig
+--- src/runtime/mach-dep/signal-sysdep.h.orig 2002-10-10 19:20:04.000000000 +0100
+++ src/runtime/mach-dep/signal-sysdep.h
-@@ -147,7 +147,7 @@
+@@ -147,7 +147,7 @@ extern void SetFSR(int);
/* disable all FP exceptions */
# define SIG_InitFPE() SetFSR(0)
@@ -11,7 +11,7 @@ $NetBSD: patch-af,v 1.3 2003/07/01 23:19:14 jtb Exp $
/** SPARC, SUNOS **/
# define USE_ZERO_LIMIT_PTR_FN
# define SIG_FAULT1 SIGFPE
-@@ -318,6 +318,19 @@
+@@ -318,6 +318,19 @@ extern void SetFSR();
# define SIG_Flags 0
@@ -31,3 +31,46 @@ $NetBSD: patch-af,v 1.3 2003/07/01 23:19:14 jtb Exp $
# endif /* HOST_RS6000/HOST_PPC */
+@@ -463,35 +476,15 @@ extern Addr_t *ML_X86Frame; /* used to
+
+ # elif defined(OPSYS_NETBSD)
+ /** x86, NetBSD **/
+-/* NetBSD (including versions 1.0 and 1.1) generates SIGBUS rather
+- than SIGFPE for overflows. The real fix is a trivial change to
+- kernel sources, which has already been reported (NetBSD internal
+- problem identification "port-i386/1833").
+-
+- If you want to fix this on your NetBSD system. Edit machdep.c in
+- directory /sys/arch/i386/i386, and find the line
+-
+- setgate(&idt[ 4], &IDTVEC(ofl), 0, SDT_SYS386TGT, SEL_KPL);
+-
+- Change SEL_KPL to SEL_UPL. With SEL_KPL, the int overflow trap is
+- not accessible at user level, and a protection fault occurs instead
+- (thus the seg fault). SEL_UPL will allow user processes to generate
+- this trap.
+-
+- For the change to take effect, recompile your kernel, install it
+- and reboot. */
+-# define SIG_FAULT1 SIGFPE
+-# define SIG_FAULT2 SIGBUS
+-# define INT_DIVZERO(s, c) 0
+-# define INT_OVFLW(s, c) (((s) == SIGFPE) || ((s) == SIGBUS))
+-
+-# define SIG_GetCode(info, scp) (info)
+-# define SIG_GetPC(scp) ((scp)->sc_pc)
+-# define SIG_SetPC(scp, addr) { (scp)->sc_pc = (long)(addr); }
++# define SIG_FAULT1 SIGFPE
++# define INT_DIVZERO(s, c) ((s) == SIGFPE)
++# define INT_OVFLW(s, c) ((s) == SIGFPE)
++
++# define SIG_GetCode(info, scp) (0)
++# define SIG_GetPC(scp) ((scp)->uc_mcontext.__gregs[_REG_EIP])
++# define SIG_SetPC(scp, addr) {(scp)->uc_mcontext.__gregs[_REG_EIP] = (long)(addr); }
+ # define SIG_ZeroLimitPtr(scp) { ML_X86Frame[LIMITPTR_X86OFFSET] = 0; }
+
+- typedef void SigReturn_t;
+-
+ # elif defined(OPSYS_SOLARIS)
+ /** x86, Solaris */
+
diff --git a/lang/smlnj/patches/patch-ar b/lang/smlnj/patches/patch-ar
new file mode 100644
index 00000000000..e535a48e51a
--- /dev/null
+++ b/lang/smlnj/patches/patch-ar
@@ -0,0 +1,21 @@
+$NetBSD: patch-ar,v 1.1 2006/03/28 21:35:27 gavan Exp $
+
+--- src/runtime/include/ml-unixdep.h.orig 2002-10-12 02:03:50.000000000 +0100
++++ src/runtime/include/ml-unixdep.h
+@@ -309,14 +309,14 @@ extern char *sys_errlist[];
+ #elif defined(OPSYS_NETBSD)
+ # define OS_NAME "BSD"
+ # define HAS_POSIX_LIBRARIES
+-# define HAS_BSD_SIGS
++# define HAS_POSIX_SIGS
+ # define HAS_GETRUSAGE
+ # define HAS_SETITIMER
+ # define HAS_MMAP
+ # define HAS_SELECT
+ # define HAS_SCALBN
+ # define HAS_ILOGB
+-# define HAS_SIGCONTEXT
++# define HAS_UCONTEXT
+ # define HAS_STRERROR
+
+ #endif