aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-10-06 20:52:33 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-10-06 20:52:33 +0000
commit262c35a9e87fb319c9999554b3edceb0a9e83c36 (patch)
tree94a30924d2ba2c75e9a4059514087d725514a9b8
parent0716ab659929a0bd12bcff4faf0ab0993b297f14 (diff)
downloadports-262c35a9e87fb319c9999554b3edceb0a9e83c36.tar.gz
ports-262c35a9e87fb319c9999554b3edceb0a9e83c36.zip
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.
-rw-r--r--lang/mono/Makefile10
-rw-r--r--lang/mono/files/patch-mono_utils_mono-sigcontext.h17
2 files changed, 26 insertions, 1 deletions
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)