[Mono-devel-list] Patch: 100% working mono under FreeBSD

Bill Middleton flashdict at gmail.com
Mon Apr 11 06:25:48 EDT 2005

This patch to HEAD (along with Dick's great new io-layer) gets
everything working under FreeBSD for 1.1.17.  Here we add support
for MONO_ARCH_USE_SIGACTION, fix libgc, support freebsd6, and
clean up a nit that crept in from a bad archive patch.

Detailed descriptions follow, and the patch is attached.

Thanks very much,


Index: libgc/include/private/gcconfig.h
This patch redefines SIG_SUSPEND and SIG_THR_RESTART to SIGTSTP and
SIGCONT.  It has been submitted previously, but has not yet
been committed.  Source: bsd# patch archive.

Index: libgc/configure.in
Add support for freebsd6 to libgc/configure.in.  Reuses the
definition for freebsd5, but may be patched in the port to
provide explicit compilation against libthr instead of libpthread.

Index: libgc/os_dep.c
Add necessary FREEBSD support to two os-dependent sigaction()
calls which RESTART for SIGBUS and SIGSEGV.  Source: bsd# patch

Index: libgc/dyn_load.c
Clean up and add support for FREEBSD for ElfW.  Source: bsd# patch

Index: configure.in
- Support freebsd6 in configure with sigaltstack

- Remove depracated with_nptl

- Conditionally check for working ieeefp.h on FreeBSD

- Support *bsd* in the AC_TRY_RUN test for sigaltstack(). Note that
sigaltstack is  default-enabled only for freebsd6 for now, where I
have tested it thoroughly, but configure command-line enabling using
with-sigaltstack=yes will now work for freebsd5, as well.

- Fix --with-preview. (PREVIEW)  Preview always builds even when disabled now.

Index: ikvm-native/jni.c
This is a re-submission of a bsd# archive patch which was committed
by Zoltan recently, but did not fix the problem.  We must completely
forego the inclusion of alloca.h on *BSD*, as it is not available,
and alloca() is defined in stdlib.h, which is always included.

Index: mono/mini/exceptions-x86.c
Add support for MONO_ARCH_USE_SIGACTION (sigaltstack) for FreeBSD.
As mentioned in a previous mono-devel thread, FreeBSD does not provide
the gregs[] array to access the register values in ucontext{}
struct.  This patch supports sigaltstack() via specific reference
to the members, implemented in Zoltan's new
mono_arch_sigctx_to_monoctx() routine, when enabled.

Index: mono/mini/mini-x86.c
Simply call pthread_attr_init() on the pthread_attr. This is
required on FreeBSD even when using pthread_attr_get_np() as
currently implemented.

Index: mono/mini/mini-x86.h
Redefine MAP_ANONYMOUS to MAP_ANON on FreeBSD to support sigaltstack()
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch.1.1.17.txt
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050411/8efcbfb9/attachment.txt 

More information about the Mono-devel-list mailing list