[LLVMdev] compiler-rt libclang_rt.tsan circular dependency?

Ed Maste emaste at freebsd.org
Fri Nov 21 10:28:48 PST 2014


After r220676 COMPILER_RT_HAS_TSAN is enabled on FreeBSD, and the TSan
tests should be run.

This seems to introduce a circular dependency though. I ran cmake like so:

% cmake -GNinja ..
-DCMAKE_C_COMPILER=/tank/emaste/src/llvm/build-nodebug/bin/clang
-DLLVM_CONFIG_PATH=/tank/emaste/src/llvm/build-nodebug/bin/llvm-config

Then the ninja build failed with:

CMake Error at /tank/emaste/src/compiler-rt/build/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure.cmake:17
(message):
  Command failed: 1

  /usr/bin/ld:
  /tank/emaste/src/llvm/build-nodebug/bin/../lib/clang/3.6.0/lib/freebsd/libclang_rt.tsan-x86_64.a:
  No such file: No such file or directory

This comes from lib/tsan/CMakeLists.txt, which wants to build a
TSan-instrumented libcxx:

# Build libcxx instrumented with TSan.
if(TSAN_SUPPORTED_ARCH AND
   COMPILER_RT_HAS_LIBCXX_SOURCES AND
   COMPILER_RT_TEST_COMPILER_ID STREQUAL "Clang")
  set(LIBCXX_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libcxx_tsan)
  add_custom_libcxx(libcxx_tsan ${LIBCXX_PREFIX}
    DEPS ${TSAN_RUNTIME_LIBRARIES}
    CFLAGS -fsanitize=thread)
endif()

Does this need an additional test that libclang_rt.tsan is already
available to Clang?



More information about the llvm-dev mailing list