[compiler-rt] [compiler-rt] [Darwin] libFuzzer tests should use darwin_filter_host_archs (PR #160578)

Andrew Haberlandt via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 5 22:50:33 PDT 2025


https://github.com/ndrewh updated https://github.com/llvm/llvm-project/pull/160578

>From def308647dc37bc2d9f5c2a17285cc47542f4d8d Mon Sep 17 00:00:00 2001
From: Andrew Haberlandt <ahaberlandt at apple.com>
Date: Tue, 23 Sep 2025 14:27:49 -0700
Subject: [PATCH 1/3] [compiler-rt] [Darwin] [libfuzzer] Darwin libFuzzer tests
 should use supported architectures list

---
 compiler-rt/lib/fuzzer/tests/CMakeLists.txt | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
index c5885ccccd207..7fd7be268e3d4 100644
--- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
+++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
@@ -63,10 +63,16 @@ if ("-fvisibility=hidden" IN_LIST LIBFUZZER_CFLAGS)
   list(APPEND LIBFUZZER_UNITTEST_CFLAGS "-fvisibility=hidden")
 endif()
 
-if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST FUZZER_SUPPORTED_ARCH)
-  # libFuzzer unit tests are only run on the host machine.
-  set(arch ${COMPILER_RT_DEFAULT_TARGET_ARCH})
+if(COMPILER_RT_CAN_EXECUTE_TESTS)
+  set(FUZZER_TEST_ARCH ${FUZZER_SUPPORTED_ARCH})
+  if (APPLE)
+    darwin_filter_host_archs(FUZZER_SUPPORTED_ARCH FUZZER_TEST_ARCH)
+  else()
+    # libFuzzer unit tests are only run on the host machine.
+    set(FUZZER_TEST_ARCH ${COMPILER_RT_DEFAULT_TARGET_ARCH})
+  endif()
 
+  foreach(arch ${FUZZER_TEST_ARCH})
   set(LIBFUZZER_TEST_RUNTIME RTFuzzerTest.${arch})
   if(APPLE)
     set(LIBFUZZER_TEST_RUNTIME_OBJECTS
@@ -110,4 +116,5 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST FUZZER_SUPPORTED_ARCH)
     LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
   set_target_properties(FuzzedDataProviderUnitTests PROPERTIES
     RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+  endforeach()
 endif()

>From 76ba01226bbf2885c165b5628319aea16062fe18 Mon Sep 17 00:00:00 2001
From: Andrew Haberlandt <ahaberlandt at apple.com>
Date: Wed, 24 Sep 2025 16:15:21 -0700
Subject: [PATCH 2/3] format

---
 compiler-rt/lib/fuzzer/tests/CMakeLists.txt | 82 ++++++++++-----------
 1 file changed, 41 insertions(+), 41 deletions(-)

diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
index 7fd7be268e3d4..732b51022fa2d 100644
--- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
+++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
@@ -73,48 +73,48 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS)
   endif()
 
   foreach(arch ${FUZZER_TEST_ARCH})
-  set(LIBFUZZER_TEST_RUNTIME RTFuzzerTest.${arch})
-  if(APPLE)
-    set(LIBFUZZER_TEST_RUNTIME_OBJECTS
-      $<TARGET_OBJECTS:RTfuzzer.osx>)
-  else()
-    set(LIBFUZZER_TEST_RUNTIME_OBJECTS
-      $<TARGET_OBJECTS:RTfuzzer.${arch}>)
-  endif()
-  add_library(${LIBFUZZER_TEST_RUNTIME} STATIC
-    ${LIBFUZZER_TEST_RUNTIME_OBJECTS})
-  set_target_properties(${LIBFUZZER_TEST_RUNTIME} PROPERTIES
-    ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    FOLDER "Compiler-RT/Tests/Runtime")
+    set(LIBFUZZER_TEST_RUNTIME RTFuzzerTest.${arch})
+    if(APPLE)
+      set(LIBFUZZER_TEST_RUNTIME_OBJECTS
+        $<TARGET_OBJECTS:RTfuzzer.osx>)
+    else()
+      set(LIBFUZZER_TEST_RUNTIME_OBJECTS
+        $<TARGET_OBJECTS:RTfuzzer.${arch}>)
+    endif()
+    add_library(${LIBFUZZER_TEST_RUNTIME} STATIC
+      ${LIBFUZZER_TEST_RUNTIME_OBJECTS})
+    set_target_properties(${LIBFUZZER_TEST_RUNTIME} PROPERTIES
+      ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+      FOLDER "Compiler-RT/Tests/Runtime")
 
-  if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND
-     COMPILER_RT_LIBCXX_PATH AND
-     COMPILER_RT_LIBCXXABI_PATH)
-    file(GLOB libfuzzer_headers ../*.h)
-    set(LIBFUZZER_TEST_RUNTIME_DEPS libcxx_fuzzer_${arch}-install-cmake326-workaround ${libfuzzer_headers})
-    set(LIBFUZZER_TEST_RUNTIME_CFLAGS -isystem ${LIBCXX_${arch}_PREFIX}/include/c++/v1)
-    set(LIBFUZZER_TEST_RUNTIME_LINK_FLAGS ${LIBCXX_${arch}_PREFIX}/lib/libc++.a)
-  endif()
+    if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND
+       COMPILER_RT_LIBCXX_PATH AND
+       COMPILER_RT_LIBCXXABI_PATH)
+      file(GLOB libfuzzer_headers ../*.h)
+      set(LIBFUZZER_TEST_RUNTIME_DEPS libcxx_fuzzer_${arch}-install-cmake326-workaround ${libfuzzer_headers})
+      set(LIBFUZZER_TEST_RUNTIME_CFLAGS -isystem ${LIBCXX_${arch}_PREFIX}/include/c++/v1)
+      set(LIBFUZZER_TEST_RUNTIME_LINK_FLAGS ${LIBCXX_${arch}_PREFIX}/lib/libc++.a)
+    endif()
 
-  set(FuzzerTestObjects)
-  generate_compiler_rt_tests(FuzzerTestObjects
-    FuzzerUnitTests "Fuzzer-${arch}-Test" ${arch}
-    SOURCES FuzzerUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
-    RUNTIME ${LIBFUZZER_TEST_RUNTIME}
-    DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS}
-    CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
-    LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
-  set_target_properties(FuzzerUnitTests PROPERTIES
-    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+    set(FuzzerTestObjects)
+    generate_compiler_rt_tests(FuzzerTestObjects
+      FuzzerUnitTests "Fuzzer-${arch}-Test" ${arch}
+      SOURCES FuzzerUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
+      RUNTIME ${LIBFUZZER_TEST_RUNTIME}
+      DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS}
+      CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
+      LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
+    set_target_properties(FuzzerUnitTests PROPERTIES
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
 
-  set(FuzzedDataProviderTestObjects)
-  generate_compiler_rt_tests(FuzzedDataProviderTestObjects
-    FuzzedDataProviderUnitTests "FuzzerUtils-${arch}-Test" ${arch}
-    SOURCES FuzzedDataProviderUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
-    DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS} ${COMPILER_RT_SOURCE_DIR}/include/fuzzer/FuzzedDataProvider.h
-    CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
-    LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
-  set_target_properties(FuzzedDataProviderUnitTests PROPERTIES
-    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-  endforeach()
+    set(FuzzedDataProviderTestObjects)
+    generate_compiler_rt_tests(FuzzedDataProviderTestObjects
+      FuzzedDataProviderUnitTests "FuzzerUtils-${arch}-Test" ${arch}
+      SOURCES FuzzedDataProviderUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
+      DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS} ${COMPILER_RT_SOURCE_DIR}/include/fuzzer/FuzzedDataProvider.h
+      CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
+      LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
+    set_target_properties(FuzzedDataProviderUnitTests PROPERTIES
+      RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+    endforeach()
 endif()

>From 142142c4821928a93a3dbdbf79609aa3bb7196fa Mon Sep 17 00:00:00 2001
From: Andrew Haberlandt <ahaberlandt at apple.com>
Date: Sun, 5 Oct 2025 22:50:10 -0700
Subject: [PATCH 3/3] Don't define FUZZER_TEST_ARCH twice

---
 compiler-rt/lib/fuzzer/tests/CMakeLists.txt | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
index 732b51022fa2d..a36038377f9d2 100644
--- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
+++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
@@ -64,8 +64,7 @@ if ("-fvisibility=hidden" IN_LIST LIBFUZZER_CFLAGS)
 endif()
 
 if(COMPILER_RT_CAN_EXECUTE_TESTS)
-  set(FUZZER_TEST_ARCH ${FUZZER_SUPPORTED_ARCH})
-  if (APPLE)
+  if(APPLE)
     darwin_filter_host_archs(FUZZER_SUPPORTED_ARCH FUZZER_TEST_ARCH)
   else()
     # libFuzzer unit tests are only run on the host machine.
@@ -116,5 +115,5 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS)
       LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} ${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
     set_target_properties(FuzzedDataProviderUnitTests PROPERTIES
       RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-    endforeach()
+  endforeach()
 endif()



More information about the llvm-commits mailing list