View | Details | Raw Unified | Return to bug 229710 | Differences between
and this patch

Collapse All | Expand All

(-)i/lang/mono/Makefile (-2 / +11 lines)
Lines 14-20 COMMENT= Open source implementation of .NET Development Framework Link Here
14
LICENSE=	MIT
14
LICENSE=	MIT
15
LICENSE_FILE=	${WRKSRC}/LICENSE
15
LICENSE_FILE=	${WRKSRC}/LICENSE
16
16
17
ONLY_FOR_ARCHS=		amd64 armv6 armv7 i386 powerpc
17
ONLY_FOR_ARCHS=		amd64 armv6 armv7 aarch64 i386 powerpc
18
18
19
BUILD_DEPENDS=	p5-XML-Parser>=0:textproc/p5-XML-Parser \
19
BUILD_DEPENDS=	p5-XML-Parser>=0:textproc/p5-XML-Parser \
20
		bash:shells/bash \
20
		bash:shells/bash \
Lines 60-65 LOCALBASE?= /usr/local Link Here
60
OPTIONS_SLAVE=	MONOLITE
60
OPTIONS_SLAVE=	MONOLITE
61
.endif
61
.endif
62
62
63
.include <bsd.port.pre.mk>
64
65
.if ${ARCH} == "aarch64"
66
EXTRA_PATCHES=	${FILESDIR}/extra-patch-aarch64-race-workaround
67
PLIST_SUB+=	BOEHM="@comment "
68
.else
69
PLIST_SUB+=	BOEHM=""
70
.endif
71
63
post-extract-MONOLITE-on:
72
post-extract-MONOLITE-on:
64
	${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux
73
	${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux
65
	${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION}
74
	${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION}
Lines 88-91 post-configure: Link Here
88
post-install:
97
post-install:
89
	${MKDIR} ${STAGEDIR}${PREFIX}/mono
98
	${MKDIR} ${STAGEDIR}${PREFIX}/mono
90
99
91
.include <bsd.port.mk>
100
.include <bsd.port.post.mk>
(-)i/lang/mono/files/extra-patch-aarch64-race-workaround (+24 lines)
Added Link Here
1
Workaround for Roslyn crash: https://github.com/mono/mono/issues/7017
2
3
--- mcs/build/profiles/basic.make.orig	2018-07-12 00:08:27 UTC
4
+++ mcs/build/profiles/basic.make
5
@@ -47,7 +47,7 @@ LIBRARY_COMPILE = $(BOOT_COMPILE)
6
 #
7
 # Copy from rules.make because I don't know how to unset MCS_FLAGS
8
 #
9
-USE_MCS_FLAGS = /codepage:$(CODEPAGE) /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
10
+USE_MCS_FLAGS = /codepage:$(CODEPAGE) /parallel- /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
11
12
 .PHONY: profile-check do-profile-check
13
 profile-check:
14
--- mcs/build/rules.make.orig	2018-07-12 00:09:18.508196000 +0000
15
+++ mcs/build/rules.make	2018-07-12 00:12:13.875877000 +0000
16
@@ -34,7 +34,7 @@
17
 endif
18
 endif
19
20
-USE_MCS_FLAGS = /codepage:$(CODEPAGE) /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
21
+USE_MCS_FLAGS = /codepage:$(CODEPAGE) /parallel- /nologo /noconfig /deterministic $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
22
 USE_MBAS_FLAGS = /codepage:$(CODEPAGE) $(LOCAL_MBAS_FLAGS) $(PLATFORM_MBAS_FLAGS) $(PROFILE_MBAS_FLAGS) $(MBAS_FLAGS)
23
 USE_CFLAGS = $(LOCAL_CFLAGS) $(CFLAGS) $(CPPFLAGS)
24
 CSCOMPILE = $(Q_MCS) $(MCS) $(USE_MCS_FLAGS)
(-)i/lang/mono/files/patch-configure.ac (-4 / +27 lines)
Lines 1-6 Link Here
1
--- configure.ac.orig	2018-04-18 10:51:42.000000000 +0300
1
armv8-a+crypto: Obtained from: upstream https://github.com/mono/mono/commit/a81e5afce53b9dcde82376d770222123fee0aa69
2
+++ configure.ac	2018-06-24 02:38:19.860780000 +0300
2
3
@@ -3271,6 +3271,8 @@
3
--- configure.ac.orig	2018-04-18 07:51:42 UTC
4
+++ configure.ac
5
@@ -202,6 +202,12 @@ case "$host" in
6
		libgc_threads=pthreads
7
		use_sigposix=yes
8
		has_dtrace=yes
9
+		case "$host" in
10
+		aarch64-*)
11
+			support_boehm=no
12
+			with_gc=sgen
13
+			;;
14
+		esac
15
		with_sgen_default_concurrent=yes
16
		;;
17
	*-*-*openbsd*)
18
@@ -3271,6 +3277,8 @@ case "$host" in
4
 			BTLS_PLATFORM=i386
19
 			BTLS_PLATFORM=i386
5
 			;;
20
 			;;
6
 		  openbsd*|freebsd*|kfreebsd-gnu*)
21
 		  openbsd*|freebsd*|kfreebsd-gnu*)
Lines 9-15 Link Here
9
 		        ;;
24
 		        ;;
10
 		esac
25
 		esac
11
 		;;
26
 		;;
12
@@ -3295,6 +3297,8 @@
27
@@ -3295,6 +3303,8 @@ case "$host" in
13
 			boehm_supported=false
28
 			boehm_supported=false
14
 			;;
29
 			;;
15
 		  openbsd*|freebsd*|kfreebsd-gnu*)
30
 		  openbsd*|freebsd*|kfreebsd-gnu*)
Lines 18-20 Link Here
18
 			;;
33
 			;;
19
 		  mingw*)
34
 		  mingw*)
20
 			;;
35
 			;;
36
@@ -4398,6 +4408,7 @@ if test "x$enable_btls" = "xyes"; then
37
		;;
38
	aarch64)
39
		btls_arch=aarch64
40
+		btls_cflags="-march=armv8-a+crypto"
41
		;;
42
	android-armv5)
43
		BTLS_CMAKE_ARGS="-DANDROID_ABI=\"armeabi\" -DANDROID_NATIVE_API_LEVEL=14"
(-)i/lang/mono/files/patch-external_boringssl_crypto_cpu-aarch64-linux.c (+45 lines)
Added Link Here
1
Obtained from: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223019
2
3
--- external/boringssl/crypto/cpu-aarch64-linux.c.orig	2018-04-18 07:47:16 UTC
4
+++ external/boringssl/crypto/cpu-aarch64-linux.c
5
@@ -16,7 +16,40 @@
6
7
 #if defined(OPENSSL_AARCH64) && !defined(OPENSSL_STATIC_ARMCAP)
8
9
-#include <sys/auxv.h>
10
+#if defined(__FreeBSD__)
11
+#include <sys/param.h>
12
+#include <sys/sysctl.h>
13
+#include <elf.h>
14
+#include <errno.h>
15
+#include <unistd.h>
16
+
17
+#ifndef AT_HWCAP
18
+#define AT_HWCAP                25
19
+#endif
20
+
21
+static unsigned long getauxval(unsigned long type) {
22
+  Elf_Auxinfo auxv[AT_COUNT];
23
+  size_t len = sizeof(auxv);
24
+  int mib[] = {
25
+    CTL_KERN,
26
+    KERN_PROC,
27
+    KERN_PROC_AUXV,
28
+    getpid(),
29
+  };
30
+
31
+  if (sysctl(mib, nitems(mib), auxv, &len, NULL, 0) != -1) {
32
+    for (size_t i = 0; i < nitems(auxv); i++)
33
+      if ((unsigned long)auxv[i].a_type == type)
34
+        return auxv[i].a_un.a_val;
35
+
36
+    errno = ENOENT;
37
+  }
38
+  return 0;
39
+}
40
+#else
41
+#define AT_HWCAP                16
42
+#define getauxval(x)            0
43
+#endif /* <sys/auxv.h> */
44
45
 #include <openssl/arm_arch.h>
(-)i/lang/mono/files/patch-mono_sgen_sgen-archdep.h (+11 lines)
Added Link Here
1
--- mono/sgen/sgen-archdep.h.orig	2018-07-11 23:55:34 UTC
2
+++ mono/sgen/sgen-archdep.h
3
@@ -45,7 +45,7 @@
4
5
 #elif defined(TARGET_ARM64)
6
7
-#ifdef __linux__
8
+#if defined(__linux__) || defined(__FreeBSD__)
9
 #define REDZONE_SIZE    0
10
 #elif defined(__APPLE__)
11
 #define REDZONE_SIZE	128
(-)i/lang/mono/files/patch-mono_utils_mono-sigcontext.h (+16 lines)
Added Link Here
1
--- mono/utils/mono-sigcontext.h.orig	2018-07-11 23:51:16 UTC
2
+++ mono/utils/mono-sigcontext.h
3
@@ -460,6 +460,13 @@ typedef struct ucontext {
4
	#define UCONTEXT_REG_SP(ctx) (((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__sp)
5
	#define UCONTEXT_REG_R0(ctx) (((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__x [ARMREG_R0])
6
	#define UCONTEXT_GREGS(ctx) (&(((ucontext64_t*)(ctx))->uc_mcontext64->__ss.__x))
7
+#elif defined(__FreeBSD__)
8
+#include <ucontext.h>
9
+	/* https://lists.freebsd.org/pipermail/freebsd-arm/2017-February/015611.html */
10
+	#define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_elr)
11
+	#define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_sp)
12
+	#define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_x [ARMREG_R0])
13
+	#define UCONTEXT_GREGS(ctx) (&(((ucontext_t*)(ctx))->uc_mcontext.mc_gpregs.gp_x))
14
 #else
15
 #include <ucontext.h>
16
	#define UCONTEXT_REG_PC(ctx) (((ucontext_t*)(ctx))->uc_mcontext.pc)
(-)i/lang/mono/pkg-plist (-37 / +37 lines)
Lines 41-47 bin/mod Link Here
41
bin/mono
41
bin/mono
42
bin/mono-api-html
42
bin/mono-api-html
43
bin/mono-api-info
43
bin/mono-api-info
44
bin/mono-boehm
44
%%BOEHM%%bin/mono-boehm
45
bin/mono-cil-strip
45
bin/mono-cil-strip
46
bin/mono-configuration-crypto
46
bin/mono-configuration-crypto
47
bin/mono-find-provides
47
bin/mono-find-provides
Lines 166-175 lib/libmono-profiler-log.a Link Here
166
lib/libmono-profiler-log.so
166
lib/libmono-profiler-log.so
167
lib/libmono-profiler-log.so.0
167
lib/libmono-profiler-log.so.0
168
lib/libmono-profiler-log.so.0.0.0
168
lib/libmono-profiler-log.so.0.0.0
169
lib/libmonoboehm-2.0.a
169
%%BOEHM%%lib/libmonoboehm-2.0.a
170
lib/libmonoboehm-2.0.so
170
%%BOEHM%%lib/libmonoboehm-2.0.so
171
lib/libmonoboehm-2.0.so.1
171
%%BOEHM%%lib/libmonoboehm-2.0.so.1
172
lib/libmonoboehm-2.0.so.1.0.0
172
%%BOEHM%%lib/libmonoboehm-2.0.so.1.0.0
173
lib/libmonosgen-2.0.a
173
lib/libmonosgen-2.0.a
174
lib/libmonosgen-2.0.so
174
lib/libmonosgen-2.0.so
175
lib/libmonosgen-2.0.so.1
175
lib/libmonosgen-2.0.so.1
Lines 2937-2974 man/man1/xbuild.1.gz Link Here
2937
man/man1/xsd.1.gz
2937
man/man1/xsd.1.gz
2938
man/man5/mdoc.5.gz
2938
man/man5/mdoc.5.gz
2939
man/man5/mono-config.5.gz
2939
man/man5/mono-config.5.gz
2940
share/libgc-mono/README
2940
%%BOEHM%%share/libgc-mono/README
2941
share/libgc-mono/README.DGUX386
2941
%%BOEHM%%share/libgc-mono/README.DGUX386
2942
share/libgc-mono/README.Mac
2942
%%BOEHM%%share/libgc-mono/README.Mac
2943
share/libgc-mono/README.MacOSX
2943
%%BOEHM%%share/libgc-mono/README.MacOSX
2944
share/libgc-mono/README.OS2
2944
%%BOEHM%%share/libgc-mono/README.OS2
2945
share/libgc-mono/README.amiga
2945
%%BOEHM%%share/libgc-mono/README.amiga
2946
share/libgc-mono/README.arm.cross
2946
%%BOEHM%%share/libgc-mono/README.arm.cross
2947
share/libgc-mono/README.autoconf
2947
%%BOEHM%%share/libgc-mono/README.autoconf
2948
share/libgc-mono/README.changes
2948
%%BOEHM%%share/libgc-mono/README.changes
2949
share/libgc-mono/README.contributors
2949
%%BOEHM%%share/libgc-mono/README.contributors
2950
share/libgc-mono/README.cords
2950
%%BOEHM%%share/libgc-mono/README.cords
2951
share/libgc-mono/README.darwin
2951
%%BOEHM%%share/libgc-mono/README.darwin
2952
share/libgc-mono/README.dj
2952
%%BOEHM%%share/libgc-mono/README.dj
2953
share/libgc-mono/README.environment
2953
%%BOEHM%%share/libgc-mono/README.environment
2954
share/libgc-mono/README.ews4800
2954
%%BOEHM%%share/libgc-mono/README.ews4800
2955
share/libgc-mono/README.hp
2955
%%BOEHM%%share/libgc-mono/README.hp
2956
share/libgc-mono/README.linux
2956
%%BOEHM%%share/libgc-mono/README.linux
2957
share/libgc-mono/README.macros
2957
%%BOEHM%%share/libgc-mono/README.macros
2958
share/libgc-mono/README.rs6000
2958
%%BOEHM%%share/libgc-mono/README.rs6000
2959
share/libgc-mono/README.sgi
2959
%%BOEHM%%share/libgc-mono/README.sgi
2960
share/libgc-mono/README.solaris2
2960
%%BOEHM%%share/libgc-mono/README.solaris2
2961
share/libgc-mono/README.uts
2961
%%BOEHM%%share/libgc-mono/README.uts
2962
share/libgc-mono/README.win32
2962
%%BOEHM%%share/libgc-mono/README.win32
2963
share/libgc-mono/barrett_diagram
2963
%%BOEHM%%share/libgc-mono/barrett_diagram
2964
share/libgc-mono/debugging.html
2964
%%BOEHM%%share/libgc-mono/debugging.html
2965
share/libgc-mono/gc.man
2965
%%BOEHM%%share/libgc-mono/gc.man
2966
share/libgc-mono/gcdescr.html
2966
%%BOEHM%%share/libgc-mono/gcdescr.html
2967
share/libgc-mono/gcinterface.html
2967
%%BOEHM%%share/libgc-mono/gcinterface.html
2968
share/libgc-mono/leak.html
2968
%%BOEHM%%share/libgc-mono/leak.html
2969
share/libgc-mono/scale.html
2969
%%BOEHM%%share/libgc-mono/scale.html
2970
share/libgc-mono/simple_example.html
2970
%%BOEHM%%share/libgc-mono/simple_example.html
2971
share/libgc-mono/tree.html
2971
%%BOEHM%%share/libgc-mono/tree.html
2972
share/locale/de/LC_MESSAGES/mcs.mo
2972
share/locale/de/LC_MESSAGES/mcs.mo
2973
share/locale/es/LC_MESSAGES/mcs.mo
2973
share/locale/es/LC_MESSAGES/mcs.mo
2974
share/locale/ja/LC_MESSAGES/mcs.mo
2974
share/locale/ja/LC_MESSAGES/mcs.mo

Return to bug 229710