Re[4]: [Gc] Merge with gcc?

Ivan Maidanski ivmai at mail.ru
Thu Aug 13 08:58:34 PDT 2009


Hi!

Andrew Haley <aph at redhat.com> wrote:
> Hi,
> 
> Ivan Maidanski wrote:
> 
> > Andrew Haley <aph at redhat.com> wrote:
> >> Ivan Maidanski wrote:
> >>
> >>> Andrew Haley <aph at redhat.com> wrote:
> >>>> Ivan Maidanski wrote:
> >>>>
> >>>>> Andrew Haley <aph at redhat.com> wrote:
> 
> >>>>>> Is this a good time to merge the gc into gcc downstream?
> >>>>>> People are asking for Win64 support.
> 
> >>> Could you explain (at least to me) the meaning of "merge the gc
> >>> into gcc downstream"?
> 
> >> The version of gc in gcc is old; I want to update it from the
> >> current gc tree.
> 
> > You can't update gcc/boehm-gc without fixing, at least, gcj boehm.cc
> > (because GC API has changed and because gcc/boehm-gc has some
> > private extensions over the gc it had been forked from (v6.6)).
> 
> OK.  We really need to get those merged back from gcc to the boehm gc
> tree.  I can assure you that gcj does not want private extensions!

Good. When why not detach gc from gcc (i.e. have libgc (of any supported version) as a prerequisite like libmpfr or libgmp)?

Anyway, as I see you need back-ported:
- include "config.h" (for libgc building only, I guess) is not currently in CVS (pending in my diff116);
- have GC_suspend/resume_thread() and GC_is_thread_suspended() for pthreads (it's interesting what Hans is thinking of these API entries).

Required changes for gcj boehm.cc:
- GC_register_my_thread(), GC_get_thread_stack_base() protos changed;
- GC_finalize_all() should be invoked in a separate thread.

> 
> > You doubt this is a good time to start working on boehm.cc
> > changes. What are the reasons?
> 
> Because I have no idea what state the boehm gc tree is in.  For example,
> I don't know if it is stable at the moment.

I guess the tree is not stable (I even want Hans to move some rearly used .c files to an "extra" folder - he didn't mind (at least last year) but a bit busy with other patches). You may wait until GC v7.2 final but without your efforts the things you need to back-port will not emerge in it. The API You need is stable (except for GC_finalize_all those semantics has been changed since last alpha release).

I think most of GCC/GCJ users will NOT appreciate if you completely remove your current gcc/noehm-gc tree and fill it with an alpha release or a cvs snapshot. But, I think, the "enthusiasts" (like mingw-w64 folks) should have a way to try out GCC with a standalone libgc (for this, you should have a retargetable boehm.cc and back-port the changes).

> 
> Andrew.
> 

Bye.


More information about the Gc mailing list