[cfe-dev] libc++ and libc++abi problem with stdexcept on linux
Ben Pope
benpope81 at gmail.com
Tue Jan 28 23:31:38 PST 2014
On 11/01/14 02:20, Howard Hinnant wrote:
> It looks like the __libcpp_nmstr from libcxxabi/src/stdexcept.cpp needs to be copied/substituted in to the libcxx/src/stdexcept.cpp. I haven't had a chance to confirm that with full test suite runs.
The results (from libcxx/test/testit) before and after the modification
look like this:
****************************************************
Results for /home/ben/development/llvm/trunk/libcxx/test:
using clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
with -std=c++11 -stdlib=libc++ -pthread -lc++abi
-I/home/ben/development/llvm/trunk/libcxx/test/support
-I/home/ben/development/llvm/trunk/libcxx/include
-L/home/ben/development/llvm/trunk/libcxx/lib
----------------------------------------------------
sections without tests : 0
sections with failures : 22
sections without failures: 1086
+ ----
total number of sections : 1108
----------------------------------------------------
number of tests failed : 78
number of tests passed : 4565
+ ----
total number of tests : 4643
****************************************************
53 of those failures are locale related (e.g., moneypunct_byname failed
to construct for ru_RU.UTF-8), is this expected?
However, with ASAN, the results look this before the modification:
****************************************************
Results for /home/ben/development/llvm/trunk/libcxx/test:
using clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
with -fsanitize=address -std=c++11 -stdlib=libc++ -pthread -lc++abi
-I/home/ben/development/llvm/trunk/libcxx/test/support
-I/home/ben/development/llvm/trunk/libcxx/include
-L/home/ben/development/llvm/trunk/libcxx/lib
----------------------------------------------------
sections without tests : 0
sections with failures : 75
sections without failures: 1033
+ ----
total number of sections : 1108
----------------------------------------------------
number of tests failed : 203
number of tests passed : 4440
+ ----
total number of tests : 4643
****************************************************
And after:
****************************************************
Results for /home/ben/development/llvm/trunk/libcxx/test:
using clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
with -fsanitize=address -std=c++11 -stdlib=libc++ -pthread -lc++abi
-I/home/ben/development/llvm/trunk/libcxx/test/support
-I/home/ben/development/llvm/trunk/libcxx/include
-L/home/ben/development/llvm/trunk/libcxx/lib
----------------------------------------------------
sections without tests : 0
sections with failures : 46
sections without failures: 1062
+ ----
total number of sections : 1108
----------------------------------------------------
number of tests failed : 123
number of tests passed : 4520
+ ----
total number of tests : 4643
****************************************************
Which is a big improvement.
I'll look into some of the other errors later, but I seem to have 78
errors of either
multiple definition of `operator new(unsigned long)
multiple definition of `operator delete(void*)
When compiling with ASAN turned on, so I'll have to fix that before
analysing further, but I'm seeing these additional errors:
AddressSanitizer: heap-use-after-free on address 0x60400000dfe8
And these are probably intentional:
AddressSanitizer failed to allocate 0xffffffffffffffff bytes
Ben
More information about the cfe-dev
mailing list