--- ./src/gc/include/private/gcconfig.h.orig Fri Aug 12 13:26:42 2005
+++ ./src/gc/include/private/gcconfig.h Sat Jun 24 22:58:57 2006
@@ -318,10 +318,6 @@
# define OPENBSD
# define mach_type_known
# endif
-# if defined(FREEBSD) && (defined(i386) || defined(__i386__))
-# define I386
-# define mach_type_known
-# endif
# if defined(__NetBSD__) && (defined(i386) || defined(__i386__))
# define I386
# define mach_type_known
@@ -330,10 +326,24 @@
# define X86_64
# define mach_type_known
# endif
-# if defined(FREEBSD) && defined(__sparc__)
-# define SPARC
-# define mach_type_known
-#endif
+# if defined(FREEBSD)
+# ifdef __i386__
+# define I386
+# define mach_type_known
+# endif
+# ifdef __amd64__
+# define X86_64
+# define mach_type_known
+# endif
+# ifdef __sparc64__
+# define SPARC
+# define mach_type_known
+# endif
+# ifdef __ia64__
+# define IA64
+# define mach_type_known
+# endif
+# endif
# if defined(bsdi) && (defined(i386) || defined(__i386__))
# define I386
# define BSDI
@@ -979,6 +989,9 @@
# ifdef __ELF__
# define DYNAMIC_LOADING
# endif
+# ifndef GC_FREEBSD_THREADS
+# define MPROTECT_VDB
+# endif
extern char etext[];
extern char edata[];
extern char end[];
@@ -1215,15 +1228,15 @@
# endif
# ifdef FREEBSD
# define OS_TYPE "FREEBSD"
-# ifndef GC_FREEBSD_THREADS
-# define MPROTECT_VDB
-# endif
# define SIG_SUSPEND SIGUSR1
# define SIG_THR_RESTART SIGUSR2
# define FREEBSD_STACKBOTTOM
# ifdef __ELF__
# define DYNAMIC_LOADING
# endif
+# ifndef GC_FREEBSD_THREADS
+# define MPROTECT_VDB
+# endif
extern char etext[];
extern char * GC_FreeBSDGetDataStart();
# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
@@ -1926,6 +1939,23 @@
# define PREFETCH(x) __builtin_prefetch((x), 0, 0)
# define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
# endif
+# endif
+# ifdef FREEBSD
+# define OS_TYPE "FREEBSD"
+# define SIG_SUSPEND SIGUSR1
+# define SIG_THR_RESTART SIGUSR2
+# define FREEBSD_STACKBOTTOM
+# ifdef __ELF__
+# define DYNAMIC_LOADING
+# endif
+ extern char etext[];
+ extern char edata[];
+ extern char end[];
+# define NEED_FIND_LIMIT
+# define DATASTART ((ptr_t)(&etext))
+# define DATAEND (GC_find_limit (DATASTART, TRUE))
+# define DATASTART2 ((ptr_t)(&edata))
+# define DATAEND2 ((ptr_t)(&end))
# endif
# ifdef NETBSD
# define OS_TYPE "NETBSD"
syntax highlighted by Code2HTML, v. 0.9.1