[compiler-rt] [compiler-rt] [CMake] Add option to disable sanitizer-common builds by default (PR #160962)

Andrew Haberlandt via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 26 15:38:03 PDT 2025


https://github.com/ndrewh created https://github.com/llvm/llvm-project/pull/160962

`LLVM_ENABLE_RUNTIMES` uses the default build target for building `compiler-rt`, which means a bunch of stuff gets built that isn't necessarily depended upon (and wasn't getting built under `LLVM_ENABLE_PROJECTS`).

sanitizer-common is one of the few components that cannot be disabled in the default build with a `COMPILER_RT_BUILD_*` option. This adds that option.

>From 803eb26cfe8dc612686d9d34317aaff274781e22 Mon Sep 17 00:00:00 2001
From: Andrew Haberlandt <ahaberlandt at apple.com>
Date: Fri, 26 Sep 2025 15:32:31 -0700
Subject: [PATCH] [compiler-rt] [CMake] Add option to disable sanitizer-common
 builds by default

`LLVM_ENABLE_RUNTIMES` uses the default build target for building `compiler-rt`,
which means a bunch of stuff gets built that isn't necessarily depended upon
(and wasn't getting built under `LLVM_ENABLE_PROJECTS`).

sanitizer-common is one of the few components that cannot be
disabled in the default build with a COMPILER_RT_BUILD_* option. This adds
that option.
---
 compiler-rt/CMakeLists.txt     | 2 ++
 compiler-rt/lib/CMakeLists.txt | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index 9f8e8334d75ba..06c990ecf1c3c 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -66,6 +66,8 @@ option(COMPILER_RT_DISABLE_AARCH64_FMV "Disable AArch64 Function Multi Versionin
 mark_as_advanced(COMPILER_RT_DISABLE_AARCH64_FMV)
 option(COMPILER_RT_BUILD_SANITIZERS "Build sanitizers" ON)
 mark_as_advanced(COMPILER_RT_BUILD_SANITIZERS)
+option(COMPILER_RT_BUILD_SANITIZER_COMMON "Build sanitizer common library components" ON)
+mark_as_advanced(COMPILER_RT_BUILD_SANITIZER_COMMON)
 option(COMPILER_RT_BUILD_XRAY "Build xray" ON)
 mark_as_advanced(COMPILER_RT_BUILD_XRAY)
 option(COMPILER_RT_BUILD_LIBFUZZER "Build libFuzzer" ON)
diff --git a/compiler-rt/lib/CMakeLists.txt b/compiler-rt/lib/CMakeLists.txt
index e6158ec408895..0bea634b3db54 100644
--- a/compiler-rt/lib/CMakeLists.txt
+++ b/compiler-rt/lib/CMakeLists.txt
@@ -8,7 +8,7 @@ include(SanitizerUtils)
 # sanitizers or xray (or both).
 #
 #TODO: Refactor sanitizer_common into smaller pieces (e.g. flag parsing, utils).
-if (COMPILER_RT_HAS_SANITIZER_COMMON AND
+if (COMPILER_RT_HAS_SANITIZER_COMMON AND COMPILER_RT_BUILD_SANITIZER_COMMON AND
     (COMPILER_RT_BUILD_SANITIZERS OR COMPILER_RT_BUILD_XRAY OR COMPILER_RT_BUILD_MEMPROF OR COMPILER_RT_BUILD_CTX_PROFILE))
   add_subdirectory(sanitizer_common)
 endif()



More information about the llvm-commits mailing list