view modules/assert-h @ 17077:995cc2e74f96

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>
author Eric Blake <eblake@redhat.com>
date Wed, 05 Sep 2012 14:28:47 -0600
parents 91f53c1e1787
children
line wrap: on
line source

Description:
An <assert.h> that conforms to C11.

Files:
lib/assert.in.h
lib/verify.h
m4/assert_h.m4

Depends-on:
include_next

configure.ac:
gl_ASSERT_H

Makefile.am:
BUILT_SOURCES += $(ASSERT_H)

# We need the following in order to create <assert.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_ASSERT_H
assert.h: assert.in.h verify.h $(top_builddir)/config.status
	$(AM_V_GEN)rm -f $@-t $@ && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
	  sed -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_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
	      < $(srcdir)/assert.in.h && \
	  sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
	      -e 's|_gl_verify|_gl_static_assert|g' \
	      -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
	      -e 's|_GL\(_STATIC_ASSERT_H\)|_${gl_include_guard_prefix}\1|g' \
	      < $(srcdir)/verify.h; \
	} > $@-t && \
	mv $@-t $@
else
assert.h: $(top_builddir)/config.status
	rm -f $@
endif
MOSTLYCLEANFILES += assert.h assert.h-t

Include:
<assert.h>

License:
LGPLv2+

Maintainer:
Paul Eggert