| 1 | /*
|
|---|
| 2 | MacOS_config.h
|
|---|
| 3 |
|
|---|
| 4 | Configuration flags for Macintosh development systems.
|
|---|
| 5 |
|
|---|
| 6 | <Revision History>
|
|---|
| 7 |
|
|---|
| 8 | 11/16/95 pcb Updated compilation flags to reflect latest 4.6 Makefile.
|
|---|
| 9 |
|
|---|
| 10 | by Patrick C. Beard.
|
|---|
| 11 | */
|
|---|
| 12 | /* Boehm, November 17, 1995 12:10 pm PST */
|
|---|
| 13 |
|
|---|
| 14 | #ifdef __MWERKS__
|
|---|
| 15 |
|
|---|
| 16 | // for CodeWarrior Pro with Metrowerks Standard Library (MSL).
|
|---|
| 17 | // #define MSL_USE_PRECOMPILED_HEADERS 0
|
|---|
| 18 | #include <ansi_prefix.mac.h>
|
|---|
| 19 | #ifndef __STDC__
|
|---|
| 20 | #define __STDC__ 0
|
|---|
| 21 | #endif
|
|---|
| 22 |
|
|---|
| 23 | #endif /* __MWERKS__ */
|
|---|
| 24 |
|
|---|
| 25 | // these are defined again in gc_priv.h.
|
|---|
| 26 | #undef TRUE
|
|---|
| 27 | #undef FALSE
|
|---|
| 28 |
|
|---|
| 29 | #define ALL_INTERIOR_POINTERS // follows interior pointers.
|
|---|
| 30 | #define SILENT // no collection messages.
|
|---|
| 31 | //#define DONT_ADD_BYTE_AT_END // no padding.
|
|---|
| 32 | //#define SMALL_CONFIG // whether to use a smaller heap.
|
|---|
| 33 | #define NO_SIGNALS // signals aren't real on the Macintosh.
|
|---|
| 34 | #define USE_TEMPORARY_MEMORY // use Macintosh temporary memory.
|
|---|
| 35 |
|
|---|
| 36 | // CFLAGS= -O -DNO_SIGNALS -DSILENT -DALL_INTERIOR_POINTERS
|
|---|
| 37 | //
|
|---|
| 38 | //LIBGC_CFLAGS= -O -DNO_SIGNALS -DSILENT \
|
|---|
| 39 | // -DREDIRECT_MALLOC=GC_malloc_uncollectable \
|
|---|
| 40 | // -DDONT_ADD_BYTE_AT_END -DALL_INTERIOR_POINTERS
|
|---|
| 41 | // Flags for building libgc.a -- the last two are required.
|
|---|
| 42 | //
|
|---|
| 43 | // Setjmp_test may yield overly optimistic results when compiled
|
|---|
| 44 | // without optimization.
|
|---|
| 45 | // -DSILENT disables statistics printing, and improves performance.
|
|---|
| 46 | // -DCHECKSUMS reports on erroneously clear dirty bits, and unexpectedly
|
|---|
| 47 | // altered stubborn objects, at substantial performance cost.
|
|---|
| 48 | // Use only for incremental collector debugging.
|
|---|
| 49 | // -DFIND_LEAK causes the collector to assume that all inaccessible
|
|---|
| 50 | // objects should have been explicitly deallocated, and reports exceptions.
|
|---|
| 51 | // Finalization and the test program are not usable in this mode.
|
|---|
| 52 | // -DSOLARIS_THREADS enables support for Solaris (thr_) threads.
|
|---|
| 53 | // (Clients should also define SOLARIS_THREADS and then include
|
|---|
| 54 | // gc.h before performing thr_ or GC_ operations.)
|
|---|
| 55 | // This is broken on nonSPARC machines.
|
|---|
| 56 | // -DALL_INTERIOR_POINTERS allows all pointers to the interior
|
|---|
| 57 | // of objects to be recognized. (See gc_priv.h for consequences.)
|
|---|
| 58 | // -DSMALL_CONFIG tries to tune the collector for small heap sizes,
|
|---|
| 59 | // usually causing it to use less space in such situations.
|
|---|
| 60 | // Incremental collection no longer works in this case.
|
|---|
| 61 | // -DLARGE_CONFIG tunes the collector for unusually large heaps.
|
|---|
| 62 | // Necessary for heaps larger than about 500 MB on most machines.
|
|---|
| 63 | // Recommended for heaps larger than about 64 MB.
|
|---|
| 64 | // -DDONT_ADD_BYTE_AT_END is meaningful only with
|
|---|
| 65 | // -DALL_INTERIOR_POINTERS. Normally -DALL_INTERIOR_POINTERS
|
|---|
| 66 | // causes all objects to be padded so that pointers just past the end of
|
|---|
| 67 | // an object can be recognized. This can be expensive. (The padding
|
|---|
| 68 | // is normally more than one byte due to alignment constraints.)
|
|---|
| 69 | // -DDONT_ADD_BYTE_AT_END disables the padding.
|
|---|
| 70 | // -DNO_SIGNALS does not disable signals during critical parts of
|
|---|
| 71 | // the GC process. This is no less correct than many malloc
|
|---|
| 72 | // implementations, and it sometimes has a significant performance
|
|---|
| 73 | // impact. However, it is dangerous for many not-quite-ANSI C
|
|---|
| 74 | // programs that call things like printf in asynchronous signal handlers.
|
|---|
| 75 | // -DGC_OPERATOR_NEW_ARRAY declares that the C++ compiler supports the
|
|---|
| 76 | // new syntax "operator new[]" for allocating and deleting arrays.
|
|---|
| 77 | // See gc_cpp.h for details. No effect on the C part of the collector.
|
|---|
| 78 | // This is defined implicitly in a few environments.
|
|---|
| 79 | // -DREDIRECT_MALLOC=X causes malloc, realloc, and free to be defined
|
|---|
| 80 | // as aliases for X, GC_realloc, and GC_free, respectively.
|
|---|
| 81 | // Calloc is redefined in terms of the new malloc. X should
|
|---|
| 82 | // be either GC_malloc or GC_malloc_uncollectable.
|
|---|
| 83 | // The former is occasionally useful for working around leaks in code
|
|---|
| 84 | // you don't want to (or can't) look at. It may not work for
|
|---|
| 85 | // existing code, but it often does. Neither works on all platforms,
|
|---|
| 86 | // since some ports use malloc or calloc to obtain system memory.
|
|---|
| 87 | // (Probably works for UNIX, and win32.)
|
|---|
| 88 | // -DNO_DEBUG removes GC_dump and the debugging routines it calls.
|
|---|
| 89 | // Reduces code size slightly at the expense of debuggability.
|
|---|