aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2021-12-09 20:33:07 +0000
committerCy Schubert <cy@FreeBSD.org>2021-12-10 04:41:05 +0000
commitcd1015b4d93b6b06bc26681e5510143612c3e829 (patch)
tree81d1e66c992b4e41312c8ebc3ebdc542f3228787
parent34d37f18628a1dbdfe15bc7e0f31c60ce8cbcd01 (diff)
downloadports-cd1015b4d93b6b06bc26681e5510143612c3e829.tar.gz
ports-cd1015b4d93b6b06bc26681e5510143612c3e829.zip
lang/mono6.8: Invoke CPU_COUNT properly
9e02e52115e43c5c5ec3d971c9100c3cf322b726 did not include a patch to configure.ac that allowed it to properly detect CPU_COUNT. Fixes: 2e52115e43c5c5ec3d971c9100c3cf322b726 (cherry picked from commit ed11420d6b20eb3d10774633f70eae87c1b6e1e9)
-rw-r--r--lang/mono6.8/files/patch-mono_configure.ac407
1 files changed, 25 insertions, 382 deletions
diff --git a/lang/mono6.8/files/patch-mono_configure.ac b/lang/mono6.8/files/patch-mono_configure.ac
index a16f27f313d5..26a1b2863413 100644
--- a/lang/mono6.8/files/patch-mono_configure.ac
+++ b/lang/mono6.8/files/patch-mono_configure.ac
@@ -1,56 +1,28 @@
-# Upstreamed for next release
-# PR#19234
-# PR#18578
---- configure.ac.orig 2020-03-15 16:11:23.394519000 -0400
-+++ configure.ac 2020-03-16 14:50:08.458816000 -0400
-@@ -2299,108 +2299,100 @@
+--- configure.ac.orig 2020-05-11 11:05:34.000000000 -0700
++++ configure.ac 2021-12-09 11:17:20.499137000 -0800
+@@ -2279,7 +2279,8 @@
+ dnl *** won't always indicate the interface sched_affinity has. ***
+ dnl ****************************************************************
+ AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
+- AC_TRY_COMPILE([#include <sched.h>], [
++ AC_TRY_COMPILE([#define _WITH_CPU_SET_T
++#include <sched.h>], [
+ int mask = 1;
+ sched_setaffinity(0, &mask);
+ ], [
+@@ -2290,8 +2291,9 @@
# We have the new, three-parameter version
AC_MSG_RESULT(no)
])
-
- dnl ******************************************************************
- dnl *** Check for large file support ***
- dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) ***
- dnl ******************************************************************
-
- # Check that off_t can represent 2**63 - 1 correctly, working around
- # potential compiler bugs. Defines LARGE_FILE_SUPPORT, adds $1 to
- # CPPFLAGS and sets $large_offt to yes if the test succeeds
- large_offt=no
- AC_DEFUN([LARGE_FILES], [
- large_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $1"
- AC_TRY_COMPILE([
- #include <sys/types.h>
- #include <limits.h>
- ], [
- /* Lifted this compile time assert method from: http://www.jaggersoft.com/pubs/CVu11_3.html */
- #define COMPILE_TIME_ASSERT(pred) \
- switch(0){case 0:case pred:;}
- COMPILE_TIME_ASSERT(sizeof(off_t) * CHAR_BIT == 64);
- ], [
- AC_MSG_RESULT(ok)
- AC_DEFINE(HAVE_LARGE_FILE_SUPPORT, 1, [Have large file support])
- large_CPPFLAGS="$large_CPPFLAGS $1"
- large_offt=yes
- ], [
- AC_MSG_RESULT(no)
- ])
- CPPFLAGS=$large_CPPFLAGS
- ])
-
- AC_MSG_CHECKING(if off_t is 64 bits wide)
- LARGE_FILES("")
- if test $large_offt = no; then
- AC_MSG_CHECKING(if _FILE_OFFSET_BITS=64 gives 64 bit off_t)
- LARGE_FILES("-D_FILE_OFFSET_BITS=64")
- fi
- if test $large_offt = no; then
- AC_MSG_WARN([No 64 bit file size support available])
- fi
-
- dnl *****************************
- dnl *** Checks for libsocket ***
+- AC_TRY_COMPILE([#include <sched.h>], [
+- CPU_COUNT((void *) 0);
++ AC_TRY_COMPILE([#define _WITH_CPU_SET_T
++#include <sched.h>], [
++ CPU_COUNT((cpuset_t *) 0);
+ ], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(GLIBC_HAS_CPU_COUNT, 1, [GLIBC has CPU_COUNT macro in sched.h])
+@@ -2346,14 +2348,6 @@
dnl *****************************
AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
@@ -65,101 +37,7 @@
dnl *******************************
dnl *** Checks for MSG_NOSIGNAL ***
dnl *******************************
- AC_MSG_CHECKING(for MSG_NOSIGNAL)
- AC_TRY_COMPILE([#include <sys/socket.h>], [
- int f = MSG_NOSIGNAL;
- ], [
- # Yes, we have it...
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, [Have MSG_NOSIGNAL])
- ], [
- # We'll have to use signals
- AC_MSG_RESULT(no)
- ])
-
- dnl *****************************
- dnl *** Checks for IPPROTO_IP ***
- dnl *****************************
- AC_MSG_CHECKING(for IPPROTO_IP)
- AC_TRY_COMPILE([#include <netinet/in.h>], [
- int level = IPPROTO_IP;
- ], [
- # Yes, we have it...
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IPPROTO_IP, 1, [Have IPPROTO_IP])
- ], [
- # We'll have to use getprotobyname
- AC_MSG_RESULT(no)
- ])
-
- dnl *******************************
- dnl *** Checks for IPPROTO_IPV6 ***
- dnl *******************************
- AC_MSG_CHECKING(for IPPROTO_IPV6)
- AC_TRY_COMPILE([#include <netinet/in.h>], [
- int level = IPPROTO_IPV6;
- ], [
- # Yes, we have it...
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IPPROTO_IPV6, 1, [Have IPPROTO_IPV6])
- ], [
- # We'll have to use getprotobyname
- AC_MSG_RESULT(no)
- ])
-
- dnl ******************************
- dnl *** Checks for IPPROTO_TCP ***
- dnl ******************************
- AC_MSG_CHECKING(for IPPROTO_TCP)
- AC_TRY_COMPILE([#include <netinet/in.h>], [
-@@ -3572,100 +3564,131 @@
- # HAVE_MACH_TIMEBASE_INFO check already done above
- # HAVE_FUTIMES check already done above
- # HAVE_FUTIMENS check already done above
-
- ORIG_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=sign-conversion"
-
- AC_MSG_CHECKING(for bind with unsigned addrlen)
- AC_TRY_LINK([
- #include <sys/socket.h>
- ], [
- int fd;
- struct sockaddr* addr;
- socklen_t addrLen;
- bind(fd, addr, addrLen);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(BIND_ADDRLEN_UNSIGNED, 1, [bind with unsigned addrlen])
- ], [
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING(for struct ipv6_mreq with unsigned ipv6mr_interface)
- AC_TRY_LINK([
- #include <netinet/in.h>
- #include <netinet/tcp.h>
- ], [
- struct ipv6_mreq opt;
- unsigned int index = 0;
- opt.ipv6mr_interface = index;
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(IPV6MR_INTERFACE_UNSIGNED, 1, [struct ipv6_mreq with unsigned ipv6mr_interface])
- ], [
- AC_MSG_RESULT(no)
- ])
-
- AC_MSG_CHECKING(for inotify_rm_watch with unsigned wd)
- AC_TRY_LINK([
- #include <sys/inotify.h>
- ], [
- intptr_t fd;
- uint32_t wd;
- int result = inotify_rm_watch(fd, wd);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(INOTIFY_RM_WATCH_WD_UNSIGNED, 1, [inotify_rm_watch with unsigned wd])
+@@ -3619,6 +3613,37 @@
], [
AC_MSG_RESULT(no)
])
@@ -197,101 +75,7 @@
CFLAGS="$ORIG_CFLAGS"
- AC_MSG_CHECKING(for shm_open that works well enough with mmap)
- if test "x$ac_cv_func_shm_open" = "xno" -o "x$ac_cv_func_shm_open_working_with_mmap" = "xno" ; then
- AC_MSG_RESULT(no)
- elif test "x$cross_compiling" = "xyes"; then
- AC_MSG_RESULT(cross compiling, assuming yes)
- AC_DEFINE(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP, 1, [shm_open that works well enough with mmap])
- else
- AC_TRY_RUN([
- #include <sys/mman.h>
- #include <fcntl.h>
- #include <unistd.h>
-
- int main ()
- {
- #ifdef __PASE__
- /* IBM i doesn't implement this and returns SIGILL */
- return -1;
- #endif
- int fd = shm_open("/mono_configure_shm_open", O_CREAT | O_RDWR, 0777);
- if (fd == -1)
- return -1;
-
- shm_unlink("/mono_configure_shm_open");
-
- // NOTE: PROT_EXEC and MAP_PRIVATE don't work well with shm_open
- // on at least the current version of Mac OS X
-
- if (mmap(NULL, 1, PROT_EXEC, MAP_PRIVATE, fd, 0) == MAP_FAILED)
- return -1;
-
- return 0;
- }
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP, 1, [shm_open that works well enough with mmap])
- ], [
- AC_MSG_RESULT(no)
- ])
- fi
-
- AC_MSG_CHECKING(for getpriority with int who)
- AC_TRY_LINK([
- #include <sys/resource.h>
- ], [
- int which;
- int who;
- int result = getpriority(which, who);
-@@ -4418,107 +4441,121 @@
- BTLS_PLATFORM=x86_64
- boehm_supported=false
- ;;
- openbsd*|freebsd*|kfreebsd-gnu*)
- AOT_SUPPORTED="yes"
- BTLS_SUPPORTED=yes
- BTLS_PLATFORM=x86_64
- ;;
- mingw*|cygwin*)
- BTLS_SUPPORTED=no
- BTLS_PLATFORM=x86_64
- ;;
- esac
- ;;
- sparc*-*-*)
- if test "x$ac_cv_sizeof_void_p" = "x8"; then
- TARGET=SPARC64
- else
- TARGET=SPARC
- fi
- arch_target=sparc;
- ACCESS_UNALIGNED="no"
- case $host_os in
- linux*) ;;
- *)
- LIBC="libc.so"
- INTL="libintl.so"
- esac
- if test x"$GCC" = xyes; then
- # We don't support v8 cpus
- CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
- fi
- if test x"$AR" = xfalse; then
- AC_MSG_ERROR([The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin.])
- fi
- ;;
- *-mingw*|*-*-cygwin*)
- # When this is enabled, it leads to very strange crashes at runtime (gcc-3.4.4)
- have_visibility_hidden=no
- INTL="intl"
- case "$host" in
- x86_64*mingw*)
- # Old Boehm fails to compile for x86_64-mingw.
- # It is trivial to fix, but just silently drop it.
- boehm_supported=false
- ;;
- esac
+@@ -4465,13 +4490,27 @@
;;
macppc-*-openbsd* | powerpc*-*-linux* | powerpc-*-openbsd* | \
powerpc-*-sysv* | powerpc-*-darwin* | powerpc-*-netbsd* | \
@@ -323,101 +107,7 @@
else
TARGET=POWERPC;
CPPFLAGS="$CPPFLAGS -D__mono_ppc__"
- fi
- arch_target=ppc;
- case $host_os in
- aix*|os400*)
- BTLS_SUPPORTED=yes
- BTLS_PLATFORM=powerpc
- ;;
- linux*)
- BTLS_SUPPORTED=yes
- BTLS_PLATFORM=powerpc
- ;;
- esac
- ;;
- armv7k-*-darwin*)
- TARGET=ARM;
- TARGET_SYS=WATCHOS
- arch_target=arm;
- arm_fpu=VFP_HARD
- ACCESS_UNALIGNED="no"
- CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
- ;;
-
- arm*-darwin*)
- TARGET=ARM;
- arch_target=arm;
- ACCESS_UNALIGNED="no"
- CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
- ;;
- arm*-linux*)
- TARGET=ARM;
- arch_target=arm;
- ACCESS_UNALIGNED="no"
- AOT_SUPPORTED="yes"
- CPPFLAGS="$CPPFLAGS -D__ARM_EABI__"
- BTLS_SUPPORTED=yes
- BTLS_PLATFORM=arm
- AC_CHECK_HEADER(stdalign.h,[],[BTLS_SUPPORTED=no])
- case "$target" in
- arm*-linux*-gnueabi)
- BTLS_PLATFORM=armsoft
- ;;
- esac
- ;;
- arm*-netbsd*-eabi*)
- TARGET=ARM;
- arch_target=arm;
- ACCESS_UNALIGNED="no"
-@@ -6441,103 +6478,103 @@
- MONO_NATIVE_CC=$CC
- MONO_NATIVE_CXX=$CXX
- MONO_NATIVE_CCASFLAGS=$CCASFLAGS
- # The system.native code uses _WASM_ to check for wasm
- MONO_NATIVE_CPPFLAGS="$CPPFLAGS -D_WASM_"
- MONO_NATIVE_CXXFLAGS=$CXXFLAGS
- MONO_NATIVE_CFLAGS=$CFLAGS
- MONO_NATIVE_LDFLAGS=$LDFLAGS
-
- mono_native=yes
- mono_native_compat=no
- MONO_NATIVE_PLATFORM=linux
-
- MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_LINUX"
- elif case $host_os in aix*|os400*) true;; *) false;; esac; then
- mono_native_text="AIX"
- MONO_NATIVE_CC=$CC
- MONO_NATIVE_CXX=$CXX
- MONO_NATIVE_CCASFLAGS=$CCASFLAGS
- MONO_NATIVE_CPPFLAGS=$CPPFLAGS
- MONO_NATIVE_CXXFLAGS=$CXXFLAGS
- MONO_NATIVE_CFLAGS=$CFLAGS
- dnl nosymbolic- is a hack in case -G for linking is used, as -G seems
- dnl to change the way unresolved symbols work on library load in an
- dnl incompatible manner. (as references to runtime functions are
- dnl resolved later) Default params otherwise are that, so seems OK.
- dnl Likewise, we don't seem to need to cover the entire runtime with
- dnl it either, on both AIX and PASE. -brtl from -G does seem to spew
- dnl Big Scary TOC Warnings (tm) from the linker, but it doesn't seem
- dnl problematic with gcc's -mminimal-toc.
- dnl ----
- dnl flock in AIX exists in libbsd (not the same as freedesktop.org
- dnl libbsd) which Mono.Native needs.
- dnl Because of the way that the library is built by default, unresolved
- dnl references are kept and resolved at runtime. Often, the dependency
- dnl chain means libbsd is loaded anyways, but not necessarily. It's
- dnl better to explicitly link it, even though it has it shadows libc's
- dnl ioctl with its own. (As for the other unresolved imports, those
- dnl should be provided by the Mono runtime loaded.)
- MONO_NATIVE_LDFLAGS="$LDFLAGS -lbsd -Wl,-bnosymbolic-"
-
- mono_native=yes
- mono_native_compat=no
- MONO_NATIVE_PLATFORM=aix
-
- MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_AIX"
- elif case $host_os in freebsd*) true;; *) false;; esac; then
+@@ -6488,9 +6527,9 @@
mono_native_text="FreeBSD"
MONO_NATIVE_CC=$CC
MONO_NATIVE_CXX=$CXX
@@ -429,50 +119,3 @@
MONO_NATIVE_LDFLAGS=$LDFLAGS
mono_native=yes
- mono_native_compat=no
- MONO_NATIVE_PLATFORM=freebsd
- AC_MSG_CHECKING([Mono.Native support])
- AC_MSG_RESULT(freebsd)
-
- MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_FREEBSD"
- 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"
- elif case $host_os in haiku*) true;; *) false;; esac; then
- mono_native_text="Haiku"
- 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=haiku
- AC_MSG_CHECKING([Mono.Native support])
- AC_MSG_RESULT(haiku)
-
- MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_HAIKU"
- elif test x$platform_android = xyes; then
- mono_native_text="Android"
- 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_LIBADD="../mini/$LIBMONO_LA"