Re: [patch] Fix oddity in personality routine
Jack Howarth <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sun, Nov 15, 2009 at 11:01:22PM +0000, Bryce McKinlay wrote: > On Fri, Nov 13, 2009@7:17 PM, Jack Howarth <[email protected]> wrote: > > >> Index: exception.cc > >> =================================================================== > >> --- exception.cc (revision 154059) > >> +++ exception.cc (working copy) > >> @@ -328,7 +328,7 @@ PERSONALITY_FUNCTION (int version, > >> #ifdef HAVE_GETIPINFO > >> ip = _Unwind_GetIPInfo (context, &ip_before_insn); > >> #else > >> - ip = _Unwind_GetIP (context) - 1; > >> + ip = _Unwind_GetIP (context); > >> #endif > >> if (! ip_before_insn) > >> --ip; > > > > > > Shouldn't this fix also get backported to gcc-4_4-branch and > > gcc-4_3-branch as well? They both have r128098. > > Jack, can you confirm that this actually fixes the problem you are > seeing on Darwin? r128098 dates from 2007 - it's hard to believe that > nobody has had a working GCJ on Darwin since then! > > Bryce Bryce Unfortunately, r154159 didn't eliminate the crashes on x86_64-apple-darwin9 or x86_64-apple-darwin10 when compiling java code with gcj on either a Core2Duo or Xeon. Oddly... http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41991#c3 fixes the issue for Andreas Tobler. I am wondering if this is really just tending the problem to go latent under certain conditions though. Also, the Makefile.in and Makefile.am still seem a bit odd to me... http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41991#c10 Using variables before they are actually assigned in Makefiles can't be right. I wonder if the same issues exist elsewhere in the libjava build infrastructure. Jack ps I still ought to test the patch in comment 10 under x86_64-apple-darwin9 (as I only tested with x86_64-apple-darwin10). The darwin10 build has the additional complexity that the FSF libgcc isn't ever really used since Apple has subsumed libgcc into libSystem and favors those symbols over any in libgcc. So the unwinder in libSystem is always used under darwin10 regardless of which libgcc is linked in.