Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Nov 2014 11:42:11 +0100
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Rui Paulo <rpaulo@me.com>
Subject:   Re: svn commit: r273382 - head/contrib/libcxxrt
Message-ID:  <20141106104211.GN10388@ivaldir.etoilebsd.net>
In-Reply-To: <9E81312A-E615-49C2-84C5-D4CF9EA96232@FreeBSD.org>
References:  <201410211252.s9LCq2R5053286@svn.freebsd.org> <7819250D-0FE0-44E6-86DA-718AEA2B261C@me.com> <9E81312A-E615-49C2-84C5-D4CF9EA96232@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--AKkMM/tm2Mk6Yn/s
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 06, 2014 at 09:36:52AM +0000, David Chisnall wrote:
> On 6 Nov 2014, at 01:04, Rui Paulo <rpaulo@me.com> wrote:
>=20
> > I don't think the non-temporary fix was ever committed.  What's the pro=
blem?  Is something else defining these methods?
>=20
> Yes, they're defined by libc++ too.  The problem is that gcc 4.9 wants to=
 be able to throw bad_array_new_length exceptions when you do new foo[x] an=
d sizeof(foo) * x overflows.  It does this by calling a support function de=
fined in the C++ runtime, but that means that the C++ runtime must have the=
 bad_array_new_length class defined there too.  Having the methods on those=
 classes defined in libcxxrt and libc++ breaks things.
>=20
> The correct fix was to move a #endif in libc++ so that it didn't compile =
those functions.  There was some discussion about whether we needed to supp=
ort the case that old libc++ and new libcxxrt were used, but it's probably =
not required.  Bapt was going to check whether there were any symbol versio=
ning issues with code compiled against old libc++/libcxxrt and dynamically =
linked against the new one. =20

I will backout this change since it is not necessary anymore as well as ups=
tream
the missing parts of the bad_array_new_lenght exception in libcxxrt in the =
next
couple of days.

regards,
Bapt

--AKkMM/tm2Mk6Yn/s
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlRbUIMACgkQ8kTtMUmk6Ewy+wCgrh73wg8kAtG/swlSPyDK7DAt
MycAn0QZGzjTSeI64825F3krdgNNQxld
=ClBJ
-----END PGP SIGNATURE-----

--AKkMM/tm2Mk6Yn/s--



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