Laurynas Biveinis wrote:
> Hi,
> 
> So far I've been debugging GCC bootstrap failures with Boehm's GC, and
> now I'm stuck.
> 
> I used to register all GC roots at the startup of GCC, including
> stringpool roots. That worked fine until first ht_expand() call, which
> moves identifier hash table around in the memory and Boehm's GC still
> uses its old location as a root segment. Oops. But if I try to remove
> the old root segment and register the current one with
> GC_remove_roots() and GC_add_roots(), first GC_collect() crashes with
> 

Are you trying to do incremental marking?
If the root set changes in the middle of an incremental mark and it's
still got things from the old root set to mark, i bet it blows up, :)

--Dan

Reply via email to