diff options
Diffstat (limited to 'boehm-gc/Mac_files/MacOS_config.h')
-rw-r--r-- | boehm-gc/Mac_files/MacOS_config.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/boehm-gc/Mac_files/MacOS_config.h b/boehm-gc/Mac_files/MacOS_config.h new file mode 100644 index 0000000..93c3c97 --- /dev/null +++ b/boehm-gc/Mac_files/MacOS_config.h @@ -0,0 +1,89 @@ +/* + MacOS_config.h + + Configuration flags for Macintosh development systems. + + <Revision History> + + 11/16/95 pcb Updated compilation flags to reflect latest 4.6 Makefile. + + by Patrick C. Beard. + */ +/* Boehm, November 17, 1995 12:10 pm PST */ + +#ifdef __MWERKS__ + +// for CodeWarrior Pro with Metrowerks Standard Library (MSL). +// #define MSL_USE_PRECOMPILED_HEADERS 0 +#include <ansi_prefix.mac.h> +#ifndef __STDC__ +#define __STDC__ 0 +#endif + +#endif /* __MWERKS__ */ + +// these are defined again in gc_priv.h. +#undef TRUE +#undef FALSE + +#define ALL_INTERIOR_POINTERS // follows interior pointers. +#define SILENT // no collection messages. +//#define DONT_ADD_BYTE_AT_END // no padding. +//#define SMALL_CONFIG // whether to use a smaller heap. +#define NO_SIGNALS // signals aren't real on the Macintosh. +#define USE_TEMPORARY_MEMORY // use Macintosh temporary memory. + +// CFLAGS= -O -DNO_SIGNALS -DSILENT -DALL_INTERIOR_POINTERS +// +//LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \ +// -DREDIRECT_MALLOC=GC_malloc_uncollectable \ +// -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS +// Flags for building libgc.a -- the last two are required. +// +// Setjmp_test may yield overly optimistic results when compiled +// without optimization. +// -DSILENT disables statistics printing, and improves performance. +// -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly +// altered stubborn objects, at substantial performance cost. +// Use only for incremental collector debugging. +// -DFIND_LEAK causes the collector to assume that all inaccessible +// objects should have been explicitly deallocated, and reports exceptions. +// Finalization and the test program are not usable in this mode. +// -DSOLARIS_THREADS enables support for Solaris (thr_) threads. +// (Clients should also define SOLARIS_THREADS and then include +// gc.h before performing thr_ or GC_ operations.) +// This is broken on nonSPARC machines. +// -DALL_INTERIOR_POINTERS allows all pointers to the interior +// of objects to be recognized. (See gc_priv.h for consequences.) +// -DSMALL_CONFIG tries to tune the collector for small heap sizes, +// usually causing it to use less space in such situations. +// Incremental collection no longer works in this case. +// -DLARGE_CONFIG tunes the collector for unusually large heaps. +// Necessary for heaps larger than about 500 MB on most machines. +// Recommended for heaps larger than about 64 MB. +// -DDONT_ADD_BYTE_AT_END is meaningful only with +// -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS +// causes all objects to be padded so that pointers just past the end of +// an object can be recognized. This can be expensive. (The padding +// is normally more than one byte due to alignment constraints.) +// -DDONT_ADD_BYTE_AT_END disables the padding. +// -DNO_SIGNALS does not disable signals during critical parts of +// the GC process. This is no less correct than many malloc +// implementations, and it sometimes has a significant performance +// impact. However, it is dangerous for many not-quite-ANSI C +// programs that call things like printf in asynchronous signal handlers. +// -DOPERATOR_NEW_ARRAY declares that the C++ compiler supports the +// new syntax "operator new[]" for allocating and deleting arrays. +// See gc_cpp.h for details. No effect on the C part of the collector. +// This is defined implicitly in a few environments. +// -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined +// as aliases for X, GC_realloc, and GC_free, respectively. +// Calloc is redefined in terms of the new malloc. X should +// be either GC_malloc or GC_malloc_uncollectable. +// The former is occasionally useful for working around leaks in code +// you don't want to (or can't) look at. It may not work for +// existing code, but it often does. Neither works on all platforms, +// since some ports use malloc or calloc to obtain system memory. +// (Probably works for UNIX, and win32.) +// -DNO_DEBUG removes GC_dump and the debugging routines it calls. +// Reduces code size slightly at the expense of debuggability.
\ No newline at end of file |