Skip to content

Revert "[compiler-rt] Remove redundant COMPILER_RT_HAS_*SAN checks" #98380

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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
12 of 13 checks passed
@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.

2 participants