51488
|
1 While the GC should work on MacOS X Server, MacOS X and Darwin, I only tested
|
|
2 it on MacOS X Server.
|
|
3 I've added a PPC assembly version of GC_push_regs(), thus the setjmp() hack is
|
|
4 no longer necessary. Incremental collection is supported via mprotect/signal.
|
|
5 The current solution isn't really optimal because the signal handler must decode
|
|
6 the faulting PPC machine instruction in order to find the correct heap address.
|
|
7 Further, it must poke around in the register state which the kernel saved away
|
|
8 in some obscure register state structure before it calls the signal handler -
|
|
9 needless to say the layout of this structure is no where documented.
|
|
10 Threads and dynamic libraries are not yet supported (adding dynamic library
|
|
11 support via the low-level dyld API shouldn't be that hard).
|
|
12
|
|
13 The original MacOS X port was brought to you by Andrew Stone.
|
|
14
|
|
15
|
|
16 June, 1 2000
|
|
17
|
|
18 Dietmar Planitzer
|
|
19 dave.pl@ping.at
|
|
20
|
|
21 Note from Andrew Begel:
|
|
22
|
|
23 One more fix to enable gc.a to link successfully into a shared library for
|
|
24 MacOS X. You have to add -fno-common to the CFLAGS in the Makefile. MacOSX
|
|
25 disallows common symbols in anything that eventually finds its way into a
|
|
26 shared library. (I don't completely understand why, but -fno-common seems to
|
|
27 work and doesn't mess up the garbage collector's functionality).
|
|
28
|
|
29 Feb 26, 2003
|
|
30
|
|
31 Jeff Sturm and Jesse Rosenstock provided a patch that adds thread support.
|
|
32 GC_MACOSX_THREADS should be defined in the build and in clients. Real
|
|
33 dynamic library support is still missing, i.e. dynamic library data segments
|
|
34 are still not scanned. Code that stores pointers to the garbage collected
|
|
35 heap in statically allocated variables should not reside in a dynamic
|
|
36 library. This still doesn't appear to be 100% reliable.
|
|
37
|
|
38 Mar 10, 2003
|
|
39 Brian Alliet contributed dynamic library support for MacOSX. It could also
|
|
40 use more testing.
|