diff options
Diffstat (limited to 'lang')
-rw-r--r-- | lang/smlnj/distinfo | 5 | ||||
-rw-r--r-- | lang/smlnj/patches/patch-af | 51 | ||||
-rw-r--r-- | lang/smlnj/patches/patch-ar | 21 |
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 |