Miguel de Icaza 470244cc0e Moved libgc here too 21 лет назад
..
Mac_files 470244cc0e Moved libgc here too 21 лет назад
cord 470244cc0e Moved libgc here too 21 лет назад
doc 470244cc0e Moved libgc here too 21 лет назад
include 470244cc0e Moved libgc here too 21 лет назад
.cvsignore 470244cc0e Moved libgc here too 21 лет назад
AmigaOS.c 470244cc0e Moved libgc here too 21 лет назад
BCC_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
ChangeLog 470244cc0e Moved libgc here too 21 лет назад
EMX_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
MacOS.c 470244cc0e Moved libgc here too 21 лет назад
MacProjects.sit.hqx 470244cc0e Moved libgc here too 21 лет назад
Makefile.DLLs 470244cc0e Moved libgc here too 21 лет назад
Makefile.am 470244cc0e Moved libgc here too 21 лет назад
Makefile.direct 470244cc0e Moved libgc here too 21 лет назад
Makefile.dj 470244cc0e Moved libgc here too 21 лет назад
NT_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
NT_STATIC_THREADS_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
NT_THREADS_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
OS2_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
PCR-Makefile 470244cc0e Moved libgc here too 21 лет назад
README.Mono 470244cc0e Moved libgc here too 21 лет назад
README.QUICK 470244cc0e Moved libgc here too 21 лет назад
SMakefile.amiga 470244cc0e Moved libgc here too 21 лет назад
WCC_MAKEFILE 470244cc0e Moved libgc here too 21 лет назад
acinclude.m4 470244cc0e Moved libgc here too 21 лет назад
add_gc_prefix.c 470244cc0e Moved libgc here too 21 лет назад
aix_irix_threads.c 470244cc0e Moved libgc here too 21 лет назад
allchblk.c 470244cc0e Moved libgc here too 21 лет назад
alloc.c 470244cc0e Moved libgc here too 21 лет назад
alpha_mach_dep.S 470244cc0e Moved libgc here too 21 лет назад
autogen.sh 470244cc0e Moved libgc here too 21 лет назад
backgraph.c 470244cc0e Moved libgc here too 21 лет назад
blacklst.c 470244cc0e Moved libgc here too 21 лет назад
callprocs 470244cc0e Moved libgc here too 21 лет назад
checksums.c 470244cc0e Moved libgc here too 21 лет назад
config.guess 470244cc0e Moved libgc here too 21 лет назад
config.sub 470244cc0e Moved libgc here too 21 лет назад
configure.host 470244cc0e Moved libgc here too 21 лет назад
configure.in 470244cc0e Moved libgc here too 21 лет назад
darwin_stop_world.c 470244cc0e Moved libgc here too 21 лет назад
dbg_mlc.c 470244cc0e Moved libgc here too 21 лет назад
depcomp 470244cc0e Moved libgc here too 21 лет назад
digimars.mak 470244cc0e Moved libgc here too 21 лет назад
dyn_load.c 470244cc0e Moved libgc here too 21 лет назад
finalize.c 470244cc0e Moved libgc here too 21 лет назад
gc.mak 470244cc0e Moved libgc here too 21 лет назад
gc_cpp.cc 470244cc0e Moved libgc here too 21 лет назад
gc_cpp.cpp 470244cc0e Moved libgc here too 21 лет назад
gc_dlopen.c 470244cc0e Moved libgc here too 21 лет назад
gcc_support.c 470244cc0e Moved libgc here too 21 лет назад
gcj_mlc.c 470244cc0e Moved libgc here too 21 лет назад
gcname.c 470244cc0e Moved libgc here too 21 лет назад
headers.c 470244cc0e Moved libgc here too 21 лет назад
hpux_test_and_clear.s 470244cc0e Moved libgc here too 21 лет назад
ia64_save_regs_in_stack.s 470244cc0e Moved libgc here too 21 лет назад
if_mach.c 470244cc0e Moved libgc here too 21 лет назад
if_not_there.c 470244cc0e Moved libgc here too 21 лет назад
install-sh 470244cc0e Moved libgc here too 21 лет назад
irix_threads.c 470244cc0e Moved libgc here too 21 лет назад
libgc.log 470244cc0e Moved libgc here too 21 лет назад
libtool.m4 470244cc0e Moved libgc here too 21 лет назад
ltconfig 470244cc0e Moved libgc here too 21 лет назад
ltmain.sh 470244cc0e Moved libgc here too 21 лет назад
mach_dep.c 470244cc0e Moved libgc here too 21 лет назад
malloc.c 470244cc0e Moved libgc here too 21 лет назад
mallocx.c 470244cc0e Moved libgc here too 21 лет назад
mark.c 470244cc0e Moved libgc here too 21 лет назад
mark_rts.c 470244cc0e Moved libgc here too 21 лет назад
mips_sgi_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
mips_ultrix_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
misc.c 470244cc0e Moved libgc here too 21 лет назад
missing 470244cc0e Moved libgc here too 21 лет назад
mkinstalldirs 470244cc0e Moved libgc here too 21 лет назад
new_hblk.c 470244cc0e Moved libgc here too 21 лет назад
obj_map.c 470244cc0e Moved libgc here too 21 лет назад
os_dep.c 470244cc0e Moved libgc here too 21 лет назад
pc_excludes 470244cc0e Moved libgc here too 21 лет назад
pcr_interface.c 470244cc0e Moved libgc here too 21 лет назад
powerpc_darwin_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
powerpc_macosx_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
pthread_stop_world.c 470244cc0e Moved libgc here too 21 лет назад
pthread_support.c 470244cc0e Moved libgc here too 21 лет назад
ptr_chck.c 470244cc0e Moved libgc here too 21 лет назад
real_malloc.c 470244cc0e Moved libgc here too 21 лет назад
reclaim.c 470244cc0e Moved libgc here too 21 лет назад
rs6000_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
setjmp_t.c 470244cc0e Moved libgc here too 21 лет назад
solaris_pthreads.c 470244cc0e Moved libgc here too 21 лет назад
solaris_threads.c 470244cc0e Moved libgc here too 21 лет назад
sparc_mach_dep.S 470244cc0e Moved libgc here too 21 лет назад
sparc_netbsd_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
sparc_sunos4_mach_dep.s 470244cc0e Moved libgc here too 21 лет назад
specific.c 470244cc0e Moved libgc here too 21 лет назад
stubborn.c 470244cc0e Moved libgc here too 21 лет назад
threadlibs.c 470244cc0e Moved libgc here too 21 лет назад
typd_mlc.c 470244cc0e Moved libgc here too 21 лет назад
version.h 470244cc0e Moved libgc here too 21 лет назад
win32_threads.c 470244cc0e Moved libgc here too 21 лет назад

README.Mono

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