1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00

I believe this works now. I am able to compile and run some C# apps included

in the mono/tests/ subdirectory, and it no longer hangs or dies with weird
errors.  (And, yes, I do have garbage collecting enabled).

I'll let the C# user community be my judge.  There still may be some issues
since boehm-gc isn't fully functional in its multi-threaded state on FreeBSD.
This commit is contained in:
Joe Marcus Clarke 2003-10-07 03:33:38 +00:00
parent d348b46e8d
commit b892cda2b1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=90485
5 changed files with 96 additions and 7 deletions

View File

@ -7,21 +7,22 @@
PORTNAME= mono
PORTVERSION= 0.28
PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= http://www.go-mono.com/archive/
MAINTAINER= gnome@FreeBSD.org
COMMENT= An open source implementation of .NET Development Framework
LIB_DEPENDS= gc.1:${PORTSDIR}/devel/boehm-gc
USE_LIBTOOL= yes
USE_REINPLACE= yes
USE_BISON= yes
USE_GNOME= gnomehack glib20 pkgconfig
USE_GMAKE= yes
LIBTOOLFILES= configure libgc/configure
INSTALLS_SHLIB= yes
CONFIGURE_ARGS= --program-transform-name=\'\'
CONFIGURE_ARGS= --program-transform-name=\'\' \
--with-gc=included
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
@ -32,4 +33,14 @@ MAN5= mono-config.5
ONLY_FOR_ARCHS= i386
.include <bsd.port.mk>
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 500000
EXTRA_PATCHES= ${FILESDIR}/extra-patch-signbit
.endif
post-patch:
@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \
${WRKSRC}/configure
.include <bsd.port.post.mk>

View File

@ -0,0 +1,35 @@
--- mono/mini/mini-x86.c Mon Sep 29 05:28:49 2003
+++ mono/mini/mini-x86.c Sat Aug 30 04:01:27 2003
@@ -40,6 +40,32 @@
guint8 pad;
} MonoJitArgumentInfo;
+union IEEEd2bits {
+ double d;
+ struct {
+#if _BYTE_ORDER == _LITTLE_ENDIAN
+ unsigned int manl :32;
+ unsigned int manh :20;
+ unsigned int exp :11;
+ unsigned int sign :1;
+#else
+ unsigned int sign :1;
+ unsigned int exp :11;
+ unsigned int manh :20;
+ unsigned int manl :32;
+#endif
+ } bits;
+};
+
+int
+signbit(double d)
+{
+ union IEEEd2bits u;
+
+ u.d = d;
+ return (u.bits.sign);
+}
+
/*
* arch_get_argument_info:
* @csig: a method signature

View File

@ -1,6 +1,15 @@
--- configure.orig Thu Dec 26 13:09:19 2002
+++ configure Thu Dec 26 13:09:37 2002
@@ -7501,6 +7501,7 @@
--- configure.orig Wed Oct 1 12:59:06 2003
+++ configure Mon Oct 6 23:25:13 2003
@@ -2005,7 +2005,7 @@
_ACEOF
libdl=
- libgc_threads=pthreads
+ libgc_threads=no
;;
*-*-linux*)
platform_win32=no
@@ -8257,6 +8257,7 @@
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"

View File

@ -0,0 +1,10 @@
--- libgc/configure.orig Thu Dec 26 13:09:19 2002
+++ libgc/configure Thu Dec 26 13:09:37 2002
@@ -7501,6 +7501,7 @@
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+$ac_aux_dir/ltconfig $LIBTOOL_DEPS
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'

View File

@ -0,0 +1,24 @@
--- libgc/include/private/gcconfig.h.orig Mon Oct 6 22:38:35 2003
+++ libgc/include/private/gcconfig.h Mon Oct 6 22:38:56 2003
@@ -1151,8 +1151,8 @@
# ifndef GC_FREEBSD_THREADS
# define MPROTECT_VDB
# endif
-# define SIG_SUSPEND SIGUSR1
-# define SIG_THR_RESTART SIGUSR2
+# define SIG_SUSPEND SIGTSTP
+# define SIG_THR_RESTART SIGCONT
# define FREEBSD_STACKBOTTOM
# ifdef __ELF__
# define DYNAMIC_LOADING
@@ -1466,8 +1466,8 @@
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
/* MPROTECT_VDB is not yet supported at all on FreeBSD/alpha. */
-# define SIG_SUSPEND SIGUSR1
-# define SIG_THR_RESTART SIGUSR2
+# define SIG_SUSPEND SIGTSTP
+# define SIG_THR_RESTART SIGCONT
# define FREEBSD_STACKBOTTOM
# ifdef __ELF__
# define DYNAMIC_LOADING