On 6 Nov 2014, at 01:04, Rui Paulo <[email protected]> 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.  

David

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to