lang/mono: Fix build on current with _WITH_CPU_SET_T

mono-proclib.c:776:3: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
                cpu_set_t set;
                ^~~~~~~~~
                cpuset_t
/usr/include/sys/_cpuset.h:50:24: note: 'cpuset_t' declared here
typedef struct _cpuset cpuset_t;
                       ^
mono-proclib.c:777:7: error: implicit declaration of function 'sched_getaffinity' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (sched_getaffinity (mono_process_current_pid (), sizeof (set), &set) == 0)
                    ^
mono-proclib.c:778:11: error: implicit declaration of function 'CPU_COUNT' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                        return CPU_COUNT (&set);
                               ^
3 errors generated.

(cherry picked from commit 83c19a7238)
This commit is contained in:
Cy Schubert 2021-11-27 17:52:24 -08:00
parent c16f0c5987
commit 37eafb5a80
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,21 @@
--- mono/mini/driver.c.orig 2018-08-24 08:17:13.000000000 -0700
+++ mono/mini/driver.c 2021-11-27 20:03:33.006998000 -0800
@@ -16,6 +16,8 @@
#include <signal.h>
#endif
#if HAVE_SCHED_SETAFFINITY
+#include <sys/param.h>
+#define _WITH_CPU_SET_T
#include <sched.h>
#endif
#ifdef HAVE_UNISTD_H
@@ -1652,6 +1654,9 @@
#if HAVE_SCHED_SETAFFINITY
if (!use_smp) {
unsigned long proc_mask = 1;
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1400042
+#undef GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY
+#endif
#ifdef GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY
sched_setaffinity (getpid(), (gpointer)&proc_mask);
#else

View File

@ -0,0 +1,10 @@
--- mono/utils/mono-proclib.c.orig 2018-08-24 08:17:13.000000000 -0700
+++ mono/utils/mono-proclib.c 2021-11-27 14:55:20.354869000 -0800
@@ -17,6 +17,7 @@
#include <unistd.h>
#endif
#ifdef HAVE_SCHED_GETAFFINITY
+#define _WITH_CPU_SET_T
#include <sched.h>
#endif