| 1 | Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
|
|---|
| 2 | Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved.
|
|---|
| 3 | Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
|
|---|
| 4 | Copyright (c) 1999-2001 by Hewlett-Packard. All rights reserved.
|
|---|
| 5 |
|
|---|
| 6 | THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
|
|---|
| 7 | OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
|
|---|
| 8 |
|
|---|
| 9 | Permission is hereby granted to use or copy this program
|
|---|
| 10 | for any purpose, provided the above notices are retained on all copies.
|
|---|
| 11 | Permission to modify the code and to distribute modified code is granted,
|
|---|
| 12 | provided the above notices are retained, and a notice that the code was
|
|---|
| 13 | modified is included with the above copyright notice.
|
|---|
| 14 |
|
|---|
| 15 | A few files have other copyright holders. A few of the files needed
|
|---|
| 16 | to use the GNU-style build procedure come with a modified GPL license
|
|---|
| 17 | that appears not to significantly restrict use of the collector, though
|
|---|
| 18 | use of those files for a purpose other than building the collector may
|
|---|
| 19 | require the resulting code to be covered by the GPL.
|
|---|
| 20 |
|
|---|
| 21 | For more details and the names of other contributors, see the
|
|---|
| 22 | doc/README* files and include/gc.h. This file describes typical use of
|
|---|
| 23 | the collector on a machine that is already supported.
|
|---|
| 24 |
|
|---|
| 25 | For the version number, see doc/README or version.h.
|
|---|
| 26 |
|
|---|
| 27 | INSTALLATION:
|
|---|
| 28 | Under UN*X, Linux:
|
|---|
| 29 | Alternative 1 (the old way): type "make test" in this directory.
|
|---|
| 30 | Link against gc.a.
|
|---|
| 31 |
|
|---|
| 32 | Alternative 2 (the new way): type
|
|---|
| 33 | "./configure --prefix=<dir>; make; make check; make install".
|
|---|
| 34 | Link against <dir>/lib/libgc.a or <dir>/lib/libgc.so.
|
|---|
| 35 | See README.autoconf for details
|
|---|
| 36 |
|
|---|
| 37 | Under OS/2 or Windows 95, 98, Me, NT, or 2000:
|
|---|
| 38 | copy the appropriate makefile to MAKEFILE, read it, and type "nmake test".
|
|---|
| 39 | (Under Windows, this assumes you have Microsoft command-line tools
|
|---|
| 40 | installed, and have DOS configured with enough environment space to run them.)
|
|---|
| 41 | Read the machine specific README in the doc directory if one exists.
|
|---|
| 42 | The only way to develop code with the collector for Windows 3.1 is
|
|---|
| 43 | to develop under Windows NT or 95+, and then to use win32S.
|
|---|
| 44 |
|
|---|
| 45 | If you need thread support, you will need to either follow the special
|
|---|
| 46 | platform-dependent instructions (win32), or add a suitable define
|
|---|
| 47 | option as described in Makefile.
|
|---|
| 48 |
|
|---|
| 49 | If you wish to use the cord (structured string) library, type
|
|---|
| 50 | "make cords". (This requires an ANSI C compiler. You may need
|
|---|
| 51 | to redefine CC in the Makefile. The CORD_printf implementation in
|
|---|
| 52 | cordprnt.c is known to be less than perfectly portable. The rest
|
|---|
| 53 | of the package should still work.)
|
|---|
| 54 |
|
|---|
| 55 | If you wish to use the collector from C++, type
|
|---|
| 56 | "make c++". These add further files to gc.a and to the include
|
|---|
| 57 | subdirectory. See cord/cord.h and include/gc_cpp.h.
|
|---|
| 58 |
|
|---|
| 59 | TYPICAL USE:
|
|---|
| 60 | Include "gc.h" from the include subdirectory. Link against the
|
|---|
| 61 | appropriate library ("gc.a" under UN*X). Replace calls to malloc
|
|---|
| 62 | by calls to GC_MALLOC, and calls to realloc by calls to GC_REALLOC.
|
|---|
| 63 | If the object is known to never contain pointers, use GC_MALLOC_ATOMIC
|
|---|
| 64 | instead of GC_MALLOC.
|
|---|
| 65 |
|
|---|
| 66 | Define GC_DEBUG before including gc.h for additional checking.
|
|---|
| 67 |
|
|---|
| 68 | More documentation on the collector interface can be found at
|
|---|
| 69 | http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html,
|
|---|
| 70 | in doc/README, and in include/gc.h .
|
|---|
| 71 |
|
|---|
| 72 | WARNINGS:
|
|---|
| 73 |
|
|---|
| 74 | Do not store the only pointer to an object in memory allocated
|
|---|
| 75 | with system malloc, since the collector usually does not scan
|
|---|
| 76 | memory allocated in this way.
|
|---|
| 77 |
|
|---|
| 78 | Use with threads may be supported on your system, but requires the
|
|---|
| 79 | collector to be built with thread support. See Makefile. The collector
|
|---|
| 80 | does not guarantee to scan thread-local storage (e.g. of the kind
|
|---|
| 81 | accessed with pthread_getspecific()). The collector does scan
|
|---|
| 82 | thread stacks though, so generally the best solution is to ensure that
|
|---|
| 83 | any pointers stored in thread-local storage are also stored on the
|
|---|
| 84 | thread's stack for the duration of their lifetime.
|
|---|
| 85 |
|
|---|