svn commit: r560790 - in branches/2021Q1/lang/mono5.20: . files
Mikael Urankar
mikael at FreeBSD.org
Fri Jan 8 16:23:37 UTC 2021
Author: mikael
Date: Fri Jan 8 16:23:35 2021
New Revision: 560790
URL: https://svnweb.freebsd.org/changeset/ports/560790
Log:
MFH: r560789
lang/mono5.20: fix build on aarch64
PR: 229710
Submitted by: Greg V greg at unrelenting.technology
Approved by: portmgr (tier-2 blanket)
Added:
branches/2021Q1/lang/mono5.20/files/extra-patch-aarch64-race-workaround
- copied unchanged from r560789, head/lang/mono5.20/files/extra-patch-aarch64-race-workaround
branches/2021Q1/lang/mono5.20/files/patch-configure.ac
- copied unchanged from r560789, head/lang/mono5.20/files/patch-configure.ac
branches/2021Q1/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c
- copied unchanged from r560789, head/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c
branches/2021Q1/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h
- copied unchanged from r560789, head/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h
branches/2021Q1/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h
- copied unchanged from r560789, head/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h
Modified:
branches/2021Q1/lang/mono5.20/Makefile
branches/2021Q1/lang/mono5.20/pkg-plist
Directory Properties:
branches/2021Q1/ (props changed)
Modified: branches/2021Q1/lang/mono5.20/Makefile
==============================================================================
--- branches/2021Q1/lang/mono5.20/Makefile Fri Jan 8 16:22:05 2021 (r560789)
+++ branches/2021Q1/lang/mono5.20/Makefile Fri Jan 8 16:23:35 2021 (r560790)
@@ -14,7 +14,7 @@ COMMENT= Open source implementation of .NET Developmen
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 powerpc
+ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc
BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \
bash:shells/bash \
@@ -66,6 +66,15 @@ PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d*
OPTIONS_SLAVE= MONOLITE
.endif
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "aarch64"
+EXTRA_PATCHES= ${FILESDIR}/extra-patch-aarch64-race-workaround
+PLIST_SUB+= BOEHM="@comment "
+.else
+PLIST_SUB+= BOEHM=""
+.endif
+
post-extract-MONOLITE-on:
${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux
${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION}
@@ -94,4 +103,4 @@ post-configure:
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/mono
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Copied: branches/2021Q1/lang/mono5.20/files/extra-patch-aarch64-race-workaround (from r560789, head/lang/mono5.20/files/extra-patch-aarch64-race-workaround)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2021Q1/lang/mono5.20/files/extra-patch-aarch64-race-workaround Fri Jan 8 16:23:35 2021 (r560790, copy of r560789, head/lang/mono5.20/files/extra-patch-aarch64-race-workaround)
@@ -0,0 +1,24 @@
+Workaround for Roslyn crash: https://github.com/mono/mono/issues/7017
+
+--- mcs/build/profiles/basic.make.orig 2018-07-12 00:08:27 UTC
++++ mcs/build/profiles/basic.make
+@@ -47,7 +47,7 @@ LIBRARY_COMPILE = $(BOOT_COMPILE)
+ #
+ # Copy from rules.make because I don't know how to unset MCS_FLAGS
+ #
+-USE_MCS_FLAGS = /codepage:$(CODEPAGE) /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
++USE_MCS_FLAGS = /codepage:$(CODEPAGE) /parallel- /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
+
+ .PHONY: profile-check do-profile-check
+ profile-check:
+--- mcs/build/rules.make.orig 2018-07-12 00:09:18.508196000 +0000
++++ mcs/build/rules.make 2018-07-12 00:12:13.875877000 +0000
+@@ -34,7 +34,7 @@
+ endif
+ endif
+
+-USE_MCS_FLAGS = /codepage:$(CODEPAGE) /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
++USE_MCS_FLAGS = /codepage:$(CODEPAGE) /parallel- /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
+ USE_MBAS_FLAGS = /codepage:$(CODEPAGE) $(LOCAL_MBAS_FLAGS) $(PLATFORM_MBAS_FLAGS) $(PROFILE_MBAS_FLAGS) $(MBAS_FLAGS)
+ USE_CFLAGS = $(LOCAL_CFLAGS) $(CFLAGS) $(CPPFLAGS)
+ CSCOMPILE = $(Q_MCS) $(MCS) $(USE_MCS_FLAGS)
Copied: branches/2021Q1/lang/mono5.20/files/patch-configure.ac (from r560789, head/lang/mono5.20/files/patch-configure.ac)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2021Q1/lang/mono5.20/files/patch-configure.ac Fri Jan 8 16:23:35 2021 (r560790, copy of r560789, head/lang/mono5.20/files/patch-configure.ac)
@@ -0,0 +1,15 @@
+--- configure.ac.orig 2021-01-07 15:31:48 UTC
++++ configure.ac
+@@ -203,6 +203,12 @@ case "$host" in
+ libdl=
+ libgc_threads=pthreads
+ use_sigposix=yes
++ case "$host" in
++ aarch64-*)
++ support_boehm=no
++ with_gc=sgen
++ ;;
++ esac
+ has_dtrace=yes
+ with_sgen_default_concurrent=yes
+ ;;
Copied: branches/2021Q1/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c (from r560789, head/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2021Q1/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c Fri Jan 8 16:23:35 2021 (r560790, copy of r560789, head/lang/mono5.20/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c)
@@ -0,0 +1,42 @@
+--- external/boringssl/crypto/cpu-aarch64-linux.c.orig 2018-08-24 17:17:16 UTC
++++ external/boringssl/crypto/cpu-aarch64-linux.c
+@@ -25,7 +25,32 @@
+
+ extern uint32_t OPENSSL_armcap_P;
+
++#if defined(__FreeBSD__)
++#include <sys/types.h>
++#include <machine/armreg.h>
++
+ void OPENSSL_cpuid_setup(void) {
++ uint64_t id_aa64isar0;
++
++ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
++
++ OPENSSL_armcap_P |= ARMV7_NEON;
++
++ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_BASE) {
++ OPENSSL_armcap_P |= ARMV8_AES;
++ }
++ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) {
++ OPENSSL_armcap_P |= ARMV8_PMULL;
++ }
++ if (ID_AA64ISAR0_SHA1_VAL(id_aa64isar0) == ID_AA64ISAR0_SHA1_BASE) {
++ OPENSSL_armcap_P |= ARMV8_SHA1;
++ }
++ if(ID_AA64ISAR0_SHA2_VAL(id_aa64isar0) == ID_AA64ISAR0_SHA2_BASE) {
++ OPENSSL_armcap_P |= ARMV8_SHA256;
++ }
++}
++#else // linux
++void OPENSSL_cpuid_setup(void) {
+ unsigned long hwcap = getauxval(AT_HWCAP);
+
+ /* See /usr/include/asm/hwcap.h on an aarch64 installation for the source of
+@@ -57,5 +82,6 @@ void OPENSSL_cpuid_setup(void) {
+ OPENSSL_armcap_P |= ARMV8_SHA256;
+ }
+ }
++#endif
+
+ #endif /* OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP */
Copied: branches/2021Q1/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h (from r560789, head/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2021Q1/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h Fri Jan 8 16:23:35 2021 (r560790, copy of r560789, head/lang/mono5.20/files/patch-mono_sgen_sgen-archdep.h)
@@ -0,0 +1,11 @@
+--- mono/sgen/sgen-archdep.h.orig 2018-07-11 23:55:34 UTC
++++ mono/sgen/sgen-archdep.h
+@@ -45,7 +45,7 @@
+
+ #elif defined(TARGET_ARM64)
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define REDZONE_SIZE 0
+ #elif defined(__APPLE__)
+ #define REDZONE_SIZE 128
Copied: branches/2021Q1/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h (from r560789, head/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2021Q1/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h Fri Jan 8 16:23:35 2021 (r560790, copy of r560789, head/lang/mono5.20/files/patch-mono_utils_mono-sigcontext.h)
@@ -0,0 +1,16 @@
+--- mono/utils/mono-sigcontext.h.orig 2018-07-11 23:51:16 UTC
++++ mono/utils/mono-sigcontext.h
+@@ -460,6 +460,13 @@ typedef struct ucontext {
+ #define UCONTEXT_REG_SP(ctx) (((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__sp)
+ #define UCONTEXT_REG_R0(ctx) (((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__x [ARMREG_R0])
+ #define UCONTEXT_GREGS(ctx) (&(((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__x))
++#elif defined(__FreeBSD__)
++#include <ucontext.h>
++ /* https://lists.freebsd.org/pipermail/freebsd-arm/2017-February/015611.html */
++ #define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_elr)
++ #define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_sp)
++ #define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_x [ARMREG_R0])
++ #define UCONTEXT_GREGS(ctx) (&(((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_x))
+ #else
+ #include <ucontext.h>
+ #define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.pc)
Modified: branches/2021Q1/lang/mono5.20/pkg-plist
==============================================================================
--- branches/2021Q1/lang/mono5.20/pkg-plist Fri Jan 8 16:22:05 2021 (r560789)
+++ branches/2021Q1/lang/mono5.20/pkg-plist Fri Jan 8 16:23:35 2021 (r560790)
@@ -43,7 +43,7 @@ bin/mod
bin/mono
bin/mono-api-html
bin/mono-api-info
-bin/mono-boehm
+%%BOEHM%%bin/mono-boehm
bin/mono-cil-strip
bin/mono-configuration-crypto
bin/mono-find-provides
@@ -172,10 +172,10 @@ lib/libmono-profiler-log.a
lib/libmono-profiler-log.so
lib/libmono-profiler-log.so.0
lib/libmono-profiler-log.so.0.0.0
-lib/libmonoboehm-2.0.a
-lib/libmonoboehm-2.0.so
-lib/libmonoboehm-2.0.so.1
-lib/libmonoboehm-2.0.so.1.0.0
+%%BOEHM%%lib/libmonoboehm-2.0.a
+%%BOEHM%%lib/libmonoboehm-2.0.so
+%%BOEHM%%lib/libmonoboehm-2.0.so.1
+%%BOEHM%%lib/libmonoboehm-2.0.so.1.0.0
lib/libmonosgen-2.0.a
lib/libmonosgen-2.0.so
lib/libmonosgen-2.0.so.1
@@ -3198,38 +3198,38 @@ man/man1/xbuild.1.gz
man/man1/xsd.1.gz
man/man5/mdoc.5.gz
man/man5/mono-config.5.gz
-share/libgc-mono/README
-share/libgc-mono/README.DGUX386
-share/libgc-mono/README.Mac
-share/libgc-mono/README.MacOSX
-share/libgc-mono/README.OS2
-share/libgc-mono/README.amiga
-share/libgc-mono/README.arm.cross
-share/libgc-mono/README.autoconf
-share/libgc-mono/README.changes
-share/libgc-mono/README.contributors
-share/libgc-mono/README.cords
-share/libgc-mono/README.darwin
-share/libgc-mono/README.dj
-share/libgc-mono/README.environment
-share/libgc-mono/README.ews4800
-share/libgc-mono/README.hp
-share/libgc-mono/README.linux
-share/libgc-mono/README.macros
-share/libgc-mono/README.rs6000
-share/libgc-mono/README.sgi
-share/libgc-mono/README.solaris2
-share/libgc-mono/README.uts
-share/libgc-mono/README.win32
-share/libgc-mono/barrett_diagram
-share/libgc-mono/debugging.html
-share/libgc-mono/gc.man
-share/libgc-mono/gcdescr.html
-share/libgc-mono/gcinterface.html
-share/libgc-mono/leak.html
-share/libgc-mono/scale.html
-share/libgc-mono/simple_example.html
-share/libgc-mono/tree.html
+%%BOEHM%%share/libgc-mono/README
+%%BOEHM%%share/libgc-mono/README.DGUX386
+%%BOEHM%%share/libgc-mono/README.Mac
+%%BOEHM%%share/libgc-mono/README.MacOSX
+%%BOEHM%%share/libgc-mono/README.OS2
+%%BOEHM%%share/libgc-mono/README.amiga
+%%BOEHM%%share/libgc-mono/README.arm.cross
+%%BOEHM%%share/libgc-mono/README.autoconf
+%%BOEHM%%share/libgc-mono/README.changes
+%%BOEHM%%share/libgc-mono/README.contributors
+%%BOEHM%%share/libgc-mono/README.cords
+%%BOEHM%%share/libgc-mono/README.darwin
+%%BOEHM%%share/libgc-mono/README.dj
+%%BOEHM%%share/libgc-mono/README.environment
+%%BOEHM%%share/libgc-mono/README.ews4800
+%%BOEHM%%share/libgc-mono/README.hp
+%%BOEHM%%share/libgc-mono/README.linux
+%%BOEHM%%share/libgc-mono/README.macros
+%%BOEHM%%share/libgc-mono/README.rs6000
+%%BOEHM%%share/libgc-mono/README.sgi
+%%BOEHM%%share/libgc-mono/README.solaris2
+%%BOEHM%%share/libgc-mono/README.uts
+%%BOEHM%%share/libgc-mono/README.win32
+%%BOEHM%%share/libgc-mono/barrett_diagram
+%%BOEHM%%share/libgc-mono/debugging.html
+%%BOEHM%%share/libgc-mono/gc.man
+%%BOEHM%%share/libgc-mono/gcdescr.html
+%%BOEHM%%share/libgc-mono/gcinterface.html
+%%BOEHM%%share/libgc-mono/leak.html
+%%BOEHM%%share/libgc-mono/scale.html
+%%BOEHM%%share/libgc-mono/simple_example.html
+%%BOEHM%%share/libgc-mono/tree.html
%%NLS%%share/locale/de/LC_MESSAGES/mcs.mo
%%NLS%%share/locale/es/LC_MESSAGES/mcs.mo
%%NLS%%share/locale/ja/LC_MESSAGES/mcs.mo
More information about the svn-ports-all
mailing list