[Gc] Re: Boehm update in GCC
ivmai at mail.ru
Sun Apr 10 10:47:06 PDT 2011
I've reviewed the patches from gcc/boem-gc. The following ones I'm unable to process (and some at GCC side should have a look at, may be the original patch authors could adopt their ones for GC v7+):
bgc-167681 - darwin-specific (probably this one no longer needed for v7+);
bgc-171516 - testsuite-specific;
bgc-144045 bgc-150269 bgc-151013 bgc-151627 bgc-166028 - scripts-specific ones;
bgc-114869, bgc-124081 - specific to thread suspension.
The rest ones are either already applied or obsolete.
The open question is whether it will be possible to use completely unmodified BDWGC in GCC (to simplify further updates). Of course, it will require modification of boehm.cc in GCJ.
PS. I have found only one patch (posted recently to gcc/boehm-gc by Iain Sandoe and Mike Stump) applicable to BDWGC.
I've committed it today (with some minor non-functional modifications).
Sun, 3 Apr 2011 12:23:01 +0200 Kai Tietz <ktietz70 at googlemail.com>:
> 2011/4/3 Ivan Maidanski <ivmai at mail.ru>:
> > Hi,
> > Sun, 3 Apr 2011 09:38:18 +0200 Kai Tietz <ktietz70 at googlemail.com>:
> >> 2011/4/3 Ivan Maidanski <ivmai at mail.ru>:
> >> > Hi,
> >> >
> >> > Sun, 3 Apr 2011 08:46:30 +0200 Kai Tietz <ktietz70 at googlemail.com>:
> >> >
> >> >> Sorry, to hear that the patches done on gcc's svn for boehm-gc
> >> are
> >> >> useless for you.
> >> >
> >> > I apologies I really meant "such big patch against an ancient
> >> version is not practically usable here" instead of just
> >> "useless".
> >> ok, thanks for the clarification.
> >> >> Gcc based on boehm-gc 6.6 and did some extensions to
> >> >> it, which maybe are on boehm-gc's trunk, or might be not. This is
> >> an
> >> >> answer only you can really provide.
> >> >
> >> > Both are correct. The major extension is ability to suspend/reasume (used
> >> in GCJ to implement the anticipated Thread.suspend/resume methods). This
> >> other minor changes (like a change in GC_finalize_all) are discussed in
> >> >
> >> >> That gcc folk doesn't use bare
> >> >> boehm-gc 6.6 is obviously caused by the fact that it had major issues
> >> >> and so needed some fixing.
> >> >
> >> > Let's separate bug fixing (they do it on their side and we do the
> >> same on our side) from enhancing GC API.
> >> Well, I can post the differences in smaller pieces, if you prefer.
> > Size doesn't matter provided you contribute a patch (fixing some bug or
> introducing new functionality) against a relatively moderate version.
> >> >> To update to 6.8 doesn't help, as AFAIK is x64 windows target not
> >> >> supported. So I have no interest to update to a version, which
> >> doesn't
> >> >> help me at all.
> >> >
> >> > I meant compare gcc/boehm-gc with v6.8 just to get API enhancement
> >> details (no more).
> >> Well, I can try. But I think it is easier for checking the differences
> >> directly to 7.2 version. AFAICS are just a few changes of interest.
> > It's up to you to choose the easier way.
> >> The testsuite thing is for sure nothing as is for boehm-gc's cvs, as
> >> it depends on gcc's internal configure stuff.
> > Yes.
> >> >> I use locally for me an unmodified 7.2 (alpha 5), but it is important
> >> >> that not just I have this.
> >> >
> >> > Cool!!! You have integrated v7.2a5 with GCC. Congratulations!
> >> > Then what are we talking about?
> >> Well, I just test windows target stuff,
> > Oh. I see, Thread.suspend/resume is not implemented in GCJ for Win32. (And
> no changes were done in Runtime.runFinalization() reflecting the change in
> GC_finalize_all() semantics.)
> >> but most patches done on gcc's
> >> side are concerning the following points: GD/UX, Solaris,
> >> mips-sgi-irix6, Darwin, some test-suite adjustments, THREAD usage
> >> changes, Cygwin and dynamic registration, mips64-linux n64 ABI, and
> >> some Mafile/Configure adjustments, etc.
> > The question is: will you adjust gcc/boehm.cc to be usable with GC v7.2+ or
> request deprecated thread suspension functionality in GC (both for pthread and
> win32)? Unfortunately, I don't have time at present to help you answering this
> Well, one step after the other. First it is important to get gcc
> patches into boehm-gc as far as possible to be able to prepare a
> merge. Well, making boehm.cc usable with GC v7.2+ is of course to be
> preferred here, we will see.
> I attached as archive the separated changes to gcc's tree. Each of
> them contains a ChangeLog entry. Some of the are just regeneration of
> Makefile.in/configure, those might be ignored. Also the most resent
> one introducing the testsuite part.
More information about the Gc