svn commit: r273382 - head/contrib/libcxxrt
Baptiste Daroussin
bapt at FreeBSD.org
Thu Nov 6 10:42:17 UTC 2014
On Thu, Nov 06, 2014 at 09:36:52AM +0000, David Chisnall wrote:
> On 6 Nov 2014, at 01:04, Rui Paulo <rpaulo at me.com> wrote:
>
> > I don't think the non-temporary fix was ever committed. What's the problem? Is something else defining these methods?
>
> 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] and sizeof(foo) * x overflows. It does this by calling a support function defined 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.
>
> 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 support 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 versioning issues with code compiled against old libc++/libcxxrt and dynamically linked against the new one.
I will backout this change since it is not necessary anymore as well as upstream
the missing parts of the bad_array_new_lenght exception in libcxxrt in the next
couple of days.
regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20141106/f330104a/attachment.sig>
More information about the svn-src-head
mailing list