pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/mono Rename one patch, add another to fix at leas...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/db7dae411055
branches:  trunk
changeset: 356997:db7dae411055
user:      he <he%pkgsrc.org@localhost>
date:      Tue Jan 10 10:35:28 2017 +0000

description:
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:

 lang/mono/distinfo                                   |   5 +-
 lang/mono/patches/patch-ad                           |  52 ------------------
 lang/mono/patches/patch-mono_utils_mono-sigcontext.h |  55 ++++++++++++++++++++
 lang/mono/patches/patch-mono_utils_mono-threads.c    |  22 ++++++++
 4 files changed, 80 insertions(+), 54 deletions(-)

diffs (170 lines):

diff -r 6b0497b88cb7 -r db7dae411055 lang/mono/distinfo
--- a/lang/mono/distinfo        Mon Jan 09 22:13:29 2017 +0000
+++ b/lang/mono/distinfo        Tue Jan 10 10:35:28 2017 +0000
@@ -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_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 -r 6b0497b88cb7 -r db7dae411055 lang/mono/patches/patch-ad
--- a/lang/mono/patches/patch-ad        Mon Jan 09 22:13:29 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-$NetBSD: patch-ad,v 1.27 2014/11/30 08:40:51 spz Exp $
-
---- mono/utils/mono-sigcontext.h.orig  2014-09-22 13:23:09.000000000 +0000
-+++ mono/utils/mono-sigcontext.h
-@@ -204,6 +204,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])
-+      #define UCONTEXT_REG_R8(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R8])
-+      #define UCONTEXT_REG_R9(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R9])
-+      #define UCONTEXT_REG_R10(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R10])
-+      #define UCONTEXT_REG_R11(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R11])
-       #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 {
-       #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_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 {
-       #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)
-+#elif defined(__NetBSD__)
-+      typedef ucontext_t arm_ucontext;
-+
-+      #define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_PC])
-+      #define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_SP])
-+      #define UCONTEXT_REG_LR(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_LR])
-+      #define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R0])
-+      #define UCONTEXT_REG_R1(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R1])
-+      #define UCONTEXT_REG_R2(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R2])
-+      #define UCONTEXT_REG_R3(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R3])
-+      #define UCONTEXT_REG_R4(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R4])
-+      #define UCONTEXT_REG_R5(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R5])
-+      #define UCONTEXT_REG_R6(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R6])
-+      #define UCONTEXT_REG_R7(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R7])
-+      #define UCONTEXT_REG_R8(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R8])
-+      #define UCONTEXT_REG_R9(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R9])
-+      #define UCONTEXT_REG_R10(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R10])
-+      #define UCONTEXT_REG_R11(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R11])
-+      #define UCONTEXT_REG_R12(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R12])
-+      #define UCONTEXT_REG_CPSR(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_CPSR])
-+      #define UCONTEXT_REG_VFPREGS(ctx) (double*)(&((ucontext_t*)(ctx))->uc_mcontext.__fpu)
- #endif
- 
- #elif defined(TARGET_ARM64)
diff -r 6b0497b88cb7 -r db7dae411055 lang/mono/patches/patch-mono_utils_mono-sigcontext.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/mono/patches/patch-mono_utils_mono-sigcontext.h      Tue Jan 10 10:35:28 2017 +0000
@@ -0,0 +1,55 @@
+$NetBSD: patch-mono_utils_mono-sigcontext.h,v 1.1 2017/01/10 10:35:28 he Exp $
+
+--- mono/utils/mono-sigcontext.h.orig  2015-08-25 20:33:40.000000000 +0000
++++ mono/utils/mono-sigcontext.h
+@@ -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])
++      #define UCONTEXT_REG_R8(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R8])
++      #define UCONTEXT_REG_R9(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R9])
++      #define UCONTEXT_REG_R10(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R10])
++      #define UCONTEXT_REG_R11(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs [_REG_R11])
+       #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])
+@@ -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((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)])
+@@ -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)
++#elif defined(__NetBSD__)
++      typedef ucontext_t arm_ucontext;
++
++      #define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_PC])
++      #define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_SP])
++      #define UCONTEXT_REG_LR(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_LR])
++      #define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R0])
++      #define UCONTEXT_REG_R1(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R1])
++      #define UCONTEXT_REG_R2(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R2])
++      #define UCONTEXT_REG_R3(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R3])
++      #define UCONTEXT_REG_R4(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R4])
++      #define UCONTEXT_REG_R5(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R5])
++      #define UCONTEXT_REG_R6(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R6])
++      #define UCONTEXT_REG_R7(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R7])
++      #define UCONTEXT_REG_R8(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R8])
++      #define UCONTEXT_REG_R9(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R9])
++      #define UCONTEXT_REG_R10(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R10])
++      #define UCONTEXT_REG_R11(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R11])
++      #define UCONTEXT_REG_R12(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_R12])
++      #define UCONTEXT_REG_CPSR(ctx) (((ucontext_t*)(ctx))->uc_mcontext.__gregs[_REG_CPSR])
++      #define UCONTEXT_REG_VFPREGS(ctx) (double*)(&((ucontext_t*)(ctx))->uc_mcontext.__fpu)
+ #endif
+ 
+ #elif defined(TARGET_ARM64)
diff -r 6b0497b88cb7 -r db7dae411055 lang/mono/patches/patch-mono_utils_mono-threads.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/mono/patches/patch-mono_utils_mono-threads.c Tue Jan 10 10:35:28 2017 +0000
@@ -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));



Home | Main Index | Thread Index | Old Index