[Bug bootstrap/50888] Bootstrap failure in libjava against latest git glibc
aph at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 22 18:34:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50888
--- Comment #8 from Andrew Haley <aph at gcc dot gnu.org> 2011-11-22 17:55:51 UTC ---
(In reply to comment #7)
> isspace is actually marked as not throwing, i.e. throw() in C++. In glibc
> 2.15+ it happens to be implemented as throw() inline function which calls
> another function (which is throw() too), the problem is that with
> -fnon-call-exceptions the compiler doesn't know the function pointer is always
> non-NULL and assumes the call instruction might throw on SIGSEGV/SIGILL etc.
> That will always work, but the compiler must assume it doesn't always, thus it
> needs -lsupc++ support with which libjava is not linked.
Thank you, all is now clear. I wonder if it might make sense to fix this
in a more general way than simply not calling isspace(). Perhaps we could
provide a weak __cxa_call_unexpected, or find some way of persuading g++ not
to emit such a call.
More information about the Gcc-bugs
mailing list