libjava status on Tru64 UNIX V5.1

Bryce McKinlay bryce@waitaki.otago.ac.nz
Mon Mar 25 17:41:00 GMT 2002


Loren James Rittle wrote:
>>Ideally we'd focus our efforts on making Dwarf-2 exceptions work well
>>for us everywhere. Then we can reserve -fcheck-references for
>>MMU-less platforms, and we don't need to use sjlj exceptions. I think
>>using the latter is problematic because it puts us at odds with the
>>desired C++ default; system integrators will most likely always pick
>>Dwarf-2 over sjlj.
>>>>[Regarding the last point of C++ default/libjava mismatch: How true.]
>>If I have an ELF/DWARF2 platform which detects the exception model as
>`call frame' and has java-signal.h pointing to default-signal.h
>instead of dwarf2-signal.h should my highest priority related to
>libjava be changing this? Not a trick question. Assuming this was a
>major bug in my port's configuration, I started looking at it early
>last week.
>
Yes, you should change it if it can unwind a signal handler. Currently, 
afaik, only ia64/alpha/x86/ppc linux can do that - see the 
MD_FALLBACK_FRAME_STATE_FOR in the gcc/config/... files.
What we need to do is either
1) make C++ able to use different EH models depending on whether it is 
throwing a Java exception or not, so that Java stuff can use SJLJ. In 
the short term this would most likely be the best fix.
or
2) fix platforms where the unwinder currently can't unwind a signal 
handler. This is harder but is the better solution. I'm hoping that 
eventually libunwind can be used by the dwarf2 unwinder to unwind frames 
that it doesn't know about, so you'd only have to implement libunwind 
support for your platform to get this to work. No need to implement 
MD_FALLBACK_FRAME_STATE_FOR for every gcc target.
>Why does Linux/i386 (which uses DWARF2, no?) require a special
>i386-signal.h instead of using the generic dwarf2-signal.h?
>
x86 linux is a special case because it handles division by zero in the 
SIGFPE handler (but not all SIGFPEs are ArithmeticExceptions), thus the 
handler is more complicated. Most other platforms don't even trap 
integer division by zero, so we just emit code to check divides.
regards
Bryce.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /