[libc-commits] [libc] 748b1ae - [libc] Define IFNAMSIZ in net/if.h (#232664)

via libc-commits libc-commits at lists.llvm.org
Fri Oct 16 04:33:27 PDT 2026


Author: Pavel Labath
Date: 2026-10-16T13:33:20+02:00
New Revision: 748b1ae6606a93caa328a294403a772ab61ce6af

URL: https://github.com/llvm/llvm-project/commit/748b1ae6606a93caa328a294403a772ab61ce6af
DIFF: https://github.com/llvm/llvm-project/commit/748b1ae6606a93caa328a294403a772ab61ce6af.diff

LOG: [libc] Define IFNAMSIZ in net/if.h (#232664)

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

Added: 
    

Modified: 
    libc/include/llvm-libc-macros/linux/net-if-macros.h
    libc/include/net/if.yaml
    libc/test/include/net/linux/linux_if_helper.cpp
    libc/test/include/net/linux/net_if_and_linux_if_test.cpp

Removed: 
    


################################################################################
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);
 }


        


More information about the libc-commits mailing list