Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2004-11-11 05:30:00 +0300
committerMiguel de Icaza <miguel@gnome.org>2004-11-11 05:30:00 +0300
commit3cca3c82b8e7554f4f5c13a34e4e42949c9053da (patch)
treec487436df7cc0b6c00a89e5e0b68e2c4e642a0ef /libgc/README.Mono
parent5dc2037ab1a06f92df5f26eb305cde5e3ecb76a1 (diff)
Add libgc to mono
svn path=/trunk/mono/; revision=35994
Diffstat (limited to 'libgc/README.Mono')
-rw-r--r--libgc/README.Mono67
1 files changed, 67 insertions, 0 deletions
diff --git a/libgc/README.Mono b/libgc/README.Mono
new file mode 100644
index 00000000000..bf2fbf7df7a
--- /dev/null
+++ b/libgc/README.Mono
@@ -0,0 +1,67 @@
+This is a modified version of Boehm GC 6.1 for Mono.
+
+* There are two main changes to the upstream version:
+
+ - Makefile changes:
+
+ libgc has a lot of configurable options which are AC_DEFINE()d in its
+ configure.in. To make it easier to build and bundle it with Mono, I
+ replaced most of the orignal configure.in and the makefiles with custom
+ versions which just define what we actually need for Mono.
+
+ This means that you can just run configure in this directory and it'll
+ do the right thing. Later on, we'll just include this package in Mono
+ and use AC_CONFIG_SUBDIRS().
+
+ - Threading changes
+
+ The original libgc has several *_threads.c files for each possible threading
+ implementation.
+
+ For Mono, we're using a vtable
+
+ typedef struct
+ {
+ void (* initialize) (void);
+ void (* lock) (void);
+ void (* unlock) (void);
+ void (* stop_world) (void);
+ void (* push_thread_structures) (void);
+ void (* push_all_stacks) (void);
+ void (* start_world) (void);
+ } GCThreadFunctions;
+
+ extern GCThreadFunctions *gc_thread_vtable;
+
+ and a mono_threads.c file.
+
+ - Deleted files
+
+ Some files from the original distribution have been deleted in this version.
+ These are files which weren't actually linked into the library so they were not
+ needed. When importing a new upstream version, you can either keep them removed
+ or just replace them with their new upstream versions.
+
+ - include/private/gc_locks.h
+
+ This file has been replaced with a custom version.
+
+ When importing a new upstream version, keep this custom version, ie. don't import the
+ new upstream gc_locks.h.
+
+* Importing a new upstream version
+
+ This is really simple. Just import the new version to the vendor branch (LIBGC) in CVS
+ and then merge it into the main trunk.
+
+ To get a diff to the original version:
+
+ cvs diff -u -r LIBGC
+
+ When importing new upstream versions, don't import the new configure.in or any of the
+ Makefile.am's; they've been replaced by custom versions. Just import all the new source
+ files and it should be fine.
+
+
+April 4th, 2003
+Martin Baulig <martin@ximian.com>