This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix libjava failure on powerpc64-linux


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]