[Gc] Dynamic lib support for GC on MacOSX

Brian Alliet brian@brian-web.com
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.

-Brian