-
Notifications
You must be signed in to change notification settings - Fork 15.4k
Description
| Bugzilla Link | 50534 |
| Resolution | FIXED |
| Resolved on | Jun 29, 2021 18:04 |
| Version | unspecified |
| OS | Linux |
| CC | @ldionne,@mclow |
| Fixed by commit(s) | b648c61 |
Extended Description
Starting with commit 31e8203, building libc++ with -DLIBCXX_ENABLE_ASSERTIONS=on no longer works. ninja check-cxx fails with 1000+ errors:
Failed Tests (1207):
libc++ :: libcxx/containers/sequences/vector/asan_throw.pass.cpp
libc++ :: libcxx/containers/sequences/vector/const_value_type.pass.cpp
libc++ :: libcxx/containers/sequences/vector/exception_safety_exceptions_disabled.pass.cpp
libc++ :: libcxx/containers/sequences/vector/robust_against_adl.pass.cpp
libc++ :: libcxx/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
libc++ :: libcxx/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
libc++ :: libcxx/fuzzing/make_heap.pass.cpp
libc++ :: libcxx/fuzzing/nth_element.pass.cpp
libc++ :: libcxx/fuzzing/partial_sort.pass.cpp
libc++ :: libcxx/fuzzing/partial_sort_copy.pass.cpp
libc++ :: libcxx/fuzzing/partition.pass.cpp
libc++ :: libcxx/fuzzing/partition_copy.pass.cpp
.
.
libc++ :: std/utilities/template.bitset/bitset.members/test.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.members/to_string.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.operators/op_and.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.operators/op_not.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.operators/op_or.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.operators/stream_in.pass.cpp
libc++ :: std/utilities/template.bitset/bitset.operators/stream_out.pass.cpp
libc++ :: std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp
libc++ :: std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp
libc++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp
libc++ :: std/utilities/utility/exchange/exchange.pass.cpp
libc++ :: std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
libc++ :: std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
libc++ :: support/test.support/make_string_header.pass.cpp
Testing Time: 225.48s
Unsupported : 214
Passed : 5175
Expectedly Failed: 49
Failed : 1207
FAILED: projects/libcxx/test/CMakeFiles/check-cxx
The failures are caused by link-time undefined reference errors like this one:
"/usr/bin/ld" -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /home/bryanpkc/llvm/main/build/projects/libcxx/projects/libcxx/test/std/utilities/variant/variant.variant/variant.assign/Output/copy.pass.cpp.dir/t.tmp.exe /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -L/home/bryanpkc/llvm/main/build/projects/libcxx/./lib -L/home/bryanpkc/llvm/main/build/projects/libcxx/./lib -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/home/bryanpkc/llvm/main/install/bin/../lib -L/lib -L/usr/lib /tmp/copy-35c74a.o -lc++experimental -rpath /home/bryanpkc/llvm/main/build/projects/libcxx/./lib -rpath /home/bryanpkc/llvm/main/build/projects/libcxx/./lib -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -latomic /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o
/tmp/copy-35c74a.o: In function void std::__1::__variant_detail::__assignment<std::__1::__variant_detail::__traits<int, MakeEmptyT, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::__assign_alt<2ul, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::__variant_detail::__alt<2ul, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)': copy.pass.cpp:(.text._ZNSt3__116__variant_detail12__assignmentINS0_8__traitsIJi10MakeEmptyTNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE12__assign_altILm2ES9_RKS9_EEvRNS0_5__altIXT_ET0_EEOT1_[_ZNSt3__116__variant_detail12__assignmentINS0_8__traitsIJi10MakeEmptyTNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEEE12__assign_altILm2ES9_RKS9_EEvRNS0_5__altIXT_ET0_EEOT1_]+0x3c): undefined reference to std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::operator=(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)'
I can reproduce this on x86_64 Ubuntu 18.04 as well as aarch64 CentOS 7.7.