[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