git: 262c35a9e87f - main - lang/mono: fix build on powerpc

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Wed, 06 Oct 2021 21:07:18 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=262c35a9e87fb319c9999554b3edceb0a9e83c36

commit 262c35a9e87fb319c9999554b3edceb0a9e83c36
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2021-10-06 20:52:33 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2021-10-06 20:52:33 +0000

    lang/mono: fix build on powerpc
    
    - BTLS doesn't work on powerpc,
    - same pkg-plist fix as for lang/mono6.8,
    - cast ctx (which is void) to ucontext_t - NetBSD does the same.
---
 lang/mono/Makefile                                 | 10 +++++++++-
 lang/mono/files/patch-mono_utils_mono-sigcontext.h | 17 +++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/lang/mono/Makefile b/lang/mono/Makefile
index e8094d46e013..541b96c9dd10 100644
--- a/lang/mono/Makefile
+++ b/lang/mono/Makefile
@@ -46,7 +46,7 @@ USE_LDCONFIG=	yes
 SHEBANG_FILES=	scripts/mono-heapviz mono/mini/genmdesc.py mono/tests/test_lldb.py
 BINARY_ALIAS=	python=${PYTHON_CMD}
 
-CONFIGURE_ARGS=	--disable-dtrace --enable-btls
+CONFIGURE_ARGS=	--disable-dtrace
 CONFIGURE_ENV=	ac_cv_header_sys_inotify_h=no
 
 MAKE_ENV=	MONO_SHARED_DIR="${WRKDIR}" \
@@ -63,6 +63,14 @@ LOCALBASE?=	/usr/local
 OPTIONS_SLAVE=	MONOLITE
 .endif
 
+.include <bsd.port.options.mk>
+
+.if ${ARCH} == powerpc
+PLIST+=	${.CURDIR}/pkg-plist.powerpc
+.else
+CONFIGURE_ARGS+=	--enable-btls
+.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}
diff --git a/lang/mono/files/patch-mono_utils_mono-sigcontext.h b/lang/mono/files/patch-mono_utils_mono-sigcontext.h
new file mode 100644
index 000000000000..22cf2458435d
--- /dev/null
+++ b/lang/mono/files/patch-mono_utils_mono-sigcontext.h
@@ -0,0 +1,17 @@
+--- mono/utils/mono-sigcontext.h.orig	2021-10-05 20:43:22.170433000 +0200
++++ mono/utils/mono-sigcontext.h	2021-10-05 20:43:36.848022000 +0200
+@@ -363,10 +363,10 @@
+ #elif defined(__FreeBSD__)
+ 	typedef ucontext_t os_ucontext;
+ 
+-	#define UCONTEXT_REG_Rn(ctx, n)   ((ctx)->uc_mcontext.mc_gpr [(n)])
+-	#define UCONTEXT_REG_FPRn(ctx, n) ((ctx)->uc_mcontext.mc_fpreg [(n)])
+-	#define UCONTEXT_REG_NIP(ctx)     ((ctx)->uc_mcontext.mc_srr0)
+-	#define UCONTEXT_REG_LNK(ctx)     ((ctx)->uc_mcontext.mc_lr)
++	#define UCONTEXT_REG_Rn(ctx, n)   (((os_ucontext*)(ctx))->uc_mcontext.mc_gpr [(n)])
++	#define UCONTEXT_REG_FPRn(ctx, n) (((os_ucontext*)(ctx))->uc_mcontext.mc_fpreg [(n)])
++	#define UCONTEXT_REG_NIP(ctx)     (((os_ucontext*)(ctx))->uc_mcontext.mc_srr0)
++	#define UCONTEXT_REG_LNK(ctx)     (((os_ucontext*)(ctx))->uc_mcontext.mc_lr)
+ #endif
+ 
+ #elif defined(TARGET_ARM)