summaryrefslogtreecommitdiff
path: root/modules/net_if
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2012-09-05 14:28:47 -0600
committerEric Blake <eblake@redhat.com>2012-09-05 15:51:13 -0600
commit440a1dbe523e37f206252cb034c3a62f26867e42 (patch)
tree9f066cf98a8984ad2dafac800c6ed49dd013c8be /modules/net_if
parent8a8ef57118fa76ee06d57715f997332a8d3488ec (diff)
downloadgnulib-440a1dbe523e37f206252cb034c3a62f26867e42.tar.gz
net_if: new module
OpenBSD's <net/if.h> is not self-contained; this should compile: | #define _POSIX_C_SOURCE 200809L | #include <net/if.h> | struct if_nameindex i; but fails with: In file included from foo.c:2: /usr/include/net/if.h:112: error: expected specifier-qualifier-list before 'u_int' ... /usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type In file included from /usr/include/net/if.h:691, from foo.c:2: /usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type /usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type *** Error code 1 We already had a test program for systems with the if_* functions (including OpenBSD); but in adding this module, I had to enhance that test to also work on platforms like mingw where we are now providing a new header. * modules/net_if: New module, borrowing ideas from netinet_in. * m4/net_if_h.m4: New file. * lib/net_if.in.h: Likewise. * doc/posix-headers/net_if.texi (net/if.h): Document it. * MODULES.html.sh (lacking POSIX:2008): Likewise. * tests/test-net_if.c: Make function checks conditional. Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>. Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'modules/net_if')
-rw-r--r--modules/net_if49
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/net_if b/modules/net_if
new file mode 100644
index 0000000000..9e30f01512
--- /dev/null
+++ b/modules/net_if
@@ -0,0 +1,49 @@
+Description:
+A <net/if.h> for systems lacking it.
+
+Files:
+lib/net_if.in.h
+m4/net_if_h.m4
+
+Depends-on:
+include_next
+sys_socket
+
+configure.ac:
+gl_HEADER_NET_IF
+AC_PROG_MKDIR_P
+
+Makefile.am:
+BUILT_SOURCES += $(NET_IF_H)
+
+# We need the following in order to create <net/if.h> when the system
+# doesn't have one.
+if GL_GENERATE_NET_IF_H
+net/if.h: net_if.in.h $(top_builddir)/config.status
+ $(AM_V_at)$(MKDIR_P) net
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_NET_IF_H''@|$(NEXT_NET_IF_H)|g' \
+ -e 's|@''HAVE_NET_IF_H''@|$(HAVE_NET_IF_H)|g' \
+ < $(srcdir)/net_if.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+else
+net/if.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += net/if.h net/if.h-t
+MOSTLYCLEANDIRS += net
+
+Include:
+<net/if.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake