This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix libjava failure on powerpc64-linux
- From: Andrew Haley <aph at redhat dot com>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: gcc-patches at gcc dot gnu dot org, David Edelsohn <dje at watson dot ibm dot com>
- Date: Tue, 10 Feb 2004 11:41:34 +0000
- Subject: Fix libjava failure on powerpc64-linux
- References: <20040210113226.GF2555@bubble.modra.org>
Alan Modra writes:
> I finally found out why powerpc64 libjava tests were failing (See
> http://gcc.gnu.org/ml/gcc-patches/2004-01/msg02462.html), and would have
> a lot sooner if the sigaction syscall return value had been checked.
> The powerpc64 linux kernel only provides a sigaction call for 32 bit
> processes, something I wasn't aware of. 64 bit processes are supposed
> to use rt_sigaction, so the syscall didn't manage to install a handler.
>
> gcc/ChangeLog
> * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
> bump retaddr here.
>
> libjava/ChangeLog
> * include/powerpc-signal.h: Revert 2004-01-21 change.
> (INIT_SEGV, INIT_FPE): Provide powerpc64 versions. Check return
> from syscall for ppc32 versions.
>
> Regtested powerpc64-linux. OK mainline and 3.4?
Thanks. What were the libgcj test results?
Can we not use rt_sigaction for both 32- and 64-bit processes?
> I used an illegal instruction to bomb on syscall failure rather than
> an abort, because abort in libjava doesn't do anything fancy, just
> prints "Aborted" and exits. I like sigill because core dumps from a
> sigill give you the reg set at the point of failure, instead of having
> to look back up the call stack, which can be tedious when gdb doesn't
> happen to work too well on your target. Maybe I should use _Jv_abort
> here?
I don't know about this one.
Andrew.