summaryrefslogtreecommitdiff
path: root/lang/mono6/patches
diff options
context:
space:
mode:
authormaya <maya@pkgsrc.org>2019-08-25 16:37:01 +0000
committermaya <maya@pkgsrc.org>2019-08-25 16:37:01 +0000
commitb4fd3bab1c945eb5eaf19fd70b666f64b6486901 (patch)
treeaf2161616c8beb92d869b42d6948c45a59ea8c46 /lang/mono6/patches
parente9c838fa5b4f456d6badace96f88867a1858295c (diff)
downloadpkgsrc-b4fd3bab1c945eb5eaf19fd70b666f64b6486901.tar.gz
Add mono 6.0.0.313.
The Mono Project is an open development initiative sponsored by Ximian that is working to develop an open source, Unix version of the Microsoft .NET development platform. Its objective is to enable Unix developers to build and deploy cross-platform .NET Applications. The project will implement various technologies developed by Microsoft that have now been submitted to the ECMA for standardization.
Diffstat (limited to 'lang/mono6/patches')
-rw-r--r--lang/mono6/patches/patch-configure.ac53
-rw-r--r--lang/mono6/patches/patch-data_Makefile.am14
-rw-r--r--lang/mono6/patches/patch-data_net__2__0_Browsers_Makefile.am12
-rw-r--r--lang/mono6/patches/patch-data_net__2__0_Makefile.am14
-rw-r--r--lang/mono6/patches/patch-data_net__4__0_Browsers_Makefile.am12
-rw-r--r--lang/mono6/patches/patch-data_net__4__0_Makefile.am14
-rw-r--r--lang/mono6/patches/patch-data_net__4__5_Browsers_Makefile.am12
-rw-r--r--lang/mono6/patches/patch-data_net__4__5_Makefile.am14
-rw-r--r--lang/mono6/patches/patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs15
-rw-r--r--lang/mono6/patches/patch-mono_metadata_icall.c16
-rw-r--r--lang/mono6/patches/patch-mono_metadata_mono-config.c16
-rw-r--r--lang/mono6/patches/patch-mono_metadata_threads.c21
-rw-r--r--lang/mono6/patches/patch-mono_mini_Makefile.am.in15
-rw-r--r--lang/mono6/patches/patch-mono_native_Makefile.am36
-rw-r--r--lang/mono6/patches/patch-mono_native_mono-native-platform.h16
-rw-r--r--lang/mono6/patches/patch-mono_tests_Makefile.am15
-rw-r--r--lang/mono6/patches/patch-mono_utils_mono-os-semaphore.h16
-rw-r--r--lang/mono6/patches/patch-mono_utils_mono-state.c14
-rw-r--r--lang/mono6/patches/patch-mono_utils_mono-utils-debug.c31
-rw-r--r--lang/mono6/patches/patch-runtime_mono-wrapper.in12
20 files changed, 368 insertions, 0 deletions
diff --git a/lang/mono6/patches/patch-configure.ac b/lang/mono6/patches/patch-configure.ac
new file mode 100644
index 00000000000..35db6e116fa
--- /dev/null
+++ b/lang/mono6/patches/patch-configure.ac
@@ -0,0 +1,53 @@
+$NetBSD: patch-configure.ac,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Add netbsd support
+https://github.com/mono/mono/pull/15938
+
+--- configure.ac.orig 2019-07-18 07:52:31.000000000 +0000
++++ configure.ac
+@@ -4066,10 +4066,10 @@ LIBC="libc.so.6"
+ INTL="libc.so.6"
+ SQLITE="libsqlite.so.0"
+ SQLITE3="libsqlite3.so.0"
+-X11="libX11.so"
+-GDKX11="libgdk-x11-2.0.so.0"
+-GTKX11="libgtk-x11-2.0.so.0"
+-XINERAMA="libXinerama.so.1"
++X11="@X11BASE@/lib/libX11.so"
++GDKX11="@PREFIX@/lib/libgdk-x11-2.0.so.0"
++GTKX11="@PREFIX@/lib/libgtk-x11-2.0.so.0"
++XINERAMA="@X11BASE@/lib/libXinerama.so"
+
+ sizeof_register="SIZEOF_VOID_P"
+
+@@ -6177,6 +6177,22 @@ elif test x$platform_android = xyes; the
+ MONO_NATIVE_PLATFORM=android
+
+ MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_ANDROID"
++elif case $host_os in netbsd*) true;; *) false;; esac; then
++ mono_native_text="NetBSD"
++ MONO_NATIVE_CC=$CC
++ MONO_NATIVE_CXX=$CXX
++ MONO_NATIVE_CPPFLAGS=$CPPFLAGS
++ MONO_NATIVE_CXXFLAGS=$CXXFLAGS
++ MONO_NATIVE_CFLAGS=$CFLAGS
++ MONO_NATIVE_LDFLAGS=$LDFLAGS
++
++ mono_native=yes
++ mono_native_compat=no
++ MONO_NATIVE_PLATFORM=netbsd
++ AC_MSG_CHECKING([Mono.Native support])
++ AC_MSG_RESULT(netbsd)
++
++ MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_NETBSD"
+ else
+ mono_native=no
+ mono_native_text="no"
+@@ -6218,6 +6234,7 @@ AM_CONDITIONAL(MONO_NATIVE_PLATFORM_IOS,
+ AM_CONDITIONAL(MONO_NATIVE_PLATFORM_LINUX, test x$MONO_NATIVE_PLATFORM = xlinux)
+ AM_CONDITIONAL(MONO_NATIVE_PLATFORM_AIX, test x$MONO_NATIVE_PLATFORM = xaix)
+ AM_CONDITIONAL(MONO_NATIVE_PLATFORM_ANDROID, test x$MONO_NATIVE_PLATFORM = xandroid)
++AM_CONDITIONAL(MONO_NATIVE_PLATFORM_NETBSD, test x$MONO_NATIVE_PLATFORM = xnetbsd)
+
+ MONO_NATIVE_PLATFORM_TYPE_COMPAT="$MONO_NATIVE_PLATFORM_TYPE | MONO_NATIVE_PLATFORM_TYPE_COMPAT"
+ MONO_NATIVE_PLATFORM_TYPE_UNIFIED="$MONO_NATIVE_PLATFORM_TYPE | MONO_NATIVE_PLATFORM_TYPE_UNIFIED"
diff --git a/lang/mono6/patches/patch-data_Makefile.am b/lang/mono6/patches/patch-data_Makefile.am
new file mode 100644
index 00000000000..18ff82e369b
--- /dev/null
+++ b/lang/mono6/patches/patch-data_Makefile.am
@@ -0,0 +1,14 @@
+$NetBSD: patch-data_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = net_2_0 net_4_0 net_4_5
+
+-monodir = $(sysconfdir)/mono
++monodir = $(datadir)/examples/mono
+ monolldbdir = $(libdir)/mono/lldb
+
+ EXTRA_DIST = \
diff --git a/lang/mono6/patches/patch-data_net__2__0_Browsers_Makefile.am b/lang/mono6/patches/patch-data_net__2__0_Browsers_Makefile.am
new file mode 100644
index 00000000000..985076e1d4f
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__2__0_Browsers_Makefile.am
@@ -0,0 +1,12 @@
+$NetBSD: patch-data_net__2__0_Browsers_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_2_0/Browsers/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_2_0/Browsers/Makefile.am
+@@ -1,4 +1,4 @@
+-monodir = $(sysconfdir)/mono/2.0/Browsers
++monodir = $(datadir)/examples/mono/2.0/Browsers
+
+ EXTRA_DIST = ../../Browsers/Compat.browser
+
diff --git a/lang/mono6/patches/patch-data_net__2__0_Makefile.am b/lang/mono6/patches/patch-data_net__2__0_Makefile.am
new file mode 100644
index 00000000000..9e475229e05
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__2__0_Makefile.am
@@ -0,0 +1,14 @@
+$NetBSD: patch-data_net__2__0_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_2_0/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_2_0/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = Browsers
+
+-monodir = $(sysconfdir)/mono/2.0
++monodir = $(datadir)/examples/mono/2.0
+
+ EXTRA_DIST = machine.config \
+ web.config \
diff --git a/lang/mono6/patches/patch-data_net__4__0_Browsers_Makefile.am b/lang/mono6/patches/patch-data_net__4__0_Browsers_Makefile.am
new file mode 100644
index 00000000000..718541da31a
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__4__0_Browsers_Makefile.am
@@ -0,0 +1,12 @@
+$NetBSD: patch-data_net__4__0_Browsers_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_4_0/Browsers/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_4_0/Browsers/Makefile.am
+@@ -1,4 +1,4 @@
+-monodir = $(sysconfdir)/mono/4.0/Browsers
++monodir = $(datadir)/examples/mono/4.0/Browsers
+
+ EXTRA_DIST = ../../Browsers/Compat.browser
+
diff --git a/lang/mono6/patches/patch-data_net__4__0_Makefile.am b/lang/mono6/patches/patch-data_net__4__0_Makefile.am
new file mode 100644
index 00000000000..3222b406223
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__4__0_Makefile.am
@@ -0,0 +1,14 @@
+$NetBSD: patch-data_net__4__0_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_4_0/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_4_0/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = Browsers
+
+-monodir = $(sysconfdir)/mono/4.0
++monodir = $(datadir)/examples/mono/4.0
+
+ EXTRA_DIST = machine.config \
+ web.config \
diff --git a/lang/mono6/patches/patch-data_net__4__5_Browsers_Makefile.am b/lang/mono6/patches/patch-data_net__4__5_Browsers_Makefile.am
new file mode 100644
index 00000000000..23e839bb8b7
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__4__5_Browsers_Makefile.am
@@ -0,0 +1,12 @@
+$NetBSD: patch-data_net__4__5_Browsers_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_4_5/Browsers/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_4_5/Browsers/Makefile.am
+@@ -1,4 +1,4 @@
+-monodir = $(sysconfdir)/mono/4.5/Browsers
++monodir = $(datadir)/examples/mono/4.5/Browsers
+
+ EXTRA_DIST = ../../Browsers/Compat.browser
+
diff --git a/lang/mono6/patches/patch-data_net__4__5_Makefile.am b/lang/mono6/patches/patch-data_net__4__5_Makefile.am
new file mode 100644
index 00000000000..9ca355e18fc
--- /dev/null
+++ b/lang/mono6/patches/patch-data_net__4__5_Makefile.am
@@ -0,0 +1,14 @@
+$NetBSD: patch-data_net__4__5_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Install configuration files to the examples directory.
+
+--- data/net_4_5/Makefile.am.orig 2019-07-18 07:46:04.000000000 +0000
++++ data/net_4_5/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = Browsers
+
+-monodir = $(sysconfdir)/mono/4.5
++monodir = $(datadir)/examples/mono/4.5
+
+ EXTRA_DIST = machine.config \
+ web.config \
diff --git a/lang/mono6/patches/patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs b/lang/mono6/patches/patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs
new file mode 100644
index 00000000000..ede16f62e41
--- /dev/null
+++ b/lang/mono6/patches/patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs
@@ -0,0 +1,15 @@
+$NetBSD: patch-mcs_class_corlib_Test_Mono_MonoNativePlatformType.cs,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Add netbsd support
+https://github.com/mono/mono/pull/15938
+
+--- mcs/class/corlib/Test/Mono/MonoNativePlatformType.cs.orig 2019-07-18 07:46:07.000000000 +0000
++++ mcs/class/corlib/Test/Mono/MonoNativePlatformType.cs
+@@ -36,6 +36,7 @@ namespace Mono
+ MONO_NATIVE_PLATFORM_TYPE_IOS = 2,
+ MONO_NATIVE_PLATFORM_TYPE_LINUX = 3,
+ MONO_NATIVE_PLATFORM_TYPE_AIX = 4,
++ MONO_NATIVE_PLATFORM_TYPE_NETBSD = 8,
+
+ MONO_NATIVE_PLATFORM_TYPE_IPHONE = 0x100,
+ MONO_NATIVE_PLATFORM_TYPE_TV = 0x200,
diff --git a/lang/mono6/patches/patch-mono_metadata_icall.c b/lang/mono6/patches/patch-mono_metadata_icall.c
new file mode 100644
index 00000000000..94b8dbf5d66
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_metadata_icall.c
@@ -0,0 +1,16 @@
+$NetBSD: patch-mono_metadata_icall.c,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+NetBSD will side-load <stdbool.h> which must have #define bool _Bool.
+This causes some problems with the C preprocessor usage here. undef it.
+
+--- mono/metadata/icall.c.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/metadata/icall.c
+@@ -117,6 +117,8 @@
+ #include "icall-decl.h"
+ #include "mono/utils/mono-threads-coop.h"
+
++#undef bool
++
+ //#define MONO_DEBUG_ICALLARRAY
+
+ #ifdef MONO_DEBUG_ICALLARRAY
diff --git a/lang/mono6/patches/patch-mono_metadata_mono-config.c b/lang/mono6/patches/patch-mono_metadata_mono-config.c
new file mode 100644
index 00000000000..f2d2fdfb4ed
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_metadata_mono-config.c
@@ -0,0 +1,16 @@
+$NetBSD: patch-mono_metadata_mono-config.c,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Look for our dllmap in /usr/pkg/etc/mono/config
+as opposed to /usr/pkg/etc/mono/mono/config
+
+--- mono/metadata/mono-config.c.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/metadata/mono-config.c
+@@ -694,7 +694,7 @@ mono_config_parse (const char *filename)
+
+ const char *mono_cfg_dir = mono_get_config_dir ();
+ if (mono_cfg_dir) {
+- mono_cfg = g_build_filename (mono_cfg_dir, "mono", "config", NULL);
++ mono_cfg = g_build_filename (mono_cfg_dir, "config", NULL);
+ mono_config_parse_file (mono_cfg);
+ g_free (mono_cfg);
+ }
diff --git a/lang/mono6/patches/patch-mono_metadata_threads.c b/lang/mono6/patches/patch-mono_metadata_threads.c
new file mode 100644
index 00000000000..267f27f073a
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_metadata_threads.c
@@ -0,0 +1,21 @@
+$NetBSD: patch-mono_metadata_threads.c,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+If sched_get_priority_{min,max} error, don't try to set a priority.
+NetBSD doesn't like SCHED_OTHER + 0 priority, and will error here.
+
+https://github.com/mono/mono/pull/15898
+
+--- mono/metadata/threads.c.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/metadata/threads.c
+@@ -743,6 +743,11 @@ mono_thread_internal_set_priority (MonoI
+ #endif
+ MONO_EXIT_GC_SAFE;
+
++ /* Not tunable. Bail out */
++ if ((min == -1) || (max == -1))
++ return;
++
++
+ if (max > 0 && min >= 0 && max > min) {
+ double srange, drange, sposition, dposition;
+ srange = MONO_THREAD_PRIORITY_HIGHEST - MONO_THREAD_PRIORITY_LOWEST;
diff --git a/lang/mono6/patches/patch-mono_mini_Makefile.am.in b/lang/mono6/patches/patch-mono_mini_Makefile.am.in
new file mode 100644
index 00000000000..b904db63f87
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_mini_Makefile.am.in
@@ -0,0 +1,15 @@
+$NetBSD: patch-mono_mini_Makefile.am.in,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Replace python executable name.
+
+--- mono/mini/Makefile.am.in.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/mini/Makefile.am.in
+@@ -779,7 +779,7 @@ MemoryIntrinsics.dll: MemoryIntrinsics.i
+
+ GENMDESC_OPTS=
+
+-GENMDESC_PRG=python $(srcdir)/genmdesc.py $(target_define) $(srcdir)
++GENMDESC_PRG=@PYTHONBIN@ $(srcdir)/genmdesc.py $(target_define) $(srcdir)
+
+ cpu-wasm.h: mini-ops.h cpu-wasm.md
+ $(GENMDESC_PRG) cpu-wasm.h wasm_desc $(srcdir)/cpu-wasm.md
diff --git a/lang/mono6/patches/patch-mono_native_Makefile.am b/lang/mono6/patches/patch-mono_native_Makefile.am
new file mode 100644
index 00000000000..8d75177927c
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_native_Makefile.am
@@ -0,0 +1,36 @@
+$NetBSD: patch-mono_native_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Add netbsd support
+https://github.com/mono/mono/pull/15938
+
+--- mono/native/Makefile.am.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/native/Makefile.am
+@@ -49,6 +49,8 @@ linux_sources = $(unix_sources)
+
+ aix_sources = $(unix_sources)
+
++netbsd_sources = $(unix_sources)
++
+ android_sources = \
+ pal-android.h \
+ pal-android.c \
+@@ -86,7 +88,7 @@ macos_sources += $(gss_sources)
+ ios_sources += $(gss_sources)
+ endif
+
+-EXTRA_libmono_native_la_SOURCES = $(common_sources) $(macos_sources) $(ios_sources) $(linux_sources) $(aix_sources) $(unix_sources) $(gss_sources)
++EXTRA_libmono_native_la_SOURCES = $(common_sources) $(macos_sources) $(ios_sources) $(linux_sources) $(aix_sources) $(netbsd_sources) $(unix_sources) $(gss_sources)
+
+ if MONO_NATIVE_PLATFORM_MACOS
+ platform_sources = $(macos_sources)
+@@ -102,6 +104,10 @@ platform_sources = $(aix_sources)
+ else
+ if MONO_NATIVE_PLATFORM_ANDROID
+ platform_sources = $(android_sources)
++else
++if MONO_NATIVE_PLATFORM_NETBSD
++platform_sources = $(netbsd_sources)
++endif
+ endif
+ endif
+ endif
diff --git a/lang/mono6/patches/patch-mono_native_mono-native-platform.h b/lang/mono6/patches/patch-mono_native_mono-native-platform.h
new file mode 100644
index 00000000000..77ad2b6701f
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_native_mono-native-platform.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-mono_native_mono-native-platform.h,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Add netbsd support
+https://github.com/mono/mono/pull/15938
+
+--- mono/native/mono-native-platform.h.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/native/mono-native-platform.h
+@@ -11,6 +11,8 @@ typedef enum {
+ MONO_NATIVE_PLATFORM_TYPE_LINUX = 3,
+ MONO_NATIVE_PLATFORM_TYPE_AIX = 4,
+ MONO_NATIVE_PLATFORM_TYPE_ANDROID = 5,
++ MONO_NATIVE_PLATFORM_TYPE_FREEBSD = 6,
++ MONO_NATIVE_PLATFORM_TYPE_NETBSD = 8,
+
+ MONO_NATIVE_PLATFORM_TYPE_IPHONE = 0x100,
+ MONO_NATIVE_PLATFORM_TYPE_TV = 0x200,
diff --git a/lang/mono6/patches/patch-mono_tests_Makefile.am b/lang/mono6/patches/patch-mono_tests_Makefile.am
new file mode 100644
index 00000000000..45b278dc117
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_tests_Makefile.am
@@ -0,0 +1,15 @@
+$NetBSD: patch-mono_tests_Makefile.am,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Replace python executable name.
+
+--- mono/tests/Makefile.am.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/tests/Makefile.am
+@@ -3151,7 +3151,7 @@ coreclr-gcstress:
+ # Tests for the Mono lldb plugin
+ EXTRA_DIST += test_lldb.py test-lldb.cs
+ test-lldb: test-lldb.exe
+- python test_lldb.py $(JITTEST_PROG)
++ @PYTHONBIN@ test_lldb.py $(JITTEST_PROG)
+
+ noinst_LTLIBRARIES = libtest.la
+
diff --git a/lang/mono6/patches/patch-mono_utils_mono-os-semaphore.h b/lang/mono6/patches/patch-mono_utils_mono-os-semaphore.h
new file mode 100644
index 00000000000..3c2f4f4daab
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_utils_mono-os-semaphore.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-mono_utils_mono-os-semaphore.h,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+XXX netbsd will return EBUSY if we try to destroy a semaphore
+that something is waiting on. This apparently occurs in practice.
+
+--- mono/utils/mono-os-semaphore.h.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/utils/mono-os-semaphore.h
+@@ -190,6 +190,8 @@ mono_os_sem_destroy (MonoSemType *sem)
+ int res;
+
+ res = sem_destroy (sem);
++ if ((res != 0) && (errno = EBUSY))
++ res = 0;
+ if (G_UNLIKELY (res != 0))
+ g_error ("%s: sem_destroy failed with \"%s\" (%d)", __func__, g_strerror (errno), errno);
+ }
diff --git a/lang/mono6/patches/patch-mono_utils_mono-state.c b/lang/mono6/patches/patch-mono_utils_mono-state.c
new file mode 100644
index 00000000000..bf200d64e94
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_utils_mono-state.c
@@ -0,0 +1,14 @@
+$NetBSD: patch-mono_utils_mono-state.c,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+sys/stat.h for S_IRUSR etc.
+
+--- mono/utils/mono-state.c.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/utils/mono-state.c
+@@ -17,6 +17,7 @@
+ #include <mono/metadata/object-internals.h>
+
+ #include <sys/param.h>
++#include <sys/stat.h>
+ #include <fcntl.h>
+ #include <utils/mono-threads-debug.h>
+
diff --git a/lang/mono6/patches/patch-mono_utils_mono-utils-debug.c b/lang/mono6/patches/patch-mono_utils_mono-utils-debug.c
new file mode 100644
index 00000000000..8b3776d64e6
--- /dev/null
+++ b/lang/mono6/patches/patch-mono_utils_mono-utils-debug.c
@@ -0,0 +1,31 @@
+$NetBSD: patch-mono_utils_mono-utils-debug.c,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Learn to use kinfo_proc2 on netbsd
+
+--- mono/utils/mono-utils-debug.c.orig 2019-07-18 07:46:08.000000000 +0000
++++ mono/utils/mono-utils-debug.c
+@@ -27,10 +27,11 @@ mono_is_usermode_native_debugger_present
+ #include <errno.h>
+ #include <mono/utils/mono-errno.h>
+ #include <fcntl.h>
+-#if defined (__APPLE__)
++#if defined (__APPLE__) || defined (__NetBSD__)
+ #include <sys/sysctl.h>
+ #endif
+ #if defined (__NetBSD__)
++#include <sys/proc.h>
+ #include <kvm.h>
+ #endif
+ #if defined (_AIX)
+@@ -78,8 +79,9 @@ mono_is_usermode_native_debugger_present
+ if (!kd)
+ return FALSE;
+ int count = 0;
+- struct kinfo_proc const * const info = kvm_getprocs (kd, KERN_PROC_PID, getpid (), &count);
+- gboolean const traced = info && count > 0 && (info->kp_proc.p_slflag & PSL_TRACED);
++ int nproc;
++ struct kinfo_proc2 const * const info = kvm_getproc2 (kd, KERN_PROC_PID, getpid (), sizeof(struct kinfo_proc2), &count);
++ gboolean const traced = info && count > 0 && (info->p_flag & P_TRACED);
+ kvm_close (kd);
+ return traced;
+
diff --git a/lang/mono6/patches/patch-runtime_mono-wrapper.in b/lang/mono6/patches/patch-runtime_mono-wrapper.in
new file mode 100644
index 00000000000..1aca2736ce2
--- /dev/null
+++ b/lang/mono6/patches/patch-runtime_mono-wrapper.in
@@ -0,0 +1,12 @@
+$NetBSD: patch-runtime_mono-wrapper.in,v 1.1 2019/08/25 16:37:01 maya Exp $
+
+Mark the mono executable as not MPROTECT safe during the build.
+
+--- runtime/mono-wrapper.in.orig 2019-07-18 07:46:08.000000000 +0000
++++ runtime/mono-wrapper.in
+@@ -8,4 +8,5 @@ then
+ fi
+ MONO_EXECUTABLE=${MONO_EXECUTABLE:-"$r/@mono_runtime@"}
+ export MONO_CFG_DIR PATH
++paxctl +m $(readlink -f "$MONO_EXECUTABLE") | true 2>/dev/null
+ exec "$r/libtool" --mode=execute "${MONO_EXECUTABLE_WRAPPER}" --config "@mono_cfg_dir@/mono/config" "$@"