Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Sep 2013 20:31:45 +0200
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        Baptiste Daroussin <bapt@FreeBSD.org>, Shawn Webb <lattera@gmail.com>, "S.N.Grigoriev" <serguey-grigoriev@yandex.ru>, FreeBSD-current <freebsd-current@FreeBSD.org>, "O. Hartmann" <ohartman@zedat.fu-berlin.de>, Jung-uk Kim <jkim@FreeBSD.org>
Subject:   Re: libreoffice build error
Message-ID:  <20130918203145.3e953edd@kalimero.tijl.coosemans.org>
In-Reply-To: <95159E17-E700-464F-BBEE-C7C97355B8EB@FreeBSD.org>
References:  <104781379415439@web14h.yandex.ru> <20130917162045.5b0fc356@thor.walstatt.dyndns.org> <20130917154914.GD31894@ithaqua.etoilebsd.net> <CADt0fhywbyC9y4MGTZ0gkRgFTLRT0MtEyP3_eHVgqF_uMXH2tQ@mail.gmail.com> <20130917155245.GE31894@ithaqua.etoilebsd.net> <52389059.8000200@FreeBSD.org> <5238FC0E.9090004@FreeBSD.org> <20130918172615.42270918@kalimero.tijl.coosemans.org> <95159E17-E700-464F-BBEE-C7C97355B8EB@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/zI+SGaxelS2t5zH9YA=R3U.
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 18 Sep 2013 17:39:46 +0100 David Chisnall wrote:
> On 18 Sep 2013, at 16:26, Tijl Coosemans <tijl@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. :-(
>>>=20
>>> 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. :-(
>>>=20
>>> Basically, C++/UNO bridge for LibreOffice/OpenOffice does some clever
>>> hacks, somewhat similar to the example on this blog page:
>>>=20
>>> http://zbigg.blogspot.com/2009/03/catch-on-g.html
>>=20
>> 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.
>=20
> 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.
>=20
> 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.

--Sig_/zI+SGaxelS2t5zH9YA=R3U.
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.21 (FreeBSD)

iF4EAREIAAYFAlI58ZYACgkQfoCS2CCgtiutEgD+JvshawjJoRGKAdzY6nhBXsqA
2IpfHvaJJnwHyIbjLlgA/0+oDFj16GaonJdnHigWgeUJy+J6SOGEZA7vS+thxPkR
=12CJ
-----END PGP SIGNATURE-----

--Sig_/zI+SGaxelS2t5zH9YA=R3U.--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130918203145.3e953edd>