Files
Raúl MarínandClaude Opus 4.7 47a0302640 Build compiler-rt internally instead of via external cmake
Replace the execute_process() invocation in cmake/build_clang_builtin.cmake
with native add_library() targets, so compiler-rt builds the same way as
LLVM (mirroring contrib/llvm-project-cmake/).

contrib/compiler-rt-cmake/ now produces clang_rt_builtins, asan/asan_static/
asan_cxx, msan/msan_cxx, tsan/tsan_cxx, ubsan_standalone/ubsan_standalone_cxx,
and xray as regular cmake targets that are added to global-libs (so ninja
sees them as proper build-graph dependencies of every executable, instead of
relying on incidental scheduling order).

Source lists are extracted from the upstream lib/<X>/CMakeLists.txt files
with provenance comments. Build flags mirror SANITIZER_COMMON_CFLAGS plus
each component's per-target additions (-fPIE/-ffreestanding for msan,
-msse4.2 for tsan, -frtti for ubsan_cxx, etc.).

Verified by full builds in fresh folders for release+xray and SANITIZE in
{address, memory, thread, undefined}: all binaries link, run, and contain
the expected runtime symbols.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-04-28 08:09:27 +00:00

14 lines
475 B
CMake

# Source: contrib/llvm-project/compiler-rt/lib/lsan/CMakeLists.txt
# - LSAN_COMMON_SOURCES is the upstream variable name.
#
# The "main" lsan runtime (lsan.cpp, lsan_allocator.cpp, ...) is *not* built —
# ClickHouse only enables LSan as part of ASan, where these helpers are
# already pulled into clang_rt.asan via the LSAN common helpers below.
set(LSAN_COMMON_SOURCES
lsan_common.cpp
lsan_common_fuchsia.cpp
lsan_common_linux.cpp
lsan_common_mac.cpp
)