2007-01-05 Hans Boehm <Hans.Boehm@hp.com> (Really Andreas Tobler, others)
authorhboehm <hboehm>
Sat, 6 Jan 2007 00:25:28 +0000 (00:25 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:38 +0000 (21:06 +0400)
* os_dep.c, include/private/gcconfig.h: Partial (?) FREEBSD/X86_64
support.
* include/private/gc_priv.h (i386_THREAD_STATE_COUNT): Fix spelling.

doc/README.changes
include/private/gc_priv.h
include/private/gcconfig.h
os_dep.c

index 500ef2c9c8f1f1269acea45d02fcf6264b59a6cd..c4a066c3142dcad3be464bf29d63d19ad8fbe6ef 100644 (file)
@@ -2292,6 +2292,7 @@ Since gc6.8:
  - Fix M68K LINUX port. (Thanks to Debian packagers.)
  - __GNUC__ was misspelled as __GNUC in new_gc_alloc.h. (Thanks to Peter Wang.)
  - Integrated Allan Hsu's patch for OS X VM deallocation problems.
+ - Applied FreeBSD/X86_64 patch.
 
 Since gc6.9:
  - Remove GC_PROTO, VOLATILE, GC_PTR, and GC_CONST.  Assume ANSI C compiler
index c0955afc1e0a02f6fc00059021a7e59ca535c390..64104fe18bde9d7570aebd1a679a83989056fa3b 100644 (file)
@@ -376,7 +376,7 @@ extern GC_warn_proc GC_current_warn_proc;
                /* FIXME: This looks dubious for X86_64 */
 #              define GC_THREAD_STATE_T i386_thread_state_t
 #              define GC_MACH_THREAD_STATE i386_THREAD_STATE
-#              define GC_MACH_THREAD_STATE_COUNT I386_THREAD_STATE_COUNT
+#              define GC_MACH_THREAD_STATE_COUNT i386_THREAD_STATE_COUNT
 #      else
 #              error define GC_THREAD_STATE_T
 #              define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE
index 61d349d5d04b36aac5d73862af8d2c12b5ccaaba..55d629919e77823f61011032040698fe11381fc0 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
 # if defined(FREEBSD) && defined(__sparc__)
 #    define SPARC
 #    define mach_type_known
-#endif
+# endif
 # if defined(bsdi) && (defined(i386) || defined(__i386__))
 #    define I386
 #    define BSDI
index fe995e87c20dbbc107ff0359123426e43103cf36..0c332c779c8cac21439a99aadbcb084d7e88b1ca 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -1620,7 +1620,7 @@ ptr_t GC_SysVGetDataStart(size_t max_page_size, ptr_t etext_addr)
 }
 # endif
 
-# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR)
+# if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc) || defined(__powerpc__)) && !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    */