]> granicus.if.org Git - gc/commitdiff
2006-12-22 Robert Jordan <robertj@gmx.net>
authorRobert Jordan <robertj@gmx.net>
Fri, 22 Dec 2006 00:30:04 +0000 (00:30 +0000)
committerguest <ivmai@mail.ru>
Fri, 29 Jul 2011 11:31:20 +0000 (15:31 +0400)
* include/private/gcconfig.h, os_dep.c:
Add FreeBSD/amd64 support. Based on a FreeBSD Port Collection patch.
r=Paolo.

svn path=/trunk/mono/; revision=69915

ChangeLog
include/private/gcconfig.h
os_dep.c

index d9a9a5d98eccd13046cf56a62da71c61f984d21a..0b800d82200cf71738ea30aed4a790b90ad51941 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-22  Robert Jordan  <robertj@gmx.net>
+
+       * include/private/gcconfig.h, os_dep.c:
+       Add FreeBSD/amd64 support. Based on a FreeBSD Port Collection patch.
+       r=Paolo.
+
 2006-11-19  Allan Hsu <allan@counterpop.net>
 
        * libgc/darwin_stop_world.c, libgc/include/private/gc_priv.h,
index d278603a338f69976bb73ea8abafe67278f16d28..cf2a825cc3cce3169bf851c1450147e05578fe5b 100644 (file)
 #   define I386
 #   define mach_type_known
 # endif
+# if defined(FREEBSD) && defined(__x86_64__)
+#   define X86_64
+#   define mach_type_known
+# endif
 # if defined(__NetBSD__) && (defined(i386) || defined(__i386__))
 #   define I386
 #   define mach_type_known
 #          define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
 #      endif
 #   endif
+#   ifdef FREEBSD
+#      define OS_TYPE "FREEBSD"
+#      ifndef GC_FREEBSD_THREADS
+#          define MPROTECT_VDB
+#      endif
+#      define SIG_SUSPEND SIGTSTP
+#      define SIG_THR_RESTART SIGCONT
+#      define NEED_FIND_LIMIT
+#      define FREEBSD_STACKBOTTOM
+#      ifdef __ELF__
+#          define DYNAMIC_LOADING
+#      endif
+       extern char etext[];
+       extern char * GC_FreeBSDGetDataStart();
+#      define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
+#   endif
 #   ifdef NETBSD
 #      define OS_TYPE "NETBSD"
 #      ifdef __ELF__
index f64caeffa2f0257a77a8a29340b5864a3d4e7a7a..39cb513f68f9e55410940d7d80f7a4388c95a810 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -1396,7 +1396,7 @@ int * etext_addr;
 }
 # endif
 
-# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR)
+# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__) ||  defined(__x86_64__)) && !defined(PCR)
 /* Its unclear whether this should be identical to the above, or       */
 /* whether it should apply to non-X86 architectures.                   */
 /* For now we don't assume that there is always an empty page after    */