Skip to content

Conversation

@vitalybuka
Copy link
Collaborator

@llvmbot llvmbot added compiler-rt compiler-rt:cfi Control Flow Integrity compiler-rt:ubsan Undefined behavior sanitizer compiler-rt:scudo Scudo Hardened Allocator xray compiler-rt:lsan Leak sanitizer compiler-rt:sanitizer labels Jul 10, 2024
@vitalybuka vitalybuka merged commit 145ae81 into main Jul 10, 2024
@vitalybuka vitalybuka deleted the revert-98240-users/vitalybuka/spr/compiler-rt-remove-redundant-compiler_rt_has_san-checks branch July 10, 2024 20:30
@llvmbot
Copy link
Member

llvmbot commented Jul 10, 2024

@llvm/pr-subscribers-compiler-rt-sanitizer

@llvm/pr-subscribers-xray

Author: Vitaly Buka (vitalybuka)

Changes

Reverts llvm/llvm-project#98240

https://lab.llvm.org/buildbot/#/builders/109/builds/816


Patch is 31.60 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/98380.diff

14 Files Affected:

  • (modified) compiler-rt/lib/CMakeLists.txt (+2-2)
  • (modified) compiler-rt/lib/gwp_asan/CMakeLists.txt (+39-37)
  • (modified) compiler-rt/lib/lsan/CMakeLists.txt (+35-33)
  • (modified) compiler-rt/lib/nsan/CMakeLists.txt (+25-23)
  • (modified) compiler-rt/lib/scudo/standalone/CMakeLists.txt (+48-46)
  • (modified) compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt (+20-18)
  • (modified) compiler-rt/lib/ubsan/CMakeLists.txt (+108-104)
  • (modified) compiler-rt/lib/ubsan_minimal/CMakeLists.txt (+28-26)
  • (modified) compiler-rt/test/cfi/CMakeLists.txt (+3-1)
  • (modified) compiler-rt/test/gwp_asan/CMakeLists.txt (+2-2)
  • (modified) compiler-rt/test/orc/CMakeLists.txt (+1-1)
  • (modified) compiler-rt/test/rtsan/CMakeLists.txt (+13-11)
  • (modified) compiler-rt/test/scudo/standalone/CMakeLists.txt (+1-1)
  • (modified) compiler-rt/test/xray/CMakeLists.txt (+3-2)
diff --git a/compiler-rt/lib/CMakeLists.txt b/compiler-rt/lib/CMakeLists.txt
index 73a2ee46291ee..f9e96563b8809 100644
--- a/compiler-rt/lib/CMakeLists.txt
+++ b/compiler-rt/lib/CMakeLists.txt
@@ -47,11 +47,11 @@ if(COMPILER_RT_BUILD_SANITIZERS)
   endforeach()
 endif()
 
-if(COMPILER_RT_BUILD_PROFILE)
+if(COMPILER_RT_BUILD_PROFILE AND COMPILER_RT_HAS_PROFILE)
   compiler_rt_build_runtime(profile)
 endif()
 
-if(COMPILER_RT_BUILD_CTX_PROFILE)
+if(COMPILER_RT_BUILD_CTX_PROFILE AND COMPILER_RT_HAS_CTX_PROFILE)
   compiler_rt_build_runtime(ctx_profile)
 endif()
 
diff --git a/compiler-rt/lib/gwp_asan/CMakeLists.txt b/compiler-rt/lib/gwp_asan/CMakeLists.txt
index fdb6a95fe1404..bb5b2902f99db 100644
--- a/compiler-rt/lib/gwp_asan/CMakeLists.txt
+++ b/compiler-rt/lib/gwp_asan/CMakeLists.txt
@@ -65,46 +65,48 @@ set(GWP_ASAN_SEGV_HANDLER_HEADERS
 set(GWP_ASAN_OPTIONS_PARSER_CFLAGS
     ${GWP_ASAN_CFLAGS})
 
-foreach(arch ${GWP_ASAN_SUPPORTED_ARCH})
-  add_compiler_rt_runtime(
-    clang_rt.gwp_asan
-    STATIC
-    ARCHS ${arch}
-    SOURCES ${GWP_ASAN_SOURCES}
-    ADDITIONAL_HEADERS ${GWP_ASAN_HEADERS}
-    CFLAGS ${GWP_ASAN_CFLAGS}
-    PARENT_TARGET gwp_asan
-  )
-endforeach()
+if (COMPILER_RT_HAS_GWP_ASAN)
+  foreach(arch ${GWP_ASAN_SUPPORTED_ARCH})
+    add_compiler_rt_runtime(
+      clang_rt.gwp_asan
+      STATIC
+      ARCHS ${arch}
+      SOURCES ${GWP_ASAN_SOURCES}
+      ADDITIONAL_HEADERS ${GWP_ASAN_HEADERS}
+      CFLAGS ${GWP_ASAN_CFLAGS}
+      PARENT_TARGET gwp_asan
+    )
+  endforeach()
 
-add_compiler_rt_object_libraries(RTGwpAsan
-    ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
-    SOURCES ${GWP_ASAN_SOURCES}
-    ADDITIONAL_HEADERS ${GWP_ASAN_HEADERS}
-    CFLAGS ${GWP_ASAN_CFLAGS})
+  add_compiler_rt_object_libraries(RTGwpAsan
+      ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
+      SOURCES ${GWP_ASAN_SOURCES}
+      ADDITIONAL_HEADERS ${GWP_ASAN_HEADERS}
+      CFLAGS ${GWP_ASAN_CFLAGS})
 
-add_compiler_rt_object_libraries(RTGwpAsanOptionsParser
-    ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
-    SOURCES ${GWP_ASAN_OPTIONS_PARSER_SOURCES}
-    ADDITIONAL_HEADERS ${GWP_ASAN_OPTIONS_PARSER_HEADERS}
-    CFLAGS ${GWP_ASAN_OPTIONS_PARSER_CFLAGS})
+  add_compiler_rt_object_libraries(RTGwpAsanOptionsParser
+      ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
+      SOURCES ${GWP_ASAN_OPTIONS_PARSER_SOURCES}
+      ADDITIONAL_HEADERS ${GWP_ASAN_OPTIONS_PARSER_HEADERS}
+      CFLAGS ${GWP_ASAN_OPTIONS_PARSER_CFLAGS})
 
-# As above, build the pre-implemented optional backtrace support libraries.
-add_compiler_rt_object_libraries(RTGwpAsanBacktraceLibc
-    ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
-    SOURCES optional/backtrace_linux_libc.cpp
-    ADDITIONAL_HEADERS ${GWP_ASAN_BACKTRACE_HEADERS}
-    CFLAGS ${GWP_ASAN_CFLAGS})
-add_compiler_rt_object_libraries(RTGwpAsanSegvHandler
-    ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
-    SOURCES optional/segv_handler_posix.cpp
-    ADDITIONAL_HEADERS ${GWP_ASAN_SEGV_HANDLER_HEADERS}
-    CFLAGS ${GWP_ASAN_CFLAGS})
-add_compiler_rt_object_libraries(RTGwpAsanBacktraceSanitizerCommon
-    ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
-    SOURCES optional/backtrace_sanitizer_common.cpp
-    ADDITIONAL_HEADERS ${GWP_ASAN_BACKTRACE_HEADERS}
-    CFLAGS ${GWP_ASAN_CFLAGS} ${SANITIZER_COMMON_CFLAGS})
+  # As above, build the pre-implemented optional backtrace support libraries.
+  add_compiler_rt_object_libraries(RTGwpAsanBacktraceLibc
+      ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
+      SOURCES optional/backtrace_linux_libc.cpp
+      ADDITIONAL_HEADERS ${GWP_ASAN_BACKTRACE_HEADERS}
+      CFLAGS ${GWP_ASAN_CFLAGS})
+  add_compiler_rt_object_libraries(RTGwpAsanSegvHandler
+      ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
+      SOURCES optional/segv_handler_posix.cpp
+      ADDITIONAL_HEADERS ${GWP_ASAN_SEGV_HANDLER_HEADERS}
+      CFLAGS ${GWP_ASAN_CFLAGS})
+  add_compiler_rt_object_libraries(RTGwpAsanBacktraceSanitizerCommon
+      ARCHS ${GWP_ASAN_SUPPORTED_ARCH}
+      SOURCES optional/backtrace_sanitizer_common.cpp
+      ADDITIONAL_HEADERS ${GWP_ASAN_BACKTRACE_HEADERS}
+      CFLAGS ${GWP_ASAN_CFLAGS} ${SANITIZER_COMMON_CFLAGS})
+endif()
 
 if(COMPILER_RT_INCLUDE_TESTS)
   add_subdirectory(tests)
diff --git a/compiler-rt/lib/lsan/CMakeLists.txt b/compiler-rt/lib/lsan/CMakeLists.txt
index c7bb6449982c2..8e9861cd6b7c0 100644
--- a/compiler-rt/lib/lsan/CMakeLists.txt
+++ b/compiler-rt/lib/lsan/CMakeLists.txt
@@ -43,44 +43,46 @@ add_compiler_rt_object_libraries(RTLSanCommon
     ADDITIONAL_HEADERS ${LSAN_HEADERS}
     CFLAGS ${LSAN_CFLAGS})
 
-add_compiler_rt_component(lsan)
-if(APPLE)
-  set(LSAN_LINK_LIBS ${SANITIZER_COMMON_LINK_LIBS})
+if(COMPILER_RT_HAS_LSAN)
+  add_compiler_rt_component(lsan)
+  if(APPLE)
+    set(LSAN_LINK_LIBS ${SANITIZER_COMMON_LINK_LIBS})
 
-  add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS)
-  add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
+    add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS)
+    add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
 
-  add_compiler_rt_runtime(clang_rt.lsan
-    SHARED
-    OS ${LSAN_SUPPORTED_OS}
-    ARCHS ${LSAN_SUPPORTED_ARCH}
-    SOURCES ${LSAN_SOURCES}
-    ADDITIONAL_HEADERS ${LSAN_HEADERS}
-    OBJECT_LIBS RTLSanCommon
-                RTInterception
-                RTSanitizerCommon
-                RTSanitizerCommonLibc
-                RTSanitizerCommonCoverage
-                RTSanitizerCommonSymbolizer
-    CFLAGS ${LSAN_CFLAGS}
-    LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS} ${WEAK_SYMBOL_LINK_FLAGS}
-    LINK_LIBS ${LSAN_LINK_LIBS}
-    PARENT_TARGET lsan)
-else()
-  foreach(arch ${LSAN_SUPPORTED_ARCH})
     add_compiler_rt_runtime(clang_rt.lsan
-      STATIC
-      ARCHS ${arch}
+      SHARED
+      OS ${LSAN_SUPPORTED_OS}
+      ARCHS ${LSAN_SUPPORTED_ARCH}
       SOURCES ${LSAN_SOURCES}
-              $<TARGET_OBJECTS:RTInterception.${arch}>
-              $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
-              $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
-              $<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
-              $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
-              $<TARGET_OBJECTS:RTSanitizerCommonSymbolizerInternal.${arch}>
-              $<TARGET_OBJECTS:RTLSanCommon.${arch}>
       ADDITIONAL_HEADERS ${LSAN_HEADERS}
+      OBJECT_LIBS RTLSanCommon
+                  RTInterception
+                  RTSanitizerCommon
+                  RTSanitizerCommonLibc
+                  RTSanitizerCommonCoverage
+                  RTSanitizerCommonSymbolizer
       CFLAGS ${LSAN_CFLAGS}
+      LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS} ${WEAK_SYMBOL_LINK_FLAGS}
+      LINK_LIBS ${LSAN_LINK_LIBS}
       PARENT_TARGET lsan)
-  endforeach()
+  else()
+    foreach(arch ${LSAN_SUPPORTED_ARCH})
+      add_compiler_rt_runtime(clang_rt.lsan
+        STATIC
+        ARCHS ${arch}
+        SOURCES ${LSAN_SOURCES}
+                $<TARGET_OBJECTS:RTInterception.${arch}>
+                $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
+                $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+                $<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
+                $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
+                $<TARGET_OBJECTS:RTSanitizerCommonSymbolizerInternal.${arch}>
+                $<TARGET_OBJECTS:RTLSanCommon.${arch}>
+        ADDITIONAL_HEADERS ${LSAN_HEADERS}
+        CFLAGS ${LSAN_CFLAGS}
+        PARENT_TARGET lsan)
+    endforeach()
+  endif()
 endif()
diff --git a/compiler-rt/lib/nsan/CMakeLists.txt b/compiler-rt/lib/nsan/CMakeLists.txt
index aef9b651ab2ec..36c7b2b9dfada 100644
--- a/compiler-rt/lib/nsan/CMakeLists.txt
+++ b/compiler-rt/lib/nsan/CMakeLists.txt
@@ -25,29 +25,31 @@ set(NSAN_DYNAMIC_LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS})
 
 set(NSAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})
 
-foreach(arch ${NSAN_SUPPORTED_ARCH})
-  add_compiler_rt_runtime(
-    clang_rt.nsan
-    STATIC
-    ARCHS ${arch}
-    SOURCES ${NSAN_SOURCES}
-            $<TARGET_OBJECTS:RTInterception.${arch}>
-            $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
-            $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
-            $<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
-            $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
-            $<TARGET_OBJECTS:RTUbsan.${arch}>
-    ADDITIONAL_HEADERS ${NSAN_HEADERS}
-    CFLAGS ${NSAN_CFLAGS}
-    PARENT_TARGET nsan
-  )
-endforeach()
-
-add_compiler_rt_object_libraries(RTNsan
-    ARCHS ${NSAN_SUPPORTED_ARCH}
-    SOURCES ${NSAN_SOURCES}
-    ADDITIONAL_HEADERS ${NSAN_HEADERS}
-    CFLAGS ${NSAN_CFLAGS})
+if (COMPILER_RT_HAS_NSAN)
+  foreach(arch ${NSAN_SUPPORTED_ARCH})
+    add_compiler_rt_runtime(
+      clang_rt.nsan
+      STATIC
+      ARCHS ${arch}
+      SOURCES ${NSAN_SOURCES}
+              $<TARGET_OBJECTS:RTInterception.${arch}>
+              $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
+              $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+              $<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
+              $<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
+              $<TARGET_OBJECTS:RTUbsan.${arch}>
+      ADDITIONAL_HEADERS ${NSAN_HEADERS}
+      CFLAGS ${NSAN_CFLAGS}
+      PARENT_TARGET nsan
+    )
+  endforeach()
+
+  add_compiler_rt_object_libraries(RTNsan
+      ARCHS ${NSAN_SUPPORTED_ARCH}
+      SOURCES ${NSAN_SOURCES}
+      ADDITIONAL_HEADERS ${NSAN_HEADERS}
+      CFLAGS ${NSAN_CFLAGS})
+endif()
 
 if(COMPILER_RT_INCLUDE_TESTS)
   add_subdirectory(tests)
diff --git a/compiler-rt/lib/scudo/standalone/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
index 8fc245eb2cf38..6fb4e88de3155 100644
--- a/compiler-rt/lib/scudo/standalone/CMakeLists.txt
+++ b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
@@ -195,58 +195,60 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH MATCHES "mips|mips64|mipsel|mips64el")
   list(APPEND SCUDO_LINK_LIBS atomic)
 endif()
 
-add_compiler_rt_object_libraries(RTScudoStandalone
-  ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-  SOURCES ${SCUDO_SOURCES}
-  ADDITIONAL_HEADERS ${SCUDO_HEADERS}
-  CFLAGS ${SCUDO_CFLAGS}
-  DEPS ${SCUDO_DEPS})
-add_compiler_rt_object_libraries(RTScudoStandaloneCWrappers
-  ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-  SOURCES ${SCUDO_SOURCES_C_WRAPPERS}
-  ADDITIONAL_HEADERS ${SCUDO_HEADERS}
-  CFLAGS ${SCUDO_CFLAGS}
-  DEPS ${SCUDO_DEPS})
-add_compiler_rt_object_libraries(RTScudoStandaloneCxxWrappers
-  ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-  SOURCES ${SCUDO_SOURCES_CXX_WRAPPERS}
-  ADDITIONAL_HEADERS ${SCUDO_HEADERS}
-  CFLAGS ${SCUDO_CFLAGS}
-  DEPS ${SCUDO_DEPS})
-
-add_compiler_rt_runtime(clang_rt.scudo_standalone
-  STATIC
-  ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-  SOURCES ${SCUDO_SOURCES} ${SCUDO_SOURCES_C_WRAPPERS}
-  ADDITIONAL_HEADERS ${SCUDO_HEADERS}
-  CFLAGS ${SCUDO_CFLAGS}
-  DEPS ${SCUDO_DEPS}
-  OBJECT_LIBS ${SCUDO_OBJECT_LIBS}
-  PARENT_TARGET scudo_standalone)
-add_compiler_rt_runtime(clang_rt.scudo_standalone_cxx
-  STATIC
-  ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-  SOURCES ${SCUDO_SOURCES_CXX_WRAPPERS}
-  ADDITIONAL_HEADERS ${SCUDO_HEADERS}
-  CFLAGS ${SCUDO_CFLAGS}
-  DEPS ${SCUDO_DEPS}
-  PARENT_TARGET scudo_standalone)
-
-if(COMPILER_RT_SCUDO_STANDALONE_BUILD_SHARED)
+if(COMPILER_RT_HAS_SCUDO_STANDALONE)
+  add_compiler_rt_object_libraries(RTScudoStandalone
+    ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
+    SOURCES ${SCUDO_SOURCES}
+    ADDITIONAL_HEADERS ${SCUDO_HEADERS}
+    CFLAGS ${SCUDO_CFLAGS}
+    DEPS ${SCUDO_DEPS})
+  add_compiler_rt_object_libraries(RTScudoStandaloneCWrappers
+    ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
+    SOURCES ${SCUDO_SOURCES_C_WRAPPERS}
+    ADDITIONAL_HEADERS ${SCUDO_HEADERS}
+    CFLAGS ${SCUDO_CFLAGS}
+    DEPS ${SCUDO_DEPS})
+  add_compiler_rt_object_libraries(RTScudoStandaloneCxxWrappers
+    ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
+    SOURCES ${SCUDO_SOURCES_CXX_WRAPPERS}
+    ADDITIONAL_HEADERS ${SCUDO_HEADERS}
+    CFLAGS ${SCUDO_CFLAGS}
+    DEPS ${SCUDO_DEPS})
+
   add_compiler_rt_runtime(clang_rt.scudo_standalone
-    SHARED
+    STATIC
     ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
-    SOURCES ${SCUDO_SOURCES} ${SCUDO_SOURCES_C_WRAPPERS} ${SCUDO_SOURCES_CXX_WRAPPERS}
+    SOURCES ${SCUDO_SOURCES} ${SCUDO_SOURCES_C_WRAPPERS}
     ADDITIONAL_HEADERS ${SCUDO_HEADERS}
     CFLAGS ${SCUDO_CFLAGS}
     DEPS ${SCUDO_DEPS}
     OBJECT_LIBS ${SCUDO_OBJECT_LIBS}
-    LINK_FLAGS ${SCUDO_LINK_FLAGS}
-    LINK_LIBS ${SCUDO_LINK_LIBS}
     PARENT_TARGET scudo_standalone)
-endif()
+  add_compiler_rt_runtime(clang_rt.scudo_standalone_cxx
+    STATIC
+    ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
+    SOURCES ${SCUDO_SOURCES_CXX_WRAPPERS}
+    ADDITIONAL_HEADERS ${SCUDO_HEADERS}
+    CFLAGS ${SCUDO_CFLAGS}
+    DEPS ${SCUDO_DEPS}
+    PARENT_TARGET scudo_standalone)
+
+  if(COMPILER_RT_SCUDO_STANDALONE_BUILD_SHARED)
+    add_compiler_rt_runtime(clang_rt.scudo_standalone
+      SHARED
+      ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
+      SOURCES ${SCUDO_SOURCES} ${SCUDO_SOURCES_C_WRAPPERS} ${SCUDO_SOURCES_CXX_WRAPPERS}
+      ADDITIONAL_HEADERS ${SCUDO_HEADERS}
+      CFLAGS ${SCUDO_CFLAGS}
+      DEPS ${SCUDO_DEPS}
+      OBJECT_LIBS ${SCUDO_OBJECT_LIBS}
+      LINK_FLAGS ${SCUDO_LINK_FLAGS}
+      LINK_LIBS ${SCUDO_LINK_LIBS}
+      PARENT_TARGET scudo_standalone)
+  endif()
 
-add_subdirectory(benchmarks)
-if(COMPILER_RT_INCLUDE_TESTS)
-  add_subdirectory(tests)
+  add_subdirectory(benchmarks)
+  if(COMPILER_RT_INCLUDE_TESTS)
+    add_subdirectory(tests)
+  endif()
 endif()
diff --git a/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
index 672cdc0ba655e..1786756fa5ea6 100644
--- a/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
+++ b/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
@@ -66,25 +66,27 @@ macro(add_scudo_unittest testname)
          RTGwpAsan RTGwpAsanBacktraceLibc RTGwpAsanSegvHandler)
   endif()
 
-  foreach(arch ${SCUDO_TEST_ARCH})
-    # Additional runtime objects get added along RTScudoStandalone
-    set(SCUDO_TEST_RTOBJECTS $<TARGET_OBJECTS:RTScudoStandalone.${arch}>)
-    foreach(rtobject ${TEST_ADDITIONAL_RTOBJECTS})
-      list(APPEND SCUDO_TEST_RTOBJECTS $<TARGET_OBJECTS:${rtobject}.${arch}>)
+  if(COMPILER_RT_HAS_SCUDO_STANDALONE)
+    foreach(arch ${SCUDO_TEST_ARCH})
+      # Additional runtime objects get added along RTScudoStandalone
+      set(SCUDO_TEST_RTOBJECTS $<TARGET_OBJECTS:RTScudoStandalone.${arch}>)
+      foreach(rtobject ${TEST_ADDITIONAL_RTOBJECTS})
+        list(APPEND SCUDO_TEST_RTOBJECTS $<TARGET_OBJECTS:${rtobject}.${arch}>)
+      endforeach()
+      # Add the static runtime library made of all the runtime objects
+      set(RUNTIME RT${testname}.${arch})
+      add_library(${RUNTIME} STATIC ${SCUDO_TEST_RTOBJECTS})
+      set(ScudoUnitTestsObjects)
+      generate_compiler_rt_tests(ScudoUnitTestsObjects ScudoUnitTests
+        "${testname}-${arch}-Test" ${arch}
+        SOURCES ${TEST_SOURCES} ${COMPILER_RT_GTEST_SOURCE}
+        COMPILE_DEPS ${SCUDO_TEST_HEADERS}
+        DEPS scudo_standalone
+        RUNTIME ${RUNTIME}
+        CFLAGS ${SCUDO_UNITTEST_CFLAGS}
+        LINK_FLAGS ${SCUDO_UNITTEST_LINK_FLAGS})
     endforeach()
-    # Add the static runtime library made of all the runtime objects
-    set(RUNTIME RT${testname}.${arch})
-    add_library(${RUNTIME} STATIC ${SCUDO_TEST_RTOBJECTS})
-    set(ScudoUnitTestsObjects)
-    generate_compiler_rt_tests(ScudoUnitTestsObjects ScudoUnitTests
-      "${testname}-${arch}-Test" ${arch}
-      SOURCES ${TEST_SOURCES} ${COMPILER_RT_GTEST_SOURCE}
-      COMPILE_DEPS ${SCUDO_TEST_HEADERS}
-      DEPS scudo_standalone
-      RUNTIME ${RUNTIME}
-      CFLAGS ${SCUDO_UNITTEST_CFLAGS}
-      LINK_FLAGS ${SCUDO_UNITTEST_LINK_FLAGS})
-  endforeach()
+  endif()
 endmacro()
 
 set(SCUDO_UNIT_TEST_SOURCES
diff --git a/compiler-rt/lib/ubsan/CMakeLists.txt b/compiler-rt/lib/ubsan/CMakeLists.txt
index a1cfbe93b068d..db0b33f1276ef 100644
--- a/compiler-rt/lib/ubsan/CMakeLists.txt
+++ b/compiler-rt/lib/ubsan/CMakeLists.txt
@@ -92,45 +92,47 @@ if(APPLE)
     ADDITIONAL_HEADERS ${UBSAN_HEADERS}
     CFLAGS ${UBSAN_CXXFLAGS})
 
-  # Initializer of standalone UBSan runtime.
-  add_compiler_rt_object_libraries(RTUbsan_standalone
-    OS ${UBSAN_SUPPORTED_OS}
-    ARCHS ${UBSAN_SUPPORTED_ARCH}
-    SOURCES ${UBSAN_STANDALONE_SOURCES}
-    ADDITIONAL_HEADERS ${UBSAN_HEADERS}
-    CFLAGS ${UBSAN_STANDALONE_CFLAGS})
-
-  add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
-  add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
+  if(COMPILER_RT_HAS_UBSAN)
+    # Initializer of standalone UBSan runtime.
+    add_compiler_rt_object_libraries(RTUbsan_standalone
+      OS ${UBSAN_SUPPORTED_OS}
+      ARCHS ${UBSAN_SUPPORTED_ARCH}
+      SOURCES ${UBSAN_STANDALONE_SOURCES}
+      ADDITIONAL_HEADERS ${UBSAN_HEADERS}
+      CFLAGS ${UBSAN_STANDALONE_CFLAGS})
 
-  add_compiler_rt_runtime(clang_rt.ubsan
-    SHARED
-    OS ${UBSAN_SUPPORTED_OS}
-    ARCHS ${UBSAN_SUPPORTED_ARCH}
-    OBJECT_LIBS RTUbsan
-                RTUbsan_standalone
-                RTSanitizerCommon
-                RTSanitizerCommonLibc
-                RTSanitizerCommonCoverage
-                RTSanitizerCommonSymbolizer
-                RTInterception
-    LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
-    PARENT_TARGET ubsan)
+    add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
+    add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
 
-  if (NOT APPLE)
     add_compiler_rt_runtime(clang_rt.ubsan
-      STATIC
+      SHARED
       OS ${UBSAN_SUPPORTED_OS}
       ARCHS ${UBSAN_SUPPORTED_ARCH}
       OBJECT_LIBS RTUbsan
                   RTUbsan_standalone
-                  RTSanitizerCommonNoHooks
-                  RTSanitizerCommonLibcNoHooks
+                  RTSanitizerCommon
+                  RTSanitizerCommonLibc
                   RTSanitizerCommonCoverage
-                  RTSanitizerCommonSymbolizerNoHooks
+                  RTSanitizerCommonSymbolizer
                   RTInterception
       LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
       PARENT_TARGET ubsan)
+
+    if (NOT APPLE)
+      add_compiler_rt_runtime(clang_rt.ubsan
+        STATIC
+        OS ${UBSAN_SUPPORTED_OS}
+        ARCHS ${UBSAN_SUPPORTED_ARCH}
+        OBJECT_LIBS RTUbsan
+                    RTUbsan_standalone
+                    RTSanitizerCommonNoHooks
+                    RTSanitizerCommonLibcNoHooks
+                    RTSanitizerCommonCoverage
+                    RTSanitizerCommonSymbolizerNoHooks
+                    RTInterception
+        LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
+        PARENT_TARGET ubsan)
+    endif()
   endif()
 
 else()
@@ -188,89 +190,91 @@ else()
       DEFS ${UBSAN_COMMON_DEFINITIONS})
   endif()
 
-  add_compiler_rt_object_libraries(RTUbsan_standalone
-    ARCHS ${UBSAN_SUPPORTED_ARCH}
-    SOURCES ${UBSAN_STANDALONE_SOURCES}
-    ADDITIONAL_HEADERS ${UBSAN_HEADERS}
-    CFLAGS ${UBSAN_STANDALONE_CFLAGS})
-
-  # Standalone UBSan runtimes.
-  add_compiler_rt_runtime(clang_rt.ubsan_standalone
-    STATIC
-    ARCHS ${UBSAN_SUPPORTED_ARCH}
-    SOURCES
-      ubsan_init_standalone_preinit.cpp
-    ADDITIONAL_HEADERS ${UBSAN_HEADERS}
-    OBJECT_LIBS RTSanitizerCommon
-            RTSanitizerCommonLibc
-            RTSanitizerCommonCoverage
-            RTSanitizerCommonSymbolizer
-            RTSanitizerCommonSymbolizerInternal
-            RTUbsan
-            RTUbsan_standalone
-            RTInterception
-    CFLAGS ${UBSAN_CFLAGS}
-    PARENT_TARGET ubsan)
-
-  add_compiler_rt_runtime(clang_rt.ubsan_standalone_cxx
-    STATIC
-    ARCHS ${UBSAN_SUPPORTED_ARCH}
-    OBJECT_LIBS RTUbsan_cxx
-    CFLAGS ${UBSAN_CXXFLAGS}
-    PARENT_TARGET ubsan)
-
-  if (COMPILER_RT_HAS_VERSION_SCRIPT)
-    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp "")
-    add_compiler_rt_object_libraries(RTUbsan_dynamic_version_script_dummy
+  if(COMPILER_RT_HAS_UBSAN)
+    add_compiler_rt_object_libraries(RTUbsan_standalone
+      ARCHS ${UBSAN_SUPPORTED_ARCH}
+      SOURCES ${UBSAN_STANDALONE_SOURCES}
+      ADDITIONAL_HEADERS ${UBSAN_HEADERS}
+      CFLAGS ${UBSAN_STANDALONE_CFLAGS})
+
+    # Standalone UBSan runtimes.
+    add_compiler_rt_runtime(clang_rt.ubsan_standalone
+      STATIC
       ARCHS ${UBSAN_SUPPORTED_ARCH}
-      SOURCES ${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp
-      CFLAGS ${UBSAN_CFLAGS})
-
-    foreach(arch ${UBSAN_SUPPORTED_ARCH})
-      add_sanitizer_rt_version_list(clang_rt.ubsan_standalone-dynamic-${arch}...
[truncated]

vitalybuka added a commit that referenced this pull request Jul 10, 2024
…hecks"" (#98395)

Reverts #98380

Probably some incremental build issue, the build before revert was
green:
https://lab.llvm.org/buildbot/#/builders/109/builds/817
aaryanshukla pushed a commit to aaryanshukla/llvm-project that referenced this pull request Jul 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

compiler-rt:cfi Control Flow Integrity compiler-rt:lsan Leak sanitizer compiler-rt:sanitizer compiler-rt:scudo Scudo Hardened Allocator compiler-rt:ubsan Undefined behavior sanitizer compiler-rt xray

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants