Upgrade to version 7.2alpha4 (slightly modified) of the Boehm collector. The

primary motivation for this is resolve various problems with Mac OS 10.6, such
as the parallel grades not building (bug #121).  The upgrade should also pave
the way for supporting a 64-bit version of Mercury on Mac OS 10.6.
(Unfortunately, the reg grades still do not work - bug #120.)

Reduce the number of merge conflicts we get when upgrading the collector by
(1) removing some local changes to support DLLs that were merged into the
official version of the collector sometime ago, and (2) removing our local copy
of the Makefile, and creating it from the file  Makefile.direct.  (We were
making local changes to the former, and the GC developers are now only updating
the latter - both files were out of sync with each other.)

boehm_gc/Makefile:
	Create Makefile from Makefile.direct and have the submake target
	depend upon it.  (Despite what the GC documentation says about
	Makefile.direct, if you use the direct method it has to be called
	Makefile because the object files are set to depend upon it by
	that name, i.e. using make's -f option won't work.)

scripts/prepare_install_dir.in:
tools/bootcheck:
.README.in:
bindist/bindist.README:
	Conform to the above changes.

NOTE: the slight modification referred to above is the following, backported from
the current head of the collector.  It is required for Mac OS 10.6.

--- gc_priv.h   2010-02-24 02:12:59.000000000 +1100
+++ ../../../../../gc_7_2b/ws-upgrade2/boehm_gc/include/private/gc_priv.h       2010-02-24 14:54:42.000000000 +1100
@@ -511,10 +511,7 @@
    The structure has changed its definition in different Darwin versions.
    This now defaults to the (older) names without __, thus hopefully,
    not breaking any existing Makefile.direct builds.  */
-#       if defined (HAS_PPC_THREAD_STATE___R0) \
-          || defined (HAS_PPC_THREAD_STATE64___R0) \
-          || defined (HAS_X86_THREAD_STATE32___EAX) \
-          || defined (HAS_X86_THREAD_STATE64___RAX)
+#       if __DARWIN_UNIX03
 #         define THREAD_FLD(x) __ ## x
 #       else
 #         define THREAD_FLD(x) x
@@ -2119,14 +2116,14 @@
        /* Linuxthreads itself uses SIGUSR1 and SIGUSR2.                 */
 #      define SIG_SUSPEND SIGPWR
 #    endif
-#   else  /* !GC_LINUX_THREADS */
+#   elif !defined(GC_OPENBSD_THREADS) && !defined(GC_DARWIN_THREADS)
 #     if defined(_SIGRTMIN)
 #       define SIG_SUSPEND _SIGRTMIN + 6
 #     else
 #       define SIG_SUSPEND SIGRTMIN + 6
 #     endif
 #   endif
-#  endif /* !SIG_SUSPEND */
+#  endif /* !SIG_SUSPEND */

 # endif
This commit is contained in:
Julien Fischer
2010-02-24 07:04:43 +00:00
parent 88b9eee5cf
commit ccf113711a
257 changed files with 36043 additions and 64751 deletions

View File

@@ -16,7 +16,7 @@ Mercury compiler, version <VERSION>, built on a `<FULLARCH>' system.
if the need should arise.
This distribution also contains a slightly modified copy of
version 7.0 alpha 6 (CVS 2006-08-14) of the conservative garbage collector
version 7.2 alpha 4 of the conservative garbage collector
distributed by Hans Boehm:
Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers