This is the mail archive of the java@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]

signal hander patch


This patch broke NullPointerExceptions on PowerPC:

2002-03-25  Andrew Haley <aph@cambridge.redhat.com>, Hans Boehm 
<Hans_Boehm@hp.com>

    * configure.in, configure: enable dwarf2-exception-style
    exception handling on IA-64.
    * include/dwarf2-signal.h (MAKE_THROW_FRAME): Add for IA-64.
    (INIT_SEGV, INIT_FPE): Use __libc_sigaction instead of syscall.
    Add FIXME comment.


I'm seeing abort in uw_frame_state_for at unwind-dw2.c:889.

I don't agree with this comment/code:

+// FIXME: We shouldn't be using libc_sigaction here, since it should
+// be glibc private.  But using syscall here would mean translating to
+// the kernel's struct sigaction and argument sequence, which we
+// shouldn't either.  The right solution is to call sigaction and to
+// make sure that we can unwind correctly through the pthread signal
+// wrapper.


Surely, private glibc details are FAR more likely to be a moving target 
than the kernel sigaction syscall stuff. The kernel cannot change this 
interface without breaking glibc, so it is never going to change without 
a very good reason. On the other hand glibc could change their internal 
implementation details at any time.

Further more, is my guess correct that MD_FALLBACK_FRAME_STATE_FOR on 
PowerPC is designed to *only* recognise the kernel signal handling frame 
and thus is not capable of unwinding an extra glibc frame which was not 
compiled with EH info attached?

regards

Bryce.



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