diff options
author | Miguel de Icaza <miguel@gnome.org> | 2004-11-11 05:30:00 +0300 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2004-11-11 05:30:00 +0300 |
commit | 3cca3c82b8e7554f4f5c13a34e4e42949c9053da (patch) | |
tree | c487436df7cc0b6c00a89e5e0b68e2c4e642a0ef /libgc/README.Mono | |
parent | 5dc2037ab1a06f92df5f26eb305cde5e3ecb76a1 (diff) |
Add libgc to mono
svn path=/trunk/mono/; revision=35994
Diffstat (limited to 'libgc/README.Mono')
-rw-r--r-- | libgc/README.Mono | 67 |
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> |