Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[libc] Add proxy header for ENTRY type. #139746

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 13, 2025
Merged

[libc] Add proxy header for ENTRY type. #139746

merged 2 commits into from
May 13, 2025

Conversation

lntue
Copy link
Contributor

@lntue lntue commented May 13, 2025

@llvmbot
Copy link
Member

llvmbot commented May 13, 2025

@llvm/pr-subscribers-libc

Author: None (lntue)

Changes

#139561


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

10 Files Affected:

  • (modified) libc/fuzzing/__support/CMakeLists.txt (+1)
  • (modified) libc/fuzzing/__support/hashtable_fuzz.cpp (+1-1)
  • (modified) libc/hdr/types/CMakeLists.txt (+9)
  • (added) libc/hdr/types/ENTRY.h (+22)
  • (modified) libc/include/llvm-libc-types/ENTRY.h (+1-1)
  • (modified) libc/src/__support/HashTable/CMakeLists.txt (+1-1)
  • (modified) libc/src/__support/HashTable/table.h (+1-1)
  • (modified) libc/src/search/CMakeLists.txt (+2-2)
  • (modified) libc/src/search/hsearch.h (+2-1)
  • (modified) libc/src/search/hsearch_r.h (+2-1)
diff --git a/libc/fuzzing/__support/CMakeLists.txt b/libc/fuzzing/__support/CMakeLists.txt
index cfe51605ed2aa..9c674d2fb0d65 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 8ab5e3b55cfd4..a7a57624446df 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 ac9fe40abf516..b2890871902f2 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 0000000000000..5f4aee4b30fe2
--- /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 <search.h>
+
+#endif // LLVM_LIBC_FULL_BUILD
+
+#endif // LLVM_LIBC_HDR_TYPES_ENTRY_H
diff --git a/libc/include/llvm-libc-types/ENTRY.h b/libc/include/llvm-libc-types/ENTRY.h
index ccbd777e2475b..b007c8edba2f5 100644
--- a/libc/include/llvm-libc-types/ENTRY.h
+++ b/libc/include/llvm-libc-types/ENTRY.h
@@ -9,7 +9,7 @@
 #ifndef LLVM_LIBC_TYPES_ENTRY_H
 #define LLVM_LIBC_TYPES_ENTRY_H
 
-typedef struct {
+typedef struct entry {
   char *key;
   void *data;
 } ENTRY;
diff --git a/libc/src/__support/HashTable/CMakeLists.txt b/libc/src/__support/HashTable/CMakeLists.txt
index c79ee9ab9f414..3c487e4f29264 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 d50a9482ec4ce..13badb90dbfde 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 d78ea062342a1..6b7fe3ae5e123 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 4d039850f25d0..6619451580940 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 <search.h> // ENTRY, ACTION
+#include <search.h> // 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 6e9511035f6f2..db2f5a8d3cbe1 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 <search.h> // ENTRY, ACTION
+#include <search.h> // ACTION
 
 namespace LIBC_NAMESPACE_DECL {
 int hsearch_r(ENTRY item, ACTION action, ENTRY **retval,

Copy link
Contributor

@enh-google enh-google left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(fixing libc/include/llvm-libc-types/ENTRY.h in a separate change would make it easier to test that the rest of this actually works... i'll have to get the copybara config sorted so it excludes the llvm-libc-types files!)

@lntue
Copy link
Contributor Author

lntue commented May 13, 2025

(fixing libc/include/llvm-libc-types/ENTRY.h in a separate change would make it easier to test that the rest of this actually works... i'll have to get the copybara config sorted so it excludes the llvm-libc-types files!)

Done.

@lntue lntue merged commit e581f1c into llvm:main May 13, 2025
14 of 15 checks passed
@lntue lntue deleted the entry branch May 13, 2025 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.