[Gc] RE: GC ported to AIX pthreads
Fri, 30 May 2003 17:59:26 -0700
[I'm continuing this on the GC list, for future reference. For those just joining us,
Dan Bonachea contributed an AIX threads port, as well as some Irix patches/observations.]
I will integrate the patch into my tree, making some adjustments. I would appreciate
help in testing the result. In spite of previous intentions, I will release a 6.2alpha6
with both Brian's and Dan's patches. Both patches are large and very useful, so I
decided to tolerate more instability than planned. I hope and expect the impact
on other platforms to be small.
As I already mentioned to Dan, a lot of this code should eventually be restructured to
fit with Brian's code. But I don't think that's pressing.
It doesn't look like the direct conflicts with Brian's Darwin patch are major.
But there are some changes to linux_threads.c, for example, which no longer exists.
> -----Original Message-----
> From: Dan Bonachea [mailto:email@example.com]
> Sent: Friday, May 30, 2003 2:25 AM
> To: Boehm Hans
> Subject: RE: GC ported to AIX pthreads
> >3) MPROTECT_VDB used to work on Irix. I suspect something
> fairly trivial
> >(signal handler arguments handling?) broke somewhere along the line.
> You may be right - however I've never worked on the code which uses
> MPROTECT_VDB, so I'm probably not the right person to debug
> it for you. Here's
> the gctest-MPROTECT_VDB crash stack, in case that's helpful:
> #0 0x10012b14 in GC_find_limit (p=0x7ffeb5c0 "", up=1)
> #1 0x10012bcc in GC_get_stack_base ()
> #2 0x1000a2a4 in GC_init_inner ()
> #3 0x1000a5d0 in GC_enable_incremental ()
> #4 0x10009428 in main ()
> I looked over GC_find_limit and couldn't find anything
> obvious wrong with it,
> although there are some vague comments referring to IRIX 5 vs
> 6... I have no
> idea why the SIGSEGV is still being delivered despite the
> sigaction which
> should suspend it...
> However, in the short-term disabling MPROTECT_VDB fixes the problem.
Is this the real problem? Does it die there? Or is gdb just catching the
SIGSEGV signal which should be delivered at that point?