[libc-commits] [libc] Revert "[libc] Finetune libc.src.__support.OSUtil.osutil dependency." (PR #190033)

via libc-commits libc-commits at lists.llvm.org
Wed Apr 1 12:55:04 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Jan Patrick Lehr (jplehr)

<details>
<summary>Changes</summary>

Reverts llvm/llvm-project#<!-- -->189501

Buildbot failure on libc for GPU buildbots

---
Full diff: https://github.com/llvm/llvm-project/pull/190033.diff


9 Files Affected:

- (modified) libc/cmake/modules/LLVMLibCCompileOptionRules.cmake (-4) 
- (modified) libc/config/config.json (-6) 
- (modified) libc/config/gpu/config.json (-5) 
- (modified) libc/src/__support/CMakeLists.txt (+9-17) 
- (modified) libc/src/__support/time/CMakeLists.txt (+1-3) 
- (modified) libc/src/time/linux/CMakeLists.txt (-6) 
- (modified) libc/src/unistd/CMakeLists.txt (-6) 
- (modified) libc/test/UnitTest/CMakeLists.txt (+5-19) 
- (modified) libc/test/UnitTest/TestLogger.cpp (+2-21) 


``````````diff
diff --git a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
index 426fcef7e36f4..cb1a3ec534a97 100644
--- a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+++ b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
@@ -182,10 +182,6 @@ function(_get_compile_options_from_config output_var)
     libc_add_definition(config_options "LIBC_COPT_PRINTF_DISABLE_BITINT")
   endif()
 
-  if(LIBC_COPT_USE_C_ASSERT)
-    list(APPEND config_options "-DLIBC_COPT_USE_C_ASSERT")
-  endif()
-
   set(${output_var} ${config_options} PARENT_SCOPE)
 endfunction(_get_compile_options_from_config)
 
diff --git a/libc/config/config.json b/libc/config/config.json
index 506526bbb1fc4..39cb2d8cfa331 100644
--- a/libc/config/config.json
+++ b/libc/config/config.json
@@ -186,11 +186,5 @@
       "value": false,
       "doc": "Trap with SIGFPE when feraiseexcept is called with unmasked floating point exceptions, similar to glibc's behavior.  This is currently working only on x86 with SSE."
     }
-  },
-  "assert": {
-    "LIBC_COPT_USE_C_ASSERT": {
-      "value": false,
-      "doc": "Use the system assert macro for LIBC_ASSERT."
-    }
   }
 }
diff --git a/libc/config/gpu/config.json b/libc/config/gpu/config.json
index c6318faaa3539..ef13f6a704635 100644
--- a/libc/config/gpu/config.json
+++ b/libc/config/gpu/config.json
@@ -49,10 +49,5 @@
     "LIBC_CONF_ENABLE_STRONG_STACK_PROTECTOR": {
       "value": false
     }
-  },
-  "assert": {
-    "LIBC_COPT_USE_C_ASSERT": {
-      "value": true
-    }
   }
 }
diff --git a/libc/src/__support/CMakeLists.txt b/libc/src/__support/CMakeLists.txt
index 08a4db8e49a73..6a3d90e531599 100644
--- a/libc/src/__support/CMakeLists.txt
+++ b/libc/src/__support/CMakeLists.txt
@@ -369,23 +369,15 @@ add_header_library(
     libc.src.__support.macros.properties.types
 )
 
-if(LIBC_COPT_USE_C_ASSERT OR NOT LLVM_LIBC_FULL_BUILD)
-  add_header_library(
-    libc_assert
-    HDRS
-      libc_assert.h
-  )
-else()
-  add_header_library(
-    libc_assert
-    HDRS
-      libc_assert.h
-    DEPENDS
-      .integer_to_string
-      libc.src.__support.OSUtil.osutil
-      libc.src.__support.macros.optimization
-  )
-endif()
+add_header_library(
+  libc_assert
+  HDRS
+    libc_assert.h
+  DEPENDS
+    .integer_to_string
+    libc.src.__support.OSUtil.osutil
+    libc.src.__support.macros.optimization
+)
 
 add_header_library(
   hash
diff --git a/libc/src/__support/time/CMakeLists.txt b/libc/src/__support/time/CMakeLists.txt
index f007f95bbee42..3cc3fd873220a 100644
--- a/libc/src/__support/time/CMakeLists.txt
+++ b/libc/src/__support/time/CMakeLists.txt
@@ -7,11 +7,9 @@ add_header_library(
     libc.hdr.types.time_t
 )
 
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}
-   AND TARGET libc.src.__support.OSUtil.osutil)
+if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
   add_subdirectory(${LIBC_TARGET_OS})
 else()
-  message(STATUS "Skip libc.src.__support.time.* targets.")
   return()
 endif()
 
diff --git a/libc/src/time/linux/CMakeLists.txt b/libc/src/time/linux/CMakeLists.txt
index 623f01eb0d78c..6ea04597063cb 100644
--- a/libc/src/time/linux/CMakeLists.txt
+++ b/libc/src/time/linux/CMakeLists.txt
@@ -1,9 +1,3 @@
-if(NOT TARGET libc.src.__support.OSUtil.osutil)
-  message(STATUS "libc.src.__support.OSUtil.osutil is not available. "
-                  "Skip libc.src.time.linux.* targets.")
-  return()
-endif()
-
 add_entrypoint_object(
   timespec_get
   SRCS
diff --git a/libc/src/unistd/CMakeLists.txt b/libc/src/unistd/CMakeLists.txt
index 5e6df74ac92db..4d78b4a7fbc84 100644
--- a/libc/src/unistd/CMakeLists.txt
+++ b/libc/src/unistd/CMakeLists.txt
@@ -1,9 +1,3 @@
-if(NOT TARGET libc.src.__support.OSUtil.osutil)
-  message(STATUS "libc.src.__support.OSUtil.osutil is not avaiable. "
-                 "Skip unistd targets.")
-  return()
-endif()
-
 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS})
 endif()
diff --git a/libc/test/UnitTest/CMakeLists.txt b/libc/test/UnitTest/CMakeLists.txt
index aa245b2234793..54e41ece5f4d9 100644
--- a/libc/test/UnitTest/CMakeLists.txt
+++ b/libc/test/UnitTest/CMakeLists.txt
@@ -3,7 +3,7 @@ function(add_unittest_framework_library name)
     "TEST_LIB"
     "" # No optional arguments
     "" # No single value arguments
-    "SRCS;HDRS;DEPENDS;COMPILE_OPTIONS" # Multi value arguments
+    "SRCS;HDRS;DEPENDS" # Multi value arguments
     ${ARGN}
   )
   if(NOT TEST_LIB_SRCS)
@@ -30,17 +30,14 @@ function(add_unittest_framework_library name)
     # making LibcFPExceptionHelpers and LibcDeathTestExecutors hermetic.
     set(LLVM_LIBC_FULL_BUILD "")
     _get_common_test_compile_options(compile_options "" "")
+    target_compile_options(${name}.unit PRIVATE ${compile_options})
     set(LLVM_LIBC_FULL_BUILD ON)
   else()
     _get_common_test_compile_options(compile_options "" "")
+    target_compile_options(${name}.unit PRIVATE ${compile_options})
   endif()
 
-  if (TEST_LIB_COMPILE_OPTIONS)
-    list(APPEND compile_options ${TEST_LIB_COMPILE_OPTIONS})
-  endif()
-  target_compile_options(${name}.unit PRIVATE ${compile_options})
-
-    _get_hermetic_test_compile_options(compile_options "")
+  _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++)
 
@@ -60,15 +57,6 @@ function(add_unittest_framework_library name)
   endif()
 endfunction()
 
-if (NOT TARGET libc.src.__support.OSUtil.osutil OR NOT LLVM_LIBC_FULL_BUILD)
-  message(STATUS "TestLogger will use system libc's stdio to print.")
-  set(test_logger_compile_options "-DLIBC_TEST_USE_SYSTEM_PRINTF")
-  set(test_logger_osutil "")
-else()
-  set(test_logger_compile_options "")
-  set(test_logger_osutil "libc.src.__support.OSUtil.osutil")
-endif()
-
 add_unittest_framework_library(
   LibcTest
   SRCS
@@ -80,8 +68,6 @@ add_unittest_framework_library(
     LibcTest.h
     Test.h
     TestLogger.h
-  COMPILE_OPTIONS
-    ${test_logger_compile_options}
   DEPENDS
     libc.hdr.stdint_proxy
     libc.src.__support.big_int
@@ -92,8 +78,8 @@ add_unittest_framework_library(
     libc.src.__support.fixed_point.fx_rep
     libc.src.__support.macros.properties.compiler
     libc.src.__support.macros.properties.types
+    libc.src.__support.OSUtil.osutil
     libc.src.__support.uint128
-    ${test_logger_osutil}
 )
 
 set(libc_death_test_srcs LibcDeathTestExecutors.cpp)
diff --git a/libc/test/UnitTest/TestLogger.cpp b/libc/test/UnitTest/TestLogger.cpp
index 170dd8704a923..3d95d48a5f5a2 100644
--- a/libc/test/UnitTest/TestLogger.cpp
+++ b/libc/test/UnitTest/TestLogger.cpp
@@ -2,38 +2,19 @@
 #include "hdr/stdint_proxy.h"
 #include "src/__support/CPP/string.h"
 #include "src/__support/CPP/string_view.h"
+#include "src/__support/OSUtil/io.h" // write_to_stderr
 #include "src/__support/big_int.h"   // is_big_int
 #include "src/__support/macros/config.h"
 #include "src/__support/macros/properties/types.h" // LIBC_TYPES_HAS_INT128
 #include "src/__support/uint128.h"
 
-#ifdef LIBC_TEST_USE_SYSTEM_PRINTF
-
-#include <stdio.h>
-
-namespace LIBC_NAMESPACE_DECL {
-namespace testing {
-
-void write_to_stderr(cpp::string_view str) {
-  fprintf(stderr, "%.*s", static_cast<int>(str.size()), str.data());
-}
-
-} // namespace testing
-} // namespace LIBC_NAMESPACE_DECL
-
-#else // !LIBC_TEST_USE_SYSTEM_PRINTF
-
-#include "src/__support/OSUtil/io.h" // write_to_stderr
-
-#endif // LIBC_TEST_USE_SYSTEM_PRINTF
-
 namespace LIBC_NAMESPACE_DECL {
 namespace testing {
 
 // cpp::string_view specialization
 template <>
 TestLogger &TestLogger::operator<< <cpp::string_view>(cpp::string_view str) {
-  write_to_stderr(str);
+  LIBC_NAMESPACE::write_to_stderr(str);
   return *this;
 }
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/190033


More information about the libc-commits mailing list