[llvm-branch-commits] [libc] release/22.x: [libc] Fix unit test dependency and respect LIBC_INCLUDE_BENCHMARKS (#180812) (PR #181048)
Cullen Rhodes via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Feb 11 23:59:34 PST 2026
https://github.com/c-rhodes updated https://github.com/llvm/llvm-project/pull/181048
>From c780d890daf3474c73c4ffa736e155c619c3d0be Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Tue, 10 Feb 2026 14:08:48 -0600
Subject: [PATCH] [libc] Fix unit test dependency and respect
LIBC_INCLUDE_BENCHMARKS (#180812)
Summary:
The unittest framework function is defined in another CMake file which
may not be present if the uesr disabled tests, provide a smaller version
here to keep this private. Also respesct the LIBC_INCLUDE_BENCHMARKS
variable.
(cherry picked from commit c9ee81a59e73a760febecad9fb8ed5baa3bee5ef)
---
libc/benchmarks/CMakeLists.txt | 8 +++---
libc/benchmarks/gpu/CMakeLists.txt | 44 +++++++++++++++++++++++++++++-
2 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/libc/benchmarks/CMakeLists.txt b/libc/benchmarks/CMakeLists.txt
index c17cc106f96d7..65c7cd76fad29 100644
--- a/libc/benchmarks/CMakeLists.txt
+++ b/libc/benchmarks/CMakeLists.txt
@@ -1,10 +1,10 @@
-if(LIBC_TARGET_OS_IS_GPU)
- add_subdirectory(gpu)
+# The CPU build depends on Google benchmark.
+if(NOT LIBC_INCLUDE_BENCHMARKS)
return()
endif()
-# The CPU build depends on Google benchmark.
-if(NOT LIBC_INCLUDE_BENCHMARKS)
+if(LIBC_TARGET_OS_IS_GPU)
+ add_subdirectory(gpu)
return()
endif()
diff --git a/libc/benchmarks/gpu/CMakeLists.txt b/libc/benchmarks/gpu/CMakeLists.txt
index cf8c9902ca7f0..629e51c39dbb3 100644
--- a/libc/benchmarks/gpu/CMakeLists.txt
+++ b/libc/benchmarks/gpu/CMakeLists.txt
@@ -33,7 +33,49 @@ function(add_benchmark benchmark_name)
add_dependencies(gpu-benchmark ${fq_target_name})
endfunction(add_benchmark)
-add_unittest_framework_library(
+function(add_benchmark_framework_library name)
+ cmake_parse_arguments(
+ "TEST_LIB"
+ "" # No optional arguments
+ "" # No single value arguments
+ "SRCS;HDRS;DEPENDS" # Multi value arguments
+ ${ARGN}
+ )
+ if(NOT TEST_LIB_SRCS)
+ message(FATAL_ERROR "'add_benchmark_framework_library' requires SRCS; for "
+ "header only libraries, use 'add_header_library'")
+ endif()
+
+ foreach(lib IN ITEMS ${name}.hermetic)
+ add_library(
+ ${lib}
+ STATIC
+ EXCLUDE_FROM_ALL
+ ${TEST_LIB_SRCS}
+ ${TEST_LIB_HDRS}
+ )
+ target_include_directories(${lib} PRIVATE ${LIBC_SOURCE_DIR})
+ if(TARGET libc.src.time.clock)
+ target_compile_definitions(${lib} PRIVATE TARGET_SUPPORTS_CLOCK)
+ endif()
+ endforeach()
+
+ _get_hermetic_test_compile_options(compile_options "")
+ target_include_directories(${name}.hermetic PRIVATE ${LIBC_INCLUDE_DIR})
+ target_compile_options(${name}.hermetic PRIVATE ${compile_options} -nostdinc++)
+
+ if(TEST_LIB_DEPENDS)
+ foreach(dep IN ITEMS ${TEST_LIB_DEPENDS})
+ if(TARGET ${dep}.hermetic)
+ add_dependencies(${name}.hermetic ${dep}.hermetic)
+ else()
+ add_dependencies(${name}.hermetic ${dep})
+ endif()
+ endforeach()
+ endif()
+endfunction()
+
+add_benchmark_framework_library(
LibcGpuBenchmark
SRCS
LibcGpuBenchmark.cpp
More information about the llvm-branch-commits
mailing list