-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[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
Conversation
@llvm/pr-subscribers-libc Author: None (lntue) ChangesFull diff: https://github.com/llvm/llvm-project/pull/139746.diff 10 Files Affected:
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,
|
There was a problem hiding this 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!)
Done. |
#139561