2009-09-01 Loren J. Rittle <ljrittle@acm.org>
* mf-runtime.c (__mf_init): Support FreeBSD.
Prime mutex which calls calloc upon first lock to avoid deadlock.
* mf-hooks1.c (__mf_0fn_mmap): Support FreeBSD.
Ignore red zone allocation request for initial thread's stack.
From-SVN: r151278
+2009-09-01 Loren J. Rittle <ljrittle@acm.org>
+
+ * mf-runtime.c (__mf_init): Support FreeBSD.
+ Prime mutex which calls calloc upon first lock to avoid deadlock.
+ * mf-hooks1.c (__mf_0fn_mmap): Support FreeBSD.
+ Ignore red zone allocation request for initial thread's stack.
+
2009-09-01 Loren J. Rittle <ljrittle@acm.org>
Andreas Schwab <schwab@linux-m68k.org>
void *
__mf_0fn_mmap (void *start, size_t l, int prot, int f, int fd, off_t off)
{
+#if defined(__FreeBSD__)
+ if (f == 0x1000 && fd == -1 && prot == 0 && off == 0)
+ return 0;
+#endif /* Ignore red zone allocation request for initial thread's stack. */
+
return (void *) -1;
}
#endif
if (LIKELY (__mf_starting_p == 0))
return;
+#if defined(__FreeBSD__) && defined(LIBMUDFLAPTH)
+ pthread_self();
+ LOCKTH ();
+ UNLOCKTH ();
+#endif /* Prime mutex which calls calloc upon first lock to avoid deadlock. */
+
/* This initial bootstrap phase requires that __mf_starting_p = 1. */
#ifdef PIC
__mf_resolve_dynamics ();