mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 01:26:39 -04:00
84 lines
3.4 KiB
Text
84 lines
3.4 KiB
Text
--- extlibs/gc-cvs/gc_misc.c.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/gc_misc.c
|
|
@@ -1619,7 +1619,7 @@ STATIC void GC_do_blocking_inner(ptr_t d
|
|
struct blocking_data * d = (struct blocking_data *) data;
|
|
GC_ASSERT(GC_is_initialized);
|
|
GC_ASSERT(GC_blocked_sp == NULL);
|
|
-# ifdef SPARC
|
|
+# if defined(SPARC) && !defined(__FreeBSD__)
|
|
GC_blocked_sp = GC_save_regs_in_stack();
|
|
# else
|
|
GC_blocked_sp = (ptr_t) &d; /* save approx. sp */
|
|
--- extlibs/gc-cvs/include/gc_config_macros.h.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/include/gc_config_macros.h
|
|
@@ -84,7 +84,7 @@
|
|
# if defined(__mips) && !defined(__linux__)
|
|
# define GC_IRIX_THREADS
|
|
# endif
|
|
-# if defined(__sparc) && !defined(__linux__) \
|
|
+# if defined(__sparc) && !defined(__linux__) && !defined(__FreeBSD__) \
|
|
|| defined(sun) && (defined(i386) || defined(__i386__) \
|
|
|| defined(__amd64__))
|
|
# define GC_SOLARIS_THREADS
|
|
--- extlibs/gc-cvs/include/private/gcconfig.h.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/include/private/gcconfig.h
|
|
@@ -2568,7 +2568,7 @@
|
|
# endif
|
|
#endif /* !GC_WORD_C */
|
|
|
|
-#if defined(SPARC)
|
|
+#if defined(SPARC) && !defined(__FreeBSD__)
|
|
# define ASM_CLEAR_CODE /* Stack clearing is crucial, and we */
|
|
/* include assembly code to do it well. */
|
|
#endif
|
|
--- extlibs/gc-cvs/mach_dep.c.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/mach_dep.c
|
|
@@ -228,7 +228,7 @@ GC_INNER void GC_with_callee_saves_pushe
|
|
# endif
|
|
# endif
|
|
context = &ctxt;
|
|
-# if defined(SPARC) || defined(IA64)
|
|
+# if (defined(SPARC) && !defined(__FreeBSD__)) || defined(IA64)
|
|
/* On a register window machine, we need to save register */
|
|
/* contents on the stack for this to work. This may already be */
|
|
/* subsumed by the getcontext() call. */
|
|
--- extlibs/gc-cvs/pthread_stop_world.c.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/pthread_stop_world.c
|
|
@@ -226,7 +226,7 @@ STATIC void GC_suspend_handler_inner(ptr
|
|
RESTORE_CANCEL(cancel_state);
|
|
return;
|
|
}
|
|
-# ifdef SPARC
|
|
+# if defined(SPARC) && !defined(__FreeBSD__)
|
|
me -> stop_info.stack_ptr = GC_save_regs_in_stack();
|
|
# else
|
|
me -> stop_info.stack_ptr = (ptr_t)(&me);
|
|
@@ -322,7 +322,7 @@ GC_INNER void GC_push_all_stacks(void)
|
|
++nthreads;
|
|
if (THREAD_EQUAL(p -> id, self)) {
|
|
GC_ASSERT(!p->thread_blocked);
|
|
-# ifdef SPARC
|
|
+# if defined(SPARC) && !defined(__FreeBSD__)
|
|
lo = (ptr_t)GC_save_regs_in_stack();
|
|
# else
|
|
lo = GC_approx_sp();
|
|
--- extlibs/gc-cvs/pthread_support.c.orig 2011-06-04 00:48:10 UTC
|
|
+++ extlibs/gc-cvs/pthread_support.c
|
|
@@ -1058,7 +1058,7 @@ GC_INNER void GC_do_blocking_inner(ptr_t
|
|
{
|
|
struct blocking_data * d = (struct blocking_data *) data;
|
|
GC_thread me;
|
|
-# if defined(SPARC) || defined(IA64)
|
|
+# if (defined(SPARC) && !defined(__FreeBSD__)) || defined(IA64)
|
|
ptr_t stack_ptr = GC_save_regs_in_stack();
|
|
# endif
|
|
# if defined(GC_DARWIN_THREADS) && !defined(DARWIN_DONT_PARSE_STACK)
|
|
@@ -1069,7 +1069,7 @@ GC_INNER void GC_do_blocking_inner(ptr_t
|
|
LOCK();
|
|
me = GC_lookup_thread(pthread_self());
|
|
GC_ASSERT(!(me -> thread_blocked));
|
|
-# ifdef SPARC
|
|
+# if defined(SPARC) && !defined(__FreeBSD__)
|
|
me -> stop_info.stack_ptr = stack_ptr;
|
|
# else
|
|
me -> stop_info.stack_ptr = GC_approx_sp();
|