[Gc] Dynamic lib support for GC on MacOSX
Sat, 28 Jun 2003 02:21:33 -0400
On Friday, June 27, 2003, at 08:53 PM, Andrew Begel wrote:
> #2 0x024667a0 in GC_lock () at linux_threads.c:1948
It appears you aren't using the latest version of the gc
(linux_threads.c no longer exists in the newest version) Please upgrade
to version 6.2. Proper Darwin/MacOSX support is in that version. If you
have any problems with 6.2, please let me know.
> 1. I don't know why sigaction() triggers the dynamic loader, to cause
> the problem. I've contacted Apple to find out why.
> 2. I'm sure the sigaction() calls are important to proper operation of
> GC with threads. Are there any documents that describe how threaded GC
> uses the signal handlers so I can figure out how to work around the
> problem? Other signal system calls do not trigger the dynamic loader.
The various signal handling functions call
dyld_bind_fully_image_containing_address to ensure all the symbols in
the signal handler are fully bound (to avoid deadlocks). It appears to
do this (unnecessarily) even if you use DYLD_BIND_AT_LAUNCH.
That being said, none of this should be a problem in the latest
version. The gc *should* never try acquire the dyld lock while the
world is stopped.