[compiler-rt] [ASan][cmake] Exclude .so build when building for WASI by default (PR #139042)

Yuta Saito via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 16 16:46:22 PDT 2025


https://github.com/kateinoigakukun updated https://github.com/llvm/llvm-project/pull/139042

>From 3e1d16d2d2cfa4726f3bcf166739d89275ef2a64 Mon Sep 17 00:00:00 2001
From: Yuta Saito <kateinoigakukun at gmail.com>
Date: Tue, 17 Jun 2025 08:40:27 +0900
Subject: [PATCH] [compiler-rt][cmake] Add option to control shared library
 builds

This patch introduces a new option `COMPILER_RT_BUILD_SHARED_LIBS` to
control whether shared libraries are built for runtime libraries in
compiler-rt. By default, this option is set to ON, allowing shared
libraries to be built. If set to OFF, shared libraries will not be
built, which can be useful for projects that do not require them
or when building for environments where shared libraries are still
not yet matured, such as WebAssembly/WASI.
---
 compiler-rt/CMakeLists.txt                    | 7 +++++++
 compiler-rt/cmake/Modules/AddCompilerRT.cmake | 4 ++++
 2 files changed, 11 insertions(+)

diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index 9f8e8334d75ba..40f1ebb239997 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -91,6 +91,13 @@ mark_as_advanced(COMPILER_RT_SCUDO_STANDALONE_BUILD_SHARED)
 option(COMPILER_RT_BUILD_SCUDO_STANDALONE_WITH_LLVM_LIBC "Build SCUDO standalone with LLVM's libc headers" OFF)
 mark_as_advanced(COMPILER_RT_BUILD_SCUDO_STANDALONE_WITH_LLVM_LIBC)
 
+set(COMPILER_RT_BUILD_SHARED_LIBS_DEFAULT ON)
+if(CMAKE_SYSTEM_NAME STREQUAL "WASI")
+  set(COMPILER_RT_BUILD_SHARED_LIBS_DEFAULT OFF)
+endif()
+option(COMPILER_RT_BUILD_SHARED_LIBS "Build shared libraries" ${COMPILER_RT_BUILD_SHARED_LIBS_DEFAULT})
+mark_as_advanced(COMPILER_RT_BUILD_SHARED_LIBS)
+
 if(FUCHSIA)
   set(COMPILER_RT_HWASAN_WITH_INTERCEPTORS_DEFAULT OFF)
 else()
diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
index d346b0ec01b03..06822d79019db 100644
--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
@@ -169,6 +169,10 @@ function(add_compiler_rt_runtime name type)
             "type argument must be OBJECT, STATIC, SHARED or MODULE")
     return()
   endif()
+  if(type STREQUAL "SHARED" AND NOT COMPILER_RT_BUILD_SHARED_LIBS)
+    message(STATUS "Skipping shared library ${name} because COMPILER_RT_BUILD_SHARED_LIBS is OFF")
+    return()
+  endif()
   cmake_parse_arguments(LIB
     ""
     "PARENT_TARGET"



More information about the llvm-commits mailing list