- Notifications
You must be signed in to change notification settings - Fork 15.1k
Description
Repro (not minimized, from ${llvm_root}/build/release):
$ cmake -S ../../llvm -B . -D'LLVM_ENABLE_PROJECTS=clang;clang-tools-extra;lld;llvm' -D'LLVM_ENABLE_RUNTIMES=compiler-rt;libcxx;libcxxabi;libunwind' -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_BUILD_EXAMPLES=ON -DCOMPILER_RT_BUILD_LIBFUZZER=OFF -DLLVM_ENABLE_LLD=ON -DCMAKE_CXX_FLAGS=-gmlt -DLLVM_CCACHE_BUILD=ON -DLIBCXX_CXX_ABI=libcxxabi -DLLDB_ENFORCE_STRICT_TEST_REQUIREMENTS=ON -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ $ ninja check-compiler-rt This fails many tests with /usr/bin/ld: cannot find /usr/local/google/home/gbiv/misc/btrfs/llvm/tysan-stuff/build/release/lib/clang/21/lib/x86_64-unknown-linux-gnu/libclang_rt.tysan.a: No such file or directory. Indeed, this file doesn't exist. Partial listing of tests:
TypeSanitizer-x86_64 :: anon-ns.cpp TypeSanitizer-x86_64 :: anon-same-struct.c TypeSanitizer-x86_64 :: anon-struct.c TypeSanitizer-x86_64 :: basic.c TypeSanitizer-x86_64 :: char-memcpy.c TypeSanitizer-x86_64 :: constexpr-subobject.cpp TypeSanitizer-x86_64 :: derrived_default_constructor.cpp TypeSanitizer-x86_64 :: global.c TypeSanitizer-x86_64 :: ignorelist.c TypeSanitizer-x86_64 :: inherited_member.cpp TypeSanitizer-x86_64 :: int-long.c TypeSanitizer-x86_64 :: preprocessor.c TypeSanitizer-x86_64 :: print_stacktrace.c TypeSanitizer-x86_64 :: ptr-float.c TypeSanitizer-x86_64 :: struct-offset-different-base.cpp TypeSanitizer-x86_64 :: struct-offset-multiple-compilation-units.cpp TypeSanitizer-x86_64 :: struct-offset.c TypeSanitizer-x86_64 :: struct.c TypeSanitizer-x86_64 :: union-wr-wr.c Example failing CI builder: https://github.com/llvm/llvm-project/actions/runs/15568239026/job/43837528051
I've tested up through 100a1d0 (~a week ago) and these fail for this reason. Since the failing command was introduced ~13h ago in #142696, I'll propose a revert of that.
From glancing at the CMakeFiles, I suspect there's a subtle misconfiguration there. Specifically, in the compiler-rt/test/tysan/CMakeLists.txt file, I see:
set(TYSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(NOT COMPILER_RT_STANDALONE_BUILD) list(APPEND TYSAN_TEST_DEPS tysan) endif() I suspect that on these builders, COMPILER_RT_STANDALONE_BUILD is true, since the (necessary) tysan dep isn't being added