diff options
author | he <he@pkgsrc.org> | 2017-01-10 10:35:28 +0000 |
---|---|---|
committer | he <he@pkgsrc.org> | 2017-01-10 10:35:28 +0000 |
commit | 8804148689e69b30807775c4af784195e64dfa4d (patch) | |
tree | b575e5eeb05f4981e14ef9b81a0d31bd8cd76064 /lang/mono | |
parent | fd82136a05245d86b825a8b6ea09813d8d7c3e4a (diff) | |
download | pkgsrc-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/distinfo | 5 | ||||
-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.c | 22 |
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)); |