[libc-commits] [libc] [llvm] [libc] Disable old headergen checks unless enabled (PR #104522)
Michael Jones via libc-commits
libc-commits at lists.llvm.org
Thu Aug 15 16:36:58 PDT 2024
https://github.com/michaelrj-google created https://github.com/llvm/llvm-project/pull/104522
Old Headergen needed extra build rules to ensure that it worked in
runtimes mode. This patch disables those checks if new headergen is
enabled. Also some new headers were not being properly built with
new headergen, and that's also fixed.
>From 1d32d396a5d642e40f0016a36fa15d42be50b156 Mon Sep 17 00:00:00 2001
From: Michael Jones <michaelrj at google.com>
Date: Thu, 15 Aug 2024 16:34:49 -0700
Subject: [PATCH] [libc] Disable old headergen checks unless enabled
Old Headergen needed extra build rules to ensure that it worked in
runtimes mode. This patch disables those checks if new headergen is
enabled. Also some new headers were not being properly built with
new headergen, and that's also fixed.
---
libc/CMakeLists.txt | 33 +++++++++++++++++----------------
libc/include/CMakeLists.txt | 14 ++++++++------
llvm/runtimes/CMakeLists.txt | 3 ++-
3 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt
index dd45d6cc8cb6ab..133686acf6fa62 100644
--- a/libc/CMakeLists.txt
+++ b/libc/CMakeLists.txt
@@ -50,31 +50,32 @@ set(LIBC_NAMESPACE ${default_namespace}
CACHE STRING "The namespace to use to enclose internal implementations. Must start with '__llvm_libc'."
)
+option(LIBC_USE_NEW_HEADER_GEN "Generate header files using new headergen instead of the old one" ON)
-add_subdirectory(newhdrgen)
-
-
-if(LLVM_LIBC_FULL_BUILD OR LLVM_LIBC_GPU_BUILD)
- if(NOT LIBC_HDRGEN_EXE)
- # We need to set up hdrgen first since other targets depend on it.
- add_subdirectory(utils/LibcTableGenUtil)
- add_subdirectory(utils/HdrGen)
- # Calling add_tablegen sets variables like LIBC_TABLEGEN_EXE in
- # PARENT_SCOPE which get lost until saved in the cache.
- set(LIBC_TABLEGEN_EXE "${LIBC_TABLEGEN_EXE}" CACHE INTERNAL "")
- set(LIBC_TABLEGEN_TARGET "${LIBC_TABLEGEN_TARGET}" CACHE INTERNAL "")
- else()
- message(STATUS "Will use ${LIBC_HDRGEN_EXE} for libc header generation.")
+if(LIBC_USE_NEW_HEADER_GEN)
+ add_subdirectory(newhdrgen)
+else()
+ if(LLVM_LIBC_FULL_BUILD OR LLVM_LIBC_GPU_BUILD)
+ if(NOT LIBC_HDRGEN_EXE)
+ # We need to set up hdrgen first since other targets depend on it.
+ add_subdirectory(utils/LibcTableGenUtil)
+ add_subdirectory(utils/HdrGen)
+ # Calling add_tablegen sets variables like LIBC_TABLEGEN_EXE in
+ # PARENT_SCOPE which get lost until saved in the cache.
+ set(LIBC_TABLEGEN_EXE "${LIBC_TABLEGEN_EXE}" CACHE INTERNAL "")
+ set(LIBC_TABLEGEN_TARGET "${LIBC_TABLEGEN_TARGET}" CACHE INTERNAL "")
+ else()
+ message(STATUS "Will use ${LIBC_HDRGEN_EXE} for libc header generation.")
+ endif()
endif()
endif()
+
# We will build the GPU utilities if we are not doing a runtimes build.
option(LIBC_BUILD_GPU_LOADER "Always build the GPU loader utilities" OFF)
if(LIBC_BUILD_GPU_LOADER OR (LLVM_LIBC_GPU_BUILD AND NOT LLVM_RUNTIMES_BUILD))
add_subdirectory(utils/gpu)
endif()
-option(LIBC_USE_NEW_HEADER_GEN "Generate header files using new headergen instead of the old one" ON)
-
set(NEED_LIBC_HDRGEN FALSE)
if(NOT LLVM_RUNTIMES_BUILD)
if("libc" IN_LIST LLVM_ENABLE_RUNTIMES)
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 2b6eb61782a632..4e3ae7f801f4a0 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -420,19 +420,21 @@ add_header_macro(
.llvm-libc-types.posix_spawn_file_actions_t
)
-add_gen_header(
+add_header_macro(
link
- DEF_FILE link.h.def
- GEN_HDR link.h
+ ../libc/newhdrgen/yaml/link.yaml
+ link.h.def
+ link.h
DEPENDS
.llvm_libc_common_h
.llvm-libc-macros.link_macros
)
-add_gen_header(
+add_header_macro(
elf
- DEF_FILE elf.h.def
- GEN_HDR elf.h
+ ../libc/newhdrgen/yaml/elf.yaml
+ elf.h.def
+ elf.h
DEPENDS
.llvm-libc-macros.elf_macros
)
diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index 187c44fb9d04d2..76202b2cfe0421 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -521,7 +521,8 @@ if(build_runtimes)
endforeach()
endif()
if("libc" IN_LIST LLVM_ENABLE_PROJECTS AND
- (LLVM_LIBC_FULL_BUILD OR LLVM_LIBC_GPU_BUILD))
+ (LLVM_LIBC_FULL_BUILD OR LLVM_LIBC_GPU_BUILD) AND
+ (NOT LIBC_USE_NEW_HEADER_GEN))
if(LIBC_HDRGEN_EXE)
set(hdrgen_exe ${LIBC_HDRGEN_EXE})
else()
More information about the libc-commits
mailing list