Re: libreoffice build error

From: David Chisnall <theraven_at_FreeBSD.org>
Date: Wed, 18 Sep 2013 17:39:46 +0100
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:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>> 
>> 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).

David
Received on Wed Sep 18 2013 - 14:40:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC