Fri Feb 14 00:50:51 2020 UTC ()
mono6: Fix build on NetBSD

Switch from kvm(3) calls to sysctl(3) ones to detect whether a current
process is debugged.


(kamil)
diff -r1.7 -r1.8 pkgsrc/lang/mono6/distinfo
diff -r1.2 -r1.3 pkgsrc/lang/mono6/patches/patch-mono_utils_mono-utils-debug.c

cvs diff -r1.7 -r1.8 pkgsrc/lang/mono6/Attic/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/mono6/Attic/distinfo 2020/02/12 15:25:15 1.7
+++ pkgsrc/lang/mono6/Attic/distinfo 2020/02/14 00:50:51 1.8
@@ -1,26 +1,26 @@ @@ -1,26 +1,26 @@
1$NetBSD: distinfo,v 1.7 2020/02/12 15:25:15 ryoon Exp $ 1$NetBSD: distinfo,v 1.8 2020/02/14 00:50:51 kamil Exp $
2 2
3SHA1 (mono-6.8.0.105.tar.xz) = e39aa0ac15b3b73ecf0767462798a5acde0aed79 3SHA1 (mono-6.8.0.105.tar.xz) = e39aa0ac15b3b73ecf0767462798a5acde0aed79
4RMD160 (mono-6.8.0.105.tar.xz) = 5a84c75f941d5a2a645999e13da8458fc87d3bac 4RMD160 (mono-6.8.0.105.tar.xz) = 5a84c75f941d5a2a645999e13da8458fc87d3bac
5SHA512 (mono-6.8.0.105.tar.xz) = 8207082f6c538037a17dba5e22576d8e9b0aac946df270ff34daad0857e7b1cfd71c8cf4851e74dd5338397c9587540f11b23e71776bca6dc2a1b89dbed2fd7e 5SHA512 (mono-6.8.0.105.tar.xz) = 8207082f6c538037a17dba5e22576d8e9b0aac946df270ff34daad0857e7b1cfd71c8cf4851e74dd5338397c9587540f11b23e71776bca6dc2a1b89dbed2fd7e
6Size (mono-6.8.0.105.tar.xz) = 243441900 bytes 6Size (mono-6.8.0.105.tar.xz) = 243441900 bytes
7SHA1 (patch-data_Makefile.am) = 535480855e413750d5b6cab6351b1683ac911246 7SHA1 (patch-data_Makefile.am) = 535480855e413750d5b6cab6351b1683ac911246
8SHA1 (patch-data_net__2__0_Browsers_Makefile.am) = 847fa7f5a54e7583a87c40749efe5a99e513c3c9 8SHA1 (patch-data_net__2__0_Browsers_Makefile.am) = 847fa7f5a54e7583a87c40749efe5a99e513c3c9
9SHA1 (patch-data_net__2__0_Makefile.am) = dffb23423381a9031587536ee5de2b34610329ee 9SHA1 (patch-data_net__2__0_Makefile.am) = dffb23423381a9031587536ee5de2b34610329ee
10SHA1 (patch-data_net__4__0_Browsers_Makefile.am) = 0ada5af132816efb41dfbd7ce2ba2355d751b883 10SHA1 (patch-data_net__4__0_Browsers_Makefile.am) = 0ada5af132816efb41dfbd7ce2ba2355d751b883
11SHA1 (patch-data_net__4__0_Makefile.am) = 7c0fa175047f01a556f61503b2fcfabdedd2c606 11SHA1 (patch-data_net__4__0_Makefile.am) = 7c0fa175047f01a556f61503b2fcfabdedd2c606
12SHA1 (patch-data_net__4__5_Browsers_Makefile.am) = 80bd57a2ac3fc95adef18acd9cfd7744ca112b01 12SHA1 (patch-data_net__4__5_Browsers_Makefile.am) = 80bd57a2ac3fc95adef18acd9cfd7744ca112b01
13SHA1 (patch-data_net__4__5_Makefile.am) = d7591e835bfdd27fa0fba4b669b778924c811be4 13SHA1 (patch-data_net__4__5_Makefile.am) = d7591e835bfdd27fa0fba4b669b778924c811be4
14SHA1 (patch-external_corert_src_Native_gc_env_gcenv.structs.h) = 91b37d93c1c3aadcdb383c443142fe28f50ad8e6 14SHA1 (patch-external_corert_src_Native_gc_env_gcenv.structs.h) = 91b37d93c1c3aadcdb383c443142fe28f50ad8e6
15SHA1 (patch-libgc_pthread__stop__world.c) = f5a12dc3f453136dabc0b93d57caa155a420ab0d 15SHA1 (patch-libgc_pthread__stop__world.c) = f5a12dc3f453136dabc0b93d57caa155a420ab0d
16SHA1 (patch-libgc_pthread__support.c) = b4fcf5ab1f5d5d06739891c1614ff870b8e4a4c5 16SHA1 (patch-libgc_pthread__support.c) = b4fcf5ab1f5d5d06739891c1614ff870b8e4a4c5
17SHA1 (patch-mono_eglib_giconv.c) = 04d2559d3868605194efd6267da010870f53d961 17SHA1 (patch-mono_eglib_giconv.c) = 04d2559d3868605194efd6267da010870f53d961
18SHA1 (patch-mono_metadata_icall.c) = b326c16e9aa8f9ee154d937128e5e09fd31b235a 18SHA1 (patch-mono_metadata_icall.c) = b326c16e9aa8f9ee154d937128e5e09fd31b235a
19SHA1 (patch-mono_metadata_mono-config.c) = d349721ff2b6b3b767208eacdc5882b9e6dc47b4 19SHA1 (patch-mono_metadata_mono-config.c) = d349721ff2b6b3b767208eacdc5882b9e6dc47b4
20SHA1 (patch-mono_metadata_w32mutex-unix.c) = c3d424fe4ae1079c9c664c876a087fb0134f2e22 20SHA1 (patch-mono_metadata_w32mutex-unix.c) = c3d424fe4ae1079c9c664c876a087fb0134f2e22
21SHA1 (patch-mono_utils_mono-os-semaphore.h) = b850911945c95be804e9462263d558ef702831ca 21SHA1 (patch-mono_utils_mono-os-semaphore.h) = b850911945c95be804e9462263d558ef702831ca
22SHA1 (patch-mono_utils_mono-sigcontext.h) = b8a6f886661622e9b0d382443536bd3dc998f95f 22SHA1 (patch-mono_utils_mono-sigcontext.h) = b8a6f886661622e9b0d382443536bd3dc998f95f
23SHA1 (patch-mono_utils_mono-threads-posix.c) = 3111d6a47fa104d964b34fdb5f7eca8643559ea3 23SHA1 (patch-mono_utils_mono-threads-posix.c) = 3111d6a47fa104d964b34fdb5f7eca8643559ea3
24SHA1 (patch-mono_utils_mono-utils-debug.c) = b813d7a3c652f120c658c3c3eeacd9c1f8b60be4 24SHA1 (patch-mono_utils_mono-utils-debug.c) = 39f099969040b3a52101b611be723b25674ea68b
25SHA1 (patch-runtime_mono-wrapper.in) = ea40d2f2e8b67de0ae42c6e608e3c085dc2b040e 25SHA1 (patch-runtime_mono-wrapper.in) = ea40d2f2e8b67de0ae42c6e608e3c085dc2b040e
26SHA1 (patch-support_minizip_ioapi.c) = 605c86916c957c31a8b3048d7703482f8f545463 26SHA1 (patch-support_minizip_ioapi.c) = 605c86916c957c31a8b3048d7703482f8f545463

cvs diff -r1.2 -r1.3 pkgsrc/lang/mono6/patches/Attic/patch-mono_utils_mono-utils-debug.c (expand / switch to unified diff)

--- pkgsrc/lang/mono6/patches/Attic/patch-mono_utils_mono-utils-debug.c 2020/02/12 15:25:16 1.2
+++ pkgsrc/lang/mono6/patches/Attic/patch-mono_utils_mono-utils-debug.c 2020/02/14 00:50:51 1.3
@@ -1,27 +1,46 @@ @@ -1,27 +1,46 @@
1$NetBSD: patch-mono_utils_mono-utils-debug.c,v 1.2 2020/02/12 15:25:16 ryoon Exp $ 1$NetBSD: patch-mono_utils_mono-utils-debug.c,v 1.3 2020/02/14 00:50:51 kamil Exp $
2 2
3Learn to use kinfo_proc2 on netbsd 3Learn to use kinfo_proc2 on netbsd
4 4
5--- mono/utils/mono-utils-debug.c.orig 2020-02-04 17:00:34.000000000 +0000 5--- mono/utils/mono-utils-debug.c.orig 2020-02-04 17:00:34.000000000 +0000
6+++ mono/utils/mono-utils-debug.c 6+++ mono/utils/mono-utils-debug.c
7@@ -32,6 +32,8 @@ mono_is_usermode_native_debugger_present 7@@ -32,6 +32,8 @@ mono_is_usermode_native_debugger_present
8 #endif 8 #endif
9 #if defined (__NetBSD__) 9 #if defined (__NetBSD__)
10 #include <kvm.h> 10 #include <kvm.h>
11+#include <sys/param.h> 11+#include <sys/param.h>
12+#include <sys/sysctl.h> 12+#include <sys/sysctl.h>
13 #endif 13 #endif
14 #if defined (_AIX) 14 #if defined (_AIX)
15 #include <procinfo.h> 15 #include <procinfo.h>
16@@ -78,8 +80,9 @@ mono_is_usermode_native_debugger_present 16@@ -74,14 +76,23 @@ mono_is_usermode_native_debugger_present
17 if (!kd) 17
 18 #elif defined (__NetBSD__)
 19
 20- kvm_t * const kd = kvm_open (NULL, NULL, NULL, KVM_NO_FILES, "kvm_open");
 21- if (!kd)
 22+ struct kinfo_proc2 p;
 23+ size_t len = sizeof(p);
 24+ int name[] = {
 25+ [0] = CTL_KERN,
 26+ [1] = KERN_PROC2,
 27+ [2] = KERN_PROC_PID,
 28+ [3] = getpid(),
 29+ [4] = (int)(sizeof(struct kinfo_proc2)),
 30+ [5] = 1
 31+ };
 32+
 33+ const size_t namelen = __arraycount(name);
 34+
 35+ if (sysctl(name, namelen, &p, &len, NULL, 0) == -1)
18 return FALSE; 36 return FALSE;
19 int count = 0; 37- int count = 0;
20- struct kinfo_proc const * const info = kvm_getprocs (kd, KERN_PROC_PID, getpid (), &count); 38- struct kinfo_proc const * const info = kvm_getprocs (kd, KERN_PROC_PID, getpid (), &count);
21- gboolean const traced = info && count > 0 && (info->kp_proc.p_slflag & PSL_TRACED); 39- gboolean const traced = info && count > 0 && (info->kp_proc.p_slflag & PSL_TRACED);
22+ int nproc; 40- kvm_close (kd);
23+ struct kinfo_proc2 const * const info = kvm_getproc2 (kd, KERN_PROC_PID, getpid (), sizeof(struct kinfo_proc2), &count); 41- return traced;
24+ gboolean const traced = info && count > 0 && (info->p_flag & P_TRACED); 42+
25 kvm_close (kd); 43+ return (p.p_flag & P_TRACED) ? TRUE : FALSE;
26 return traced; 44
 45 #elif defined (_AIX)
27  46