On Wed, 18 Sep 2013 17:39:46 +0100 David Chisnall wrote: > On 18 Sep 2013, at 16:26, Tijl Coosemans <tijl_at_freebsd.org> wrote: >> On Tue, 17 Sep 2013 21:04:14 -0400 Jung-uk Kim wrote: >>> On 2013-09-17 13:24:41 -0400, Jung-uk Kim wrote: >>>> I am still working on libc++ issues but it is much more >>>> complicated. :-( >>> >>> I fixed almost everything except for exception handling issues. >>> Unfortunately, libc++/libcxxrt's exception handling is not 100% >>> compatible with libstdc++'s and I couldn't find a proper fix. :-( >>> >>> Basically, C++/UNO bridge for LibreOffice/OpenOffice does some clever >>> hacks, somewhat similar to the example on this blog page: >>> >>> http://zbigg.blogspot.com/2009/03/catch-on-g.html >> >> The definition of struct __cxa_exception doesn't match the one in >> /usr/include/c++/v1/cxxabi.h. There's an extra field at the start >> in the __LP64__ case: uintptr_t referenceCount. > > This field is present in newer versions of the ABI spec and is also > there in new versions of libsupc++. It's required for implementing > C++11 dependent exceptions. > > It shouldn't matter for code that doesn't allocate the structure (and > nothing outside of libsupc++ / libcxxrt should be allocating them), > because these structures are always passed around by pointers to their > ends (where the _Unwind_Exception structure lives). There are some pointers to the start such as the caughtExceptions field in struct __cxa_eh_globals and the nextException field in struct __cxa_exception itself.
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC