summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorhe <he@pkgsrc.org>2009-01-22 01:00:33 +0000
committerhe <he@pkgsrc.org>2009-01-22 01:00:33 +0000
commitca97e06d2e453d2b4512a61834309353008a26b8 (patch)
tree345b30aa437bb8cfb9052a3ccbba92f8bce675d4 /lang
parentce2bbc86d2bb01015dcf8652d6837af671eff4c3 (diff)
downloadpkgsrc-ca97e06d2e453d2b4512a61834309353008a26b8.tar.gz
Add a patch so that this package builds for our powerpc ports
as well. In this case, we fall into the SYS_elf branch together with Linux, but we need a few other specifics to access registers in the sigcontext.
Diffstat (limited to 'lang')
-rw-r--r--lang/ocaml/Makefile3
-rw-r--r--lang/ocaml/distinfo3
-rw-r--r--lang/ocaml/patches/patch-bv38
3 files changed, 42 insertions, 2 deletions
diff --git a/lang/ocaml/Makefile b/lang/ocaml/Makefile
index 6be0b703e20..03d24dc5b70 100644
--- a/lang/ocaml/Makefile
+++ b/lang/ocaml/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.60 2008/12/22 20:04:07 joerg Exp $
+# $NetBSD: Makefile,v 1.61 2009/01/22 01:00:33 he Exp $
PKG_DESTDIR_SUPPORT= user-destdir
@@ -30,6 +30,7 @@ BUILD_TARGET+= opt opt.opt
PLIST_SRC+= ${PKGDIR}/PLIST.opt
. if empty(MACHINE_PLATFORM:MDarwin-*-powerpc) && \
empty(MACHINE_PLATFORM:MSunOS-*-i386) && \
+ empty(MACHINE_PLATFORM:MNetBSD-*-powerpc) && \
empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) && \
empty(MACHINE_PLATFORM:MNetBSD-*-sparc)
PLIST_SRC+= ${PKGDIR}/PLIST.prof
diff --git a/lang/ocaml/distinfo b/lang/ocaml/distinfo
index 33294c50a92..6a798087be3 100644
--- a/lang/ocaml/distinfo
+++ b/lang/ocaml/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.43 2008/04/25 07:13:39 wiz Exp $
+$NetBSD: distinfo,v 1.44 2009/01/22 01:00:33 he Exp $
SHA1 (ocaml-3.10.2.tar.bz2) = f604580bf2943891d8faf265eeb900bbe90abce0
RMD160 (ocaml-3.10.2.tar.bz2) = f631230b090dbd9bf9a9f71631cd0347c033cbb1
@@ -37,3 +37,4 @@ SHA1 (patch-br) = c26f18532d3756188eb9c79bf9a301e50a0ce84b
SHA1 (patch-bs) = 8554ef37cdeac1998978adc74a9c709a84cccb92
SHA1 (patch-bt) = a1b9034f3034712bbedab51aed430285ca02ee5e
SHA1 (patch-bu) = df80c076248e1ad1ab6eae195bda724ea354a55e
+SHA1 (patch-bv) = 595641bb079174f393e420bdf5c48fe8ca1912cf
diff --git a/lang/ocaml/patches/patch-bv b/lang/ocaml/patches/patch-bv
new file mode 100644
index 00000000000..528b7370d86
--- /dev/null
+++ b/lang/ocaml/patches/patch-bv
@@ -0,0 +1,38 @@
+$NetBSD: patch-bv,v 1.5 2009/01/22 01:00:34 he Exp $
+
+--- ./asmrun/signals_osdep.h.orig 2007-11-26 17:58:51.000000000 +0100
++++ ./asmrun/signals_osdep.h
+@@ -158,10 +158,9 @@
+ #define CONTEXT_SP (CONTEXT_STATE.CONTEXT_REG(r1))
+ #define CONTEXT_FAULTING_ADDRESS ((char *) info->si_addr)
+
+-/****************** PowerPC, ELF (Linux) */
++/****************** PowerPC, ELF (Linux | NetBSD) */
+
+ #elif defined(TARGET_power) && defined(SYS_elf)
+-
+ #define DECLARE_SIGNAL_HANDLER(name) \
+ static void name(int sig, struct sigcontext * context)
+
+@@ -169,11 +168,21 @@
+ sigact.sa_handler = (void (*)(int)) (name); \
+ sigact.sa_flags = 0
+
++ #ifdef __NetBSD__
++ typedef register_t context_reg;
++ #define CONTEXT_PC (context->sc_frame.srr0)
++ #define CONTEXT_EXCEPTION_POINTER (context->sc_frame.fixreg[29])
++ #define CONTEXT_YOUNG_LIMIT (context->sc_frame.fixreg[30])
++ #define CONTEXT_YOUNG_PTR (context->sc_frame.fixreg[31])
++
++ #else
++
+ typedef unsigned long context_reg;
+ #define CONTEXT_PC (context->regs->nip)
+ #define CONTEXT_EXCEPTION_POINTER (context->regs->gpr[29])
+ #define CONTEXT_YOUNG_LIMIT (context->regs->gpr[30])
+ #define CONTEXT_YOUNG_PTR (context->regs->gpr[31])
++ #endif /* __NetBSD__ */
+
+ /****************** PowerPC, BSD */
+