Skip to content

Files

Latest commit

ad6de27 · Dec 5, 2018

History

History
This branch is 1 commit ahead of, 5699 commits behind mono/mono:main.

libgc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Nov 11, 2004
Jan 24, 2006
Feb 21, 2017
Dec 5, 2018
Apr 20, 2011
Jan 27, 2017
Jan 7, 2011
Dec 13, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 13, 2018
May 25, 2014
Nov 11, 2004
Nov 11, 2004
Jan 24, 2006
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
May 25, 2014
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Oct 26, 2014
Nov 11, 2004
Nov 11, 2004
Jan 24, 2006
Nov 17, 2015
Jan 24, 2006
May 1, 2018
Jan 24, 2006
Feb 21, 2017
Nov 11, 2004
Nov 11, 2004
Dec 6, 2017
Sep 29, 2005
Feb 26, 2014
Nov 11, 2004
Nov 11, 2004
Mar 29, 2018
Nov 17, 2015
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Dec 17, 2010
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Jan 24, 2006
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Nov 29, 2010
Nov 11, 2004
Jan 24, 2006
Aug 10, 2018
Feb 7, 2016
Nov 11, 2004
Nov 11, 2004
Nov 17, 2015
Dec 3, 2004
Nov 11, 2004
Aug 13, 2013
Dec 6, 2017
Nov 11, 2004
Nov 11, 2004
Jan 24, 2006
Nov 11, 2004
Jan 8, 2018
Feb 27, 2018
Aug 13, 2013
Nov 11, 2004
Jan 24, 2006
Nov 11, 2004
Nov 11, 2004
Jun 26, 2006
Nov 17, 2015
Nov 11, 2004
Nov 11, 2004
Nov 11, 2004
Feb 1, 2007
Nov 11, 2004
Nov 29, 2010
Nov 11, 2004
May 25, 2014
Feb 27, 2018
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.ac.  To make it easier to build and bundle it with Mono, I
    replaced most of the orignal configure.ac 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.ac 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>