libreoffice build error

Tijl Coosemans tijl at FreeBSD.org
Wed Sep 18 18:31:57 UTC 2013


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20130918/8e268b2f/attachment.sig>


More information about the freebsd-current mailing list