This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Current gcj on powerpc
- From: Mark Wielaard <mark at klomp dot org>
- To: Jeff Sturm <jsturm at one-point dot com>
- Cc: Bryce McKinlay <bryce at waitaki dot otago dot ac dot nz>, java at gcc dot gnu dot org
- Date: 01 Aug 2002 18:40:22 +0200
- Subject: Re: Current gcj on powerpc
- References: <Pine.LNX.4.44.0208011129080.23970-100000@ops2.one-point.com>
Hi,
On Thu, 2002-08-01 at 17:53, Jeff Sturm wrote:
> On 31 Jul 2002, Mark Wielaard wrote:
> > Embarrassing... But I did test the patch on a x86 machine and it really
> > looked innocent. I have no idea why that would cause a simple program
> > like the following to fail:
>
> It shouldn't.
I know, I didn't believe it either. But it really does make a difference
on my machine.
> > But it seems that it does on powerpc-unknown-linux-gnu. Can anybody spot
> > anything in that patch that could cause the whole exception mechanism to
> > fail (in exception.cc:110)?
> > (And only with shared libraries, compiling with -static works ok.)
>
> Assuming this patch really is responsible, it may not be a DSO vs. -static
> thing anyway. The static executable you built may not have linked with
> the gnu.java.security objects at all, so would be unaffected by this
> patch.
Even adding the following line to the test:
java.security.Provider p = new gnu.java.security.provider.Gnu();
(just before the throw) makes the -static binary run happily.
> Can you place a breakpoint on abort() and find out what the
> _Unwind_Reason_Code is? The comment suggests it could be
> _URC_END_OF_STACK or some other failure.
I am really not that good with gdb. I can set the breakpoint on
exception.cc:110 but the gdb tells be there is no variable code (why, it
is right there?) Any idea how I can get at it:
(gdb) n
91 xh->unwindHeader.exception_class = __gcj_exception_class;
(gdb) n
92 xh->unwindHeader.exception_cleanup = NULL;
(gdb) n
89 xh->value = value;
(gdb) n
100 code = _Unwind_RaiseException (&xh->unwindHeader);
(gdb) n
110 abort();
(gdb) print code
No symbol "code" in current context.
(gdb)
> > I am going to double check this by doing a complete clean compile of the
> > HEAD with only this patch reversed tonight. If that produces a gcj that
> > works correctly on the above program I will reverse the patch and figure
> > out later what particular part of the patch caused it.
>
> I'm not sure if it worth reversing; I don't see a failure on sparc, i386
> or alpha.
Sorry, I just reverted it a couple of minutes ago. I really need it to
work on powerpc because that is were I run my daily Mauve tests (sent to
gcc-testresults daily). And nobody reported success with libjava on
powerpc the last couple of weeks so I guess it is broken for everybody
(or nobody ever tests powerpc...) Hopefully I figure out what is the
real problem this weekend then I will reapply. The gnu.crypto hackers
also need this so it is not that I don't want this to work.
Cheers,
Mark