[Gc] Dynamic lib support for GC on MacOSX

Andrew Begel abegel@eecs.berkeley.edu
Sat, 28 Jun 2003 14:14:47 -0700


Ah you're right. I upgraded to the release of gc 6.2 and my deadlock 
has gone away.

However, now I'm getting memory being freed before it's supposed to be. 
I have to track this down now (since it doesn't happen under Linux, nor 
under OSX with the gc turned off).

Andrew

On Friday, June 27, 2003, at 11:21  PM, Brian Alliet wrote:

> 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
>
> _______________________________________________
> Gc mailing list
> Gc@linux.hpl.hp.com
> http://linux.hpl.hp.com/cgi-bin/mailman/listinfo/gc
>

-----------
Andrew Begel
Ph.D. Candidate
Computer Science Division
University of California, Berkeley