summaryrefslogtreecommitdiff
path: root/lang/mono
diff options
context:
space:
mode:
authorhe <he@pkgsrc.org>2017-01-10 10:35:28 +0000
committerhe <he@pkgsrc.org>2017-01-10 10:35:28 +0000
commit8804148689e69b30807775c4af784195e64dfa4d (patch)
treeb575e5eeb05f4981e14ef9b81a0d31bd8cd76064 /lang/mono
parentfd82136a05245d86b825a8b6ea09813d8d7c3e4a (diff)
downloadpkgsrc-8804148689e69b30807775c4af784195e64dfa4d.tar.gz
Rename one patch, add another to fix at least two problems preventing
this to build for NetBSD/powerpc: * need a cast in one place (in the renamed patch) * an overcautious assert() is incompatible with top/down VM layout in NetBSD This still doesn't work on NetBSD/powerpc, though, and I ran out of time. The build produces a mono-boehm.core file the first time through the build (for some reason not the subsequent attempts, sigh!), and I have problems reconstructing the CLI to run the mono-boehm executable under gdb, and the core file says it got a segv in opendir() which must be nonsensical.
Diffstat (limited to 'lang/mono')
-rw-r--r--lang/mono/distinfo5
-rw-r--r--lang/mono/patches/patch-mono_utils_mono-sigcontext.h (renamed from lang/mono/patches/patch-ad)15
-rw-r--r--lang/mono/patches/patch-mono_utils_mono-threads.c22
3 files changed, 34 insertions, 8 deletions
diff --git a/lang/mono/distinfo b/lang/mono/distinfo
index e68307d333f..0eb837680ba 100644
--- a/lang/mono/distinfo
+++ b/lang/mono/distinfo
@@ -1,11 +1,10 @@
-$NetBSD: distinfo,v 1.107 2015/11/03 22:50:39 agc Exp $
+$NetBSD: distinfo,v 1.108 2017/01/10 10:35:28 he Exp $
SHA1 (mono-4.0.4.1.tar.bz2) = 12f3dbdac92e937cafba1d4e5a168c4cf2620935
RMD160 (mono-4.0.4.1.tar.bz2) = 27c2d2682786444ee52199134cb84cc59894b093
SHA512 (mono-4.0.4.1.tar.bz2) = 2f299e97dd3014c9d221677e73e5134a0c0a5b27e479fb60aabc2b3eddedf07f525f3a74194ccbfdf8efe63d7ea72850f8ee64d6f15f51bccd5db0df6c1b3722
Size (mono-4.0.4.1.tar.bz2) = 96106273 bytes
SHA1 (patch-aa) = 84e5bca2b6d9715271c343f774c81186858d90c9
-SHA1 (patch-ad) = ebd47980f0141f7cbd0c6bbcfc15942cebc263f1
SHA1 (patch-ae) = 25869b98f9197243aea799b75b238d92f58e8845
SHA1 (patch-af) = 6a458a91dc34420d45238b5dad01ed63f0bd9e00
SHA1 (patch-ai) = d06c382d188f4263a2a505ca3d3ee491baa3af28
@@ -54,10 +53,12 @@ SHA1 (patch-mono_utils_Makefile.in) = be9caeff6d687e8c686d7436db2f39f7803c231a
SHA1 (patch-mono_utils_mono-compiler.h) = 210062c167c00500f6a9176ef94c8cd96d39c730
SHA1 (patch-mono_utils_mono-mmap.c) = 869c24a57861fcfb1bdc8a04ed0e0d1fd5a0e0b5
SHA1 (patch-mono_utils_mono-semaphore.c) = a47c7816445c7781e1cf0efc889dedfbf5b351f9
+SHA1 (patch-mono_utils_mono-sigcontext.h) = 2ab18320bf0c3844bd79818da9fbbedeb6ff466d
SHA1 (patch-mono_utils_mono-threads-dragonfly.c) = d41c7735d5ba0224ff4a4cf70308fb835ec00bbe
SHA1 (patch-mono_utils_mono-threads-netbsd.c) = 29d7bdb4906bca4e2f5a0a94b7e70e04570df8ee
SHA1 (patch-mono_utils_mono-threads-posix.c) = d0cb2b1be62cbafe86a3efa817b8120af4ab1086
SHA1 (patch-mono_utils_mono-threads-solaris.c) = 8781c9e09edfbbbc9940f02cce46a3ce5b6c10c3
+SHA1 (patch-mono_utils_mono-threads.c) = 1cf1bd2416fc36df0e456774281c7d4a1bfa50fc
SHA1 (patch-po_Makefile.in) = 53f967c75ae028d991f118fb3bbc5b90bb4ceea7
SHA1 (patch-support_signal.c) = 33e0c19c21955b105d78a05b2b10d00f479a60c2
SHA1 (patch-support_time.c) = 2031ab294d66594ff3645b03c48ffca143ab59b5
diff --git a/lang/mono/patches/patch-ad b/lang/mono/patches/patch-mono_utils_mono-sigcontext.h
index 4f840bb9744..36d94b39e79 100644
--- a/lang/mono/patches/patch-ad
+++ b/lang/mono/patches/patch-mono_utils_mono-sigcontext.h
@@ -1,8 +1,8 @@
-$NetBSD: patch-ad,v 1.27 2014/11/30 08:40:51 spz Exp $
+$NetBSD: patch-mono_utils_mono-sigcontext.h,v 1.1 2017/01/10 10:35:28 he Exp $
---- mono/utils/mono-sigcontext.h.orig 2014-09-22 13:23:09.000000000 +0000
+--- mono/utils/mono-sigcontext.h.orig 2015-08-25 20:33:40.000000000 +0000
+++ mono/utils/mono-sigcontext.h
-@@ -204,6 +204,10 @@ typedef struct ucontext {
+@@ -201,6 +201,10 @@ typedef struct ucontext {
#define UCONTEXT_REG_RSI(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_RSI])
#define UCONTEXT_REG_RDI(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_RDI])
#define UCONTEXT_REG_RIP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_RIP])
@@ -13,16 +13,19 @@ $NetBSD: patch-ad,v 1.27 2014/11/30 08:40:51 spz Exp $
#define UCONTEXT_REG_R12(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R12])
#define UCONTEXT_REG_R13(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R13])
#define UCONTEXT_REG_R14(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R14])
-@@ -292,7 +296,7 @@ typedef struct ucontext {
+@@ -287,9 +291,9 @@ typedef struct ucontext {
+
+ #define UCONTEXT_REG_Rn(ctx, n) (((os_ucontext*)(ctx))->uc_mcontext.__gregs [(n)])
#define UCONTEXT_REG_FPRn(ctx, n) (((os_ucontext*)(ctx))->uc_mcontext.__fpregs.__fpu_regs [(n)])
- #define UCONTEXT_REG_NIP(ctx) _UC_MACHINE_PC(ctx)
+- #define UCONTEXT_REG_NIP(ctx) _UC_MACHINE_PC(ctx)
++ #define UCONTEXT_REG_NIP(ctx) _UC_MACHINE_PC((os_ucontext*)(ctx))
#define UCONTEXT_REG_LNK(ctx) (((os_ucontext*)(ctx))->uc_mcontext.__gregs [_REG_LR])
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__DragonFly__)
typedef ucontext_t os_ucontext;
#define UCONTEXT_REG_Rn(ctx, n) ((ctx)->uc_mcontext.mc_gpr [(n)])
-@@ -354,6 +358,27 @@ typedef struct ucontext {
+@@ -351,6 +355,27 @@ typedef struct ucontext {
#define UCONTEXT_REG_R11(ctx) (((arm_ucontext*)(ctx))->sig_ctx.arm_fp)
#define UCONTEXT_REG_R12(ctx) (((arm_ucontext*)(ctx))->sig_ctx.arm_ip)
#define UCONTEXT_REG_CPSR(ctx) (((arm_ucontext*)(ctx))->sig_ctx.arm_cpsr)
diff --git a/lang/mono/patches/patch-mono_utils_mono-threads.c b/lang/mono/patches/patch-mono_utils_mono-threads.c
new file mode 100644
index 00000000000..90e9f5bb300
--- /dev/null
+++ b/lang/mono/patches/patch-mono_utils_mono-threads.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-mono_utils_mono-threads.c,v 1.1 2017/01/10 10:35:28 he Exp $
+
+The assert checking the thread stack address
+relative to the current stack is not portable,
+so #if it out on at least NetBSD to make progress
+with NetBSD/macppc.
+
+--- ./mono/utils/mono-threads.c.orig 2015-08-25 22:09:13.000000000 +0000
++++ ./mono/utils/mono-threads.c
+@@ -840,8 +840,12 @@ mono_thread_info_get_stack_bounds (guint
+ if (!*staddr)
+ return;
+
++ /* With top-down address layout, this assert is not
++ making a portable check / assumption */
++#if !defined(__NetBSD__)
+ /* Sanity check the result */
+ g_assert ((current > *staddr) && (current < *staddr + *stsize));
++#endif /* !defined(__NetBSD__) */
+
+ /* When running under emacs, sometimes staddr is not aligned to a page size */
+ *staddr = (guint8*)((gssize)*staddr & ~(mono_pagesize () - 1));