Message ID | 6533D5F3-D5AE-475F-A309-625BC7ACBF48@sandoe-acoustics.co.uk |
---|---|
State | New |
Headers | show |
On Wed, Aug 18, 2010 at 11:30 AM, IainS <developer@sandoe-acoustics.co.uk> wrote: > Hi > IIUC, the following should be the 'correct' approach. > OK for trunk? (with an appropriate changelog, of course). > Iain That doens't match what the comment says. What is it the correct approach for? > Index: libjava/classpath/configure.ac > =================================================================== > --- libjava/classpath/configure.ac (revision 163330) > +++ libjava/classpath/configure.ac (working copy) > @@ -563,7 +563,7 @@ if test "x${COMPILE_JNI}" = xyes; then > dnl CFLAGS that are used for all native code. We want to compile > dnl everything with unwinder data so that backtrace() will always > dnl work. > - EXTRA_CFLAGS='-fexceptions -fasynchronous-unwind-tables' > + EXTRA_CFLAGS='-fexceptions -fnon-call-exceptions' > AC_SUBST(EXTRA_CFLAGS) > > dnl Strict warning flags which not every module uses. > >
On 08/18/2010 10:30 AM, IainS wrote: > IIUC, the following should be the 'correct' approach. > OK for trunk? (with an appropriate changelog, of course). What's the point of this change? See http://developer.classpath.org/pipermail/classpath-patches/2008-June/006116.html Andrew.
On Wed, Aug 18, 2010 at 11:40:15AM +0200, Richard Guenther wrote: > On Wed, Aug 18, 2010 at 11:30 AM, IainS > <developer@sandoe-acoustics.co.uk> wrote: > > IIUC, the following should be the 'correct' approach. > > OK for trunk? (with an appropriate changelog, of course). > > Iain > > That doens't match what the comment says. What is it the correct > approach for? Yeah, I think -fa-u-t is right, otherwise you can't backtrace through signal handlers. If Darwin unwinder is lame enough that it can't grok it, let it change just on Darwin and don't punish sane OSes. > > --- libjava/classpath/configure.ac (revision 163330) > > +++ libjava/classpath/configure.ac (working copy) > > @@ -563,7 +563,7 @@ if test "x${COMPILE_JNI}" = xyes; then > > dnl CFLAGS that are used for all native code. We want to compile > > dnl everything with unwinder data so that backtrace() will always > > dnl work. > > - EXTRA_CFLAGS='-fexceptions -fasynchronous-unwind-tables' > > + EXTRA_CFLAGS='-fexceptions -fnon-call-exceptions' > > AC_SUBST(EXTRA_CFLAGS) > > > > dnl Strict warning flags which not every module uses. > > > > Jakub
On 18 Aug 2010, at 10:40, Richard Guenther wrote: > On Wed, Aug 18, 2010 at 11:30 AM, IainS > <developer@sandoe-acoustics.co.uk> wrote: >> Hi >> IIUC, the following should be the 'correct' approach. >> OK for trunk? (with an appropriate changelog, of course). >> Iain > > That doens't match what the comment says. What is it the correct > approach for? true, I missed adjusting the comment. I think that the point is that the underlying requirement is to handle non-call-exceptions, and that the method by which that is achieved should be left to the target to decide. [at present -fasynchronous-unwind-tables is set unconditionally by - fnon-call-exception in any case (although I'm not sure that's correct in all cases)] >> Index: libjava/classpath/configure.ac >> =================================================================== >> --- libjava/classpath/configure.ac (revision 163330) >> +++ libjava/classpath/configure.ac (working copy) >> @@ -563,7 +563,7 @@ if test "x${COMPILE_JNI}" = xyes; then >> dnl CFLAGS that are used for all native code. We want to compile >> dnl everything with unwinder data so that backtrace() will always >> dnl work. >> - EXTRA_CFLAGS='-fexceptions -fasynchronous-unwind-tables' >> + EXTRA_CFLAGS='-fexceptions -fnon-call-exceptions' >> AC_SUBST(EXTRA_CFLAGS) >> >> dnl Strict warning flags which not every module uses. >> >>
On 08/18/2010 02:45 AM, Jakub Jelinek wrote: > On Wed, Aug 18, 2010 at 11:40:15AM +0200, Richard Guenther wrote: >> On Wed, Aug 18, 2010 at 11:30 AM, IainS >> <developer@sandoe-acoustics.co.uk> wrote: >>> IIUC, the following should be the 'correct' approach. >>> OK for trunk? (with an appropriate changelog, of course). >>> Iain >> >> That doens't match what the comment says. What is it the correct >> approach for? > > Yeah, I think -fa-u-t is right, otherwise you can't backtrace through > signal handlers. If Darwin unwinder is lame enough that it can't grok it, > let it change just on Darwin and don't punish sane OSes. Except that the signal handlers that java wants to backtrace through are all synchronous. They'll never occur in the epilogue of some function, for instance. Otherwise libjava would have failed to work for years and years. r~
On Aug 18, 2010, at 2:45 AM, Jakub Jelinek wrote: > Yeah, I think -fa-u-t is right, otherwise you can't backtrace through > signal handlers. If Darwin unwinder is lame enough that it can't grok it, > let it change just on Darwin and don't punish sane OSes. Walking the darwin signal handers works just fine... I can't recall exactly how well the async signals work v the sync signals.
Index: libjava/classpath/configure.ac =================================================================== --- libjava/classpath/configure.ac (revision 163330) +++ libjava/classpath/configure.ac (working copy) @@ -563,7 +563,7 @@ if test "x${COMPILE_JNI}" = xyes; then dnl CFLAGS that are used for all native code. We want to compile dnl everything with unwinder data so that backtrace() will always dnl work. - EXTRA_CFLAGS='-fexceptions -fasynchronous-unwind-tables' + EXTRA_CFLAGS='-fexceptions -fnon-call-exceptions' AC_SUBST(EXTRA_CFLAGS) dnl Strict warning flags which not every module uses.