[libc-commits] [libc] [libc] Define IFNAMSIZ in net/if.h (PR #232664)
via libc-commits
libc-commits at lists.llvm.org
Fri Oct 16 03:10:54 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Pavel Labath (labath)
<details>
<summary>Changes</summary>
Add the IFNAMSIZ macro (4.2BSD) as an alias for IF_NAMESIZE (POSIX) in net/if.h.
I'm also defining __UAPI_DEF_IF_IFNAMSIZ to 0 in our linux macro header to prevent <linux/if.h> from redefining the macro when included after <net/if.h>.
Assisted-by: Gemini
---
Full diff: https://github.com/llvm/llvm-project/pull/232664.diff
4 Files Affected:
- (modified) libc/include/llvm-libc-macros/linux/net-if-macros.h (+4)
- (modified) libc/include/net/if.yaml (+4)
- (modified) libc/test/include/net/linux/linux_if_helper.cpp (+1)
- (modified) libc/test/include/net/linux/net_if_and_linux_if_test.cpp (+4)
``````````diff
diff --git a/libc/include/llvm-libc-macros/linux/net-if-macros.h b/libc/include/llvm-libc-macros/linux/net-if-macros.h
index b5cd2c2ef144d7..c8ac72c0ebd3de 100644
--- a/libc/include/llvm-libc-macros/linux/net-if-macros.h
+++ b/libc/include/llvm-libc-macros/linux/net-if-macros.h
@@ -14,6 +14,10 @@
#ifndef LLVM_LIBC_MACROS_LINUX_NET_IF_MACROS_H
#define LLVM_LIBC_MACROS_LINUX_NET_IF_MACROS_H
+// Prevent the linux headers from defining this macro.
+#define __UAPI_DEF_IF_IFNAMSIZ 0
+
#define IF_NAMESIZE 16
+#define IFNAMSIZ IF_NAMESIZE
#endif // LLVM_LIBC_MACROS_LINUX_NET_IF_MACROS_H
diff --git a/libc/include/net/if.yaml b/libc/include/net/if.yaml
index 3b6d807e2fceba..2a8f33c0738fae 100644
--- a/libc/include/net/if.yaml
+++ b/libc/include/net/if.yaml
@@ -2,6 +2,10 @@ header: net/if.h
standards:
- posix
macros:
+ - macro_name: IFNAMSIZ
+ standards:
+ - bsd
+ macro_header: net-if-macros.h
- macro_name: IF_NAMESIZE
macro_header: net-if-macros.h
types:
diff --git a/libc/test/include/net/linux/linux_if_helper.cpp b/libc/test/include/net/linux/linux_if_helper.cpp
index 2878ab6d7cf735..fb8f2fa4d011e5 100644
--- a/libc/test/include/net/linux/linux_if_helper.cpp
+++ b/libc/test/include/net/linux/linux_if_helper.cpp
@@ -18,3 +18,4 @@ extern const size_t LINUX_IFMAP_SIZE = sizeof(struct ifmap);
extern const size_t LINUX_IFMAP_ALIGN = alignof(struct ifmap);
extern const size_t LINUX_IFREQ_SIZE = sizeof(struct ifreq);
extern const size_t LINUX_IFREQ_ALIGN = alignof(struct ifreq);
+extern const int LINUX_IFNAMSIZ = IFNAMSIZ;
diff --git a/libc/test/include/net/linux/net_if_and_linux_if_test.cpp b/libc/test/include/net/linux/net_if_and_linux_if_test.cpp
index 1e29ad07e9322e..92063a464af83d 100644
--- a/libc/test/include/net/linux/net_if_and_linux_if_test.cpp
+++ b/libc/test/include/net/linux/net_if_and_linux_if_test.cpp
@@ -26,6 +26,7 @@ extern const size_t LINUX_IFMAP_SIZE;
extern const size_t LINUX_IFMAP_ALIGN;
extern const size_t LINUX_IFREQ_SIZE;
extern const size_t LINUX_IFREQ_ALIGN;
+extern const int LINUX_IFNAMSIZ;
TEST(LlvmLibcNetIfAndLinuxIfTest, LinuxIfAfterNetIf) {
// Verify that our struct definitions match the size and alignment of the
@@ -34,4 +35,7 @@ TEST(LlvmLibcNetIfAndLinuxIfTest, LinuxIfAfterNetIf) {
EXPECT_EQ(alignof(struct ifmap), LINUX_IFMAP_ALIGN);
EXPECT_EQ(sizeof(struct ifreq), LINUX_IFREQ_SIZE);
EXPECT_EQ(alignof(struct ifreq), LINUX_IFREQ_ALIGN);
+
+ EXPECT_EQ(IFNAMSIZ, LINUX_IFNAMSIZ);
+ EXPECT_EQ(IFNAMSIZ, IF_NAMESIZE);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/232664
More information about the libc-commits
mailing list