This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java 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]

Re: Patch: Fix signal handlers under indirect-dispatch on MIPS


David Daney writes:
 > Andrew Haley wrote:
 > > David Daney writes:
 > >  > For some (as yet unknown) reason on MIPS with -findirect-dispatch, the 
 > >  > SIGSEGV and SIGFPE signal handlers were not being installed properly. 
 > >  > This caused the failure of any test case that triggered an 
 > >  > ArithmeticException or NullPointerException via the signal handling 
 > >  > mechanism.
 > > 
 > > Perhaps the shape of your struct kernel_sigaction was wrong.
 > > 
 > 
 > I don't think so.  It has been working well without -findirect-dispatch 
 > for several years on both 2.4 and 2.6 kernels.  The structures in the 
 > kernel source match what in in include/mips-signal.h

Truly weird, then.  Unless someone else after you is grabbing the signal...

 > >  > The fix is to call libc's sigaction function instead of trying to trick 
 > >  > libc by doing a direct system call to the kernel.  Since the MIPS port 
 > >  > does not need to patch-up and restart any faulting divide instructions, 
 > >  > the syscall trick is not needed.  This has the added benefit of slightly 
 > >  > simplifying the code.
 > >  > 
 > >  > I guess it is not nice to trick glibc...
 > > 
 > > The other reason I did this with a direct syscall rather than a libc
 > > call was that libc didn't used to be compiled with unwind information,
 > > so it wasn't possible to unwind through its handlers.
 > > 
 > 
 > Due to bugs in glibc-2.2.x the current libgcj will not reliably run 
 > unless you are using glibc-2.3 and later.  Since it has the unwind 
 > information this patch should be safe.
 > 
 > I am still looking for that official OK.

Your patch is officially OK.

Andrew.


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