From d3f4b77142d0db98ed46d3f62d5c24597acc87d8 Mon Sep 17 00:00:00 2001 From: William Huynh Date: Fri, 13 Jun 2025 17:33:29 +0100 Subject: [PATCH 1/3] [libc] Output all headers with LIBC_CONF_OUTPUT_ALL_HEADERS --- libc/cmake/modules/LLVMLibCHeaderRules.cmake | 7 ++++++- libc/test/UnitTest/CMakeLists.txt | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libc/cmake/modules/LLVMLibCHeaderRules.cmake b/libc/cmake/modules/LLVMLibCHeaderRules.cmake index 99f90244e0134..add58756dfc17 100644 --- a/libc/cmake/modules/LLVMLibCHeaderRules.cmake +++ b/libc/cmake/modules/LLVMLibCHeaderRules.cmake @@ -97,8 +97,13 @@ function(add_gen_header target_name) set(out_file ${LIBC_INCLUDE_DIR}/${relative_path}) set(dep_file "${out_file}.d") set(yaml_file ${CMAKE_SOURCE_DIR}/${ADD_GEN_HDR_YAML_FILE}) + + if(LIBC_CONF_OUTPUT_ALL_HEADERS) + set(entry_points "") + else() + set(entry_points "${TARGET_ENTRYPOINT_NAME_LIST}") + endif() - set(entry_points "${TARGET_ENTRYPOINT_NAME_LIST}") list(TRANSFORM entry_points PREPEND "--entry-point=") add_custom_command( diff --git a/libc/test/UnitTest/CMakeLists.txt b/libc/test/UnitTest/CMakeLists.txt index b0a3a7431c222..c32809da577d4 100644 --- a/libc/test/UnitTest/CMakeLists.txt +++ b/libc/test/UnitTest/CMakeLists.txt @@ -35,7 +35,7 @@ function(add_unittest_framework_library name) else() _get_common_test_compile_options(compile_options "" "") target_compile_options(${name}.unit PRIVATE ${compile_options}) -endif() + endif() _get_hermetic_test_compile_options(compile_options "") target_include_directories(${name}.hermetic PRIVATE ${LIBC_INCLUDE_DIR}) From b4b3960cbd5b46fdcc393b6dc89d43ae547c81dd Mon Sep 17 00:00:00 2001 From: William Huynh Date: Fri, 13 Jun 2025 18:07:58 +0100 Subject: [PATCH 2/3] fixup! [libc] Output all headers with LIBC_CONF_OUTPUT_ALL_HEADERS --- libc/CMakeLists.txt | 1 + libc/cmake/modules/LLVMLibCHeaderRules.cmake | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index f21fc2fba7305..77b60610c1025 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -135,6 +135,7 @@ endif() option(LLVM_LIBC_FULL_BUILD "Build and test LLVM libc as if it is the full libc" ${default_to_full_build}) option(LLVM_LIBC_IMPLEMENTATION_DEFINED_TEST_BEHAVIOR "Build LLVM libc tests assuming our implementation-defined behavior" ON) option(LLVM_LIBC_ENABLE_LINTING "Enables linting of libc source files" OFF) +option(LLVM_LIBC_ALL_HEADERS "Outputs all functions in header files, regardless of whether it has been implemented" OFF) option(LIBC_CONFIG_PATH "The path to user provided folder that configures the build for the target system." OFF) diff --git a/libc/cmake/modules/LLVMLibCHeaderRules.cmake b/libc/cmake/modules/LLVMLibCHeaderRules.cmake index add58756dfc17..01c288f0b9198 100644 --- a/libc/cmake/modules/LLVMLibCHeaderRules.cmake +++ b/libc/cmake/modules/LLVMLibCHeaderRules.cmake @@ -98,7 +98,7 @@ function(add_gen_header target_name) set(dep_file "${out_file}.d") set(yaml_file ${CMAKE_SOURCE_DIR}/${ADD_GEN_HDR_YAML_FILE}) - if(LIBC_CONF_OUTPUT_ALL_HEADERS) + if(LLVM_LIBC_ALL_HEADERS) set(entry_points "") else() set(entry_points "${TARGET_ENTRYPOINT_NAME_LIST}") From f90851f59bf33ae3f28ffebeefc35e9c460b9ce2 Mon Sep 17 00:00:00 2001 From: William Huynh <113542065+saturn691@users.noreply.github.com> Date: Fri, 13 Jun 2025 18:12:18 +0100 Subject: [PATCH 3/3] Update libc/CMakeLists.txt Co-authored-by: Michael Jones --- libc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index 77b60610c1025..9907adfc55a5f 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -135,7 +135,7 @@ endif() option(LLVM_LIBC_FULL_BUILD "Build and test LLVM libc as if it is the full libc" ${default_to_full_build}) option(LLVM_LIBC_IMPLEMENTATION_DEFINED_TEST_BEHAVIOR "Build LLVM libc tests assuming our implementation-defined behavior" ON) option(LLVM_LIBC_ENABLE_LINTING "Enables linting of libc source files" OFF) -option(LLVM_LIBC_ALL_HEADERS "Outputs all functions in header files, regardless of whether it has been implemented" OFF) +option(LLVM_LIBC_ALL_HEADERS "Outputs all functions in header files, regardless of whether they are enabled on this target" OFF) option(LIBC_CONFIG_PATH "The path to user provided folder that configures the build for the target system." OFF)