From e581f1cc9a9fd6933ebf612ec3907a0fc67db1e6 Mon Sep 17 00:00:00 2001 From: lntue Date: Tue, 13 May 2025 14:07:21 -0400 Subject: [PATCH] [libc] Add proxy header for ENTRY type. (#139746) https://github.com/llvm/llvm-project/issues/139561 --- libc/fuzzing/__support/CMakeLists.txt | 1 + libc/fuzzing/__support/hashtable_fuzz.cpp | 2 +- libc/hdr/types/CMakeLists.txt | 9 +++++++++ libc/hdr/types/ENTRY.h | 22 +++++++++++++++++++++ libc/src/__support/HashTable/CMakeLists.txt | 2 +- libc/src/__support/HashTable/table.h | 2 +- libc/src/search/CMakeLists.txt | 4 ++-- libc/src/search/hsearch.h | 3 ++- libc/src/search/hsearch_r.h | 3 ++- 9 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 libc/hdr/types/ENTRY.h diff --git a/libc/fuzzing/__support/CMakeLists.txt b/libc/fuzzing/__support/CMakeLists.txt index cfe51605ed2a..9c674d2fb0d6 100644 --- a/libc/fuzzing/__support/CMakeLists.txt +++ b/libc/fuzzing/__support/CMakeLists.txt @@ -19,6 +19,7 @@ add_libc_fuzzer( SRCS hashtable_fuzz.cpp DEPENDS + libc.hdr.types.ENTRY libc.src.__support.HashTable.table COMPILE_OPTIONS -D__LIBC_EXPLICIT_SIMD_OPT diff --git a/libc/fuzzing/__support/hashtable_fuzz.cpp b/libc/fuzzing/__support/hashtable_fuzz.cpp index 8ab5e3b55cfd..a7a57624446d 100644 --- a/libc/fuzzing/__support/hashtable_fuzz.cpp +++ b/libc/fuzzing/__support/hashtable_fuzz.cpp @@ -9,7 +9,7 @@ /// Fuzzing test for llvm-libc hashtable implementations. /// //===----------------------------------------------------------------------===// -#include "include/llvm-libc-types/ENTRY.h" +#include "hdr/types/ENTRY.h" #include "src/__support/CPP/bit.h" #include "src/__support/CPP/string_view.h" #include "src/__support/HashTable/table.h" diff --git a/libc/hdr/types/CMakeLists.txt b/libc/hdr/types/CMakeLists.txt index ac9fe40abf51..b2890871902f 100644 --- a/libc/hdr/types/CMakeLists.txt +++ b/libc/hdr/types/CMakeLists.txt @@ -374,3 +374,12 @@ add_proxy_header_library( FULL_BUILD_DEPENDS libc.include.llvm-libc-types.cpu_set_t ) + +add_proxy_header_library( + ENTRY + HDRS + ENTRY.h + FULL_BUILD_DEPENDS + libc.include.llvm-libc-types.ENTRY + libc.include.search +) diff --git a/libc/hdr/types/ENTRY.h b/libc/hdr/types/ENTRY.h new file mode 100644 index 000000000000..5f4aee4b30fe --- /dev/null +++ b/libc/hdr/types/ENTRY.h @@ -0,0 +1,22 @@ +//===-- Proxy header for ENTRY --------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_HDR_TYPES_ENTRY_H +#define LLVM_LIBC_HDR_TYPES_ENTRY_H + +#ifdef LIBC_FULL_BUILD + +#include "include/llvm-libc-types/ENTRY.h" + +#else // Overlay mode + +#include + +#endif // LLVM_LIBC_FULL_BUILD + +#endif // LLVM_LIBC_HDR_TYPES_ENTRY_H diff --git a/libc/src/__support/HashTable/CMakeLists.txt b/libc/src/__support/HashTable/CMakeLists.txt index c79ee9ab9f41..3c487e4f2926 100644 --- a/libc/src/__support/HashTable/CMakeLists.txt +++ b/libc/src/__support/HashTable/CMakeLists.txt @@ -25,7 +25,7 @@ add_header_library( table.h DEPENDS .bitmask - libc.include.llvm-libc-types.ENTRY + libc.hdr.types.ENTRY libc.src.__support.CPP.bit libc.src.__support.CPP.new libc.src.__support.hash diff --git a/libc/src/__support/HashTable/table.h b/libc/src/__support/HashTable/table.h index d50a9482ec4c..13badb90dbfd 100644 --- a/libc/src/__support/HashTable/table.h +++ b/libc/src/__support/HashTable/table.h @@ -9,7 +9,7 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_HASHTABLE_TABLE_H #define LLVM_LIBC_SRC___SUPPORT_HASHTABLE_TABLE_H -#include "include/llvm-libc-types/ENTRY.h" +#include "hdr/types/ENTRY.h" #include "src/__support/CPP/bit.h" // bit_ceil #include "src/__support/CPP/new.h" #include "src/__support/HashTable/bitmask.h" diff --git a/libc/src/search/CMakeLists.txt b/libc/src/search/CMakeLists.txt index d78ea062342a..6b7fe3ae5e12 100644 --- a/libc/src/search/CMakeLists.txt +++ b/libc/src/search/CMakeLists.txt @@ -34,11 +34,11 @@ add_entrypoint_object( HDRS hsearch.h DEPENDS + libc.hdr.types.ENTRY libc.src.search.hsearch.global libc.src.__support.HashTable.table libc.src.__support.HashTable.randomness libc.src.errno.errno - libc.include.search ) add_entrypoint_object( @@ -48,9 +48,9 @@ add_entrypoint_object( HDRS hsearch_r.h DEPENDS + libc.hdr.types.ENTRY libc.src.__support.HashTable.table libc.src.errno.errno - libc.include.search ) add_entrypoint_object( diff --git a/libc/src/search/hsearch.h b/libc/src/search/hsearch.h index 4d039850f25d..661945158094 100644 --- a/libc/src/search/hsearch.h +++ b/libc/src/search/hsearch.h @@ -9,8 +9,9 @@ #ifndef LLVM_LIBC_SRC_SEARCH_HSEARCH_H #define LLVM_LIBC_SRC_SEARCH_HSEARCH_H +#include "hdr/types/ENTRY.h" #include "src/__support/macros/config.h" -#include // ENTRY, ACTION +#include // ACTION namespace LIBC_NAMESPACE_DECL { ENTRY *hsearch(ENTRY item, ACTION action); diff --git a/libc/src/search/hsearch_r.h b/libc/src/search/hsearch_r.h index 6e9511035f6f..db2f5a8d3cbe 100644 --- a/libc/src/search/hsearch_r.h +++ b/libc/src/search/hsearch_r.h @@ -9,8 +9,9 @@ #ifndef LLVM_LIBC_SRC_SEARCH_HSEARCH_R_H #define LLVM_LIBC_SRC_SEARCH_HSEARCH_R_H +#include "hdr/types/ENTRY.h" #include "src/__support/macros/config.h" -#include // ENTRY, ACTION +#include // ACTION namespace LIBC_NAMESPACE_DECL { int hsearch_r(ENTRY item, ACTION action, ENTRY **retval,