aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog39
-rw-r--r--Makefile23
-rw-r--r--Rules23
-rw-r--r--include/aliases.h3
-rw-r--r--include/alloca.h4
-rw-r--r--include/argz.h3
-rw-r--r--include/arpa/nameser.h3
-rw-r--r--include/arpa/nameser_compat.h3
-rw-r--r--include/elf.h9
-rw-r--r--include/envz.h3
-rw-r--r--include/err.h6
-rw-r--r--include/execinfo.h3
-rw-r--r--include/fpu_control.h6
-rw-r--r--include/getopt.h5
-rw-r--r--include/gshadow.h3
-rw-r--r--include/ifaddrs.h4
-rw-r--r--include/libintl.h4
-rw-r--r--include/link.h11
-rw-r--r--include/malloc.h2
-rw-r--r--include/mcheck.h3
-rw-r--r--include/mntent.h3
-rw-r--r--include/netinet/ether.h3
-rw-r--r--include/nss.h3
-rw-r--r--include/obstack.h6
-rw-r--r--include/printf.h4
-rw-r--r--include/pty.h3
-rw-r--r--include/resolv.h11
-rw-r--r--include/rpc/auth.h3
-rw-r--r--include/rpc/auth_des.h3
-rw-r--r--include/rpc/auth_unix.h6
-rw-r--r--include/rpc/clnt.h3
-rw-r--r--include/rpc/des_crypt.h3
-rw-r--r--include/rpc/key_prot.h6
-rw-r--r--include/rpc/netdb.h3
-rw-r--r--include/rpc/pmap_clnt.h7
-rw-r--r--include/rpc/pmap_prot.h6
-rw-r--r--include/rpc/pmap_rmt.h6
-rw-r--r--include/rpc/rpc.h4
-rw-r--r--include/rpc/rpc_msg.h3
-rw-r--r--include/rpc/svc.h3
-rw-r--r--include/rpc/svc_auth.h3
-rw-r--r--include/rpc/xdr.h6
-rw-r--r--include/rpcsvc/nis_callback.h3
-rw-r--r--include/rpcsvc/nislib.h3
-rw-r--r--include/rpcsvc/yp.h3
-rw-r--r--include/rpcsvc/ypclnt.h3
-rw-r--r--include/rpcsvc/ypupd.h3
-rw-r--r--include/shadow.h3
-rw-r--r--include/stdio_ext.h7
-rw-r--r--include/sys/epoll.h3
-rw-r--r--include/sys/file.h4
-rw-r--r--include/sys/gmon.h4
-rw-r--r--include/sys/ioctl.h4
-rw-r--r--include/sys/prctl.h3
-rw-r--r--include/sys/profil.h3
-rw-r--r--include/sys/statfs.h4
-rw-r--r--include/sys/sysctl.h3
-rw-r--r--include/sys/sysinfo.h3
-rw-r--r--include/ttyent.h7
-rw-r--r--include/utmp.h3
-rw-r--r--scripts/check-installed-headers.sh146
-rw-r--r--sysdeps/arm/nacl/include/bits/setjmp.h3
-rw-r--r--sysdeps/mips/include/sys/asm.h6
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/sysinfo.h3
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/timex.h3
-rw-r--r--sysdeps/x86/fpu/include/bits/fenv.h6
66 files changed, 470 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 47ea83666f..fa6d945ed1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,44 @@
2016-09-23 Zack Weinberg <zackw@panix.com>
+ * scripts/check-installed-headers.sh: New script.
+ * Rules: In each directory that defines header files to be installed,
+ run check-installed-headers.sh on them as a special test.
+ * Makefile: Likewise for the headers installed at top level.
+
+ * include/aliases.h, include/alloca.h, include/argz.h
+ * include/arpa/nameser.h, include/arpa/nameser_compat.h
+ * include/elf.h, include/envz.h, include/err.h
+ * include/execinfo.h, include/fpu_control.h, include/getopt.h
+ * include/gshadow.h, include/ifaddrs.h, include/libintl.h
+ * include/link.h, include/malloc.h, include/mcheck.h
+ * include/mntent.h, include/netinet/ether.h
+ * include/nss.h, include/obstack.h, include/printf.h
+ * include/pty.h, include/resolv.h, include/rpc/auth.h
+ * include/rpc/auth_des.h, include/rpc/auth_unix.h
+ * include/rpc/clnt.h, include/rpc/des_crypt.h
+ * include/rpc/key_prot.h, include/rpc/netdb.h
+ * include/rpc/pmap_clnt.h, include/rpc/pmap_prot.h
+ * include/rpc/pmap_rmt.h, include/rpc/rpc.h
+ * include/rpc/rpc_msg.h, include/rpc/svc.h
+ * include/rpc/svc_auth.h, include/rpc/xdr.h
+ * include/rpcsvc/nis_callback.h, include/rpcsvc/nislib.h
+ * include/rpcsvc/yp.h, include/rpcsvc/ypclnt.h
+ * include/rpcsvc/ypupd.h, include/shadow.h
+ * include/stdio_ext.h, include/sys/epoll.h
+ * include/sys/file.h, include/sys/gmon.h, include/sys/ioctl.h
+ * include/sys/prctl.h, include/sys/profil.h
+ * include/sys/statfs.h, include/sys/sysctl.h
+ * include/sys/sysinfo.h, include/ttyent.h, include/utmp.h
+ * sysdeps/arm/nacl/include/bits/setjmp.h
+ * sysdeps/mips/include/sys/asm.h
+ * sysdeps/unix/sysv/linux/include/sys/sysinfo.h
+ * sysdeps/unix/sysv/linux/include/sys/timex.h
+ * sysdeps/x86/fpu/include/bits/fenv.h:
+ Add #ifndef _ISOMAC guard around internal declarations.
+ Add multiple-inclusion guard if not already present.
+
+2016-09-23 Zack Weinberg <zackw@panix.com>
+
* sysdeps/generic/sys/ucontext.h
* sysdeps/arm/sys/ucontext.h
* sysdeps/i386/sys/ucontext.h
diff --git a/Makefile b/Makefile
index 4478c97126..1ae3281184 100644
--- a/Makefile
+++ b/Makefile
@@ -318,6 +318,29 @@ $(objpfx)begin-end-check.out: scripts/begin-end-check.pl
$(evaluate-test)
endif
+ifneq "$(headers)" ""
+# Special test of all the installed headers in this directory.
+tests-special += $(objpfx)check-installed-headers-c.out
+libof-check-installed-headers-c := nonlib
+$(objpfx)check-installed-headers-c.out: \
+ scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c \
+ "$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+
+ifneq "$(CXX)" ""
+tests-special += $(objpfx)check-installed-headers-cxx.out
+libof-check-installed-headers-cxx := nonlib
+$(objpfx)check-installed-headers-cxx.out: \
+ scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c++ \
+ "$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+endif
+endif
+
define summarize-tests
@egrep -v '^(PASS|XFAIL):' $(objpfx)$1 || true
@echo "Summary of test results$2:"
diff --git a/Rules b/Rules
index 8306d36a07..342d659408 100644
--- a/Rules
+++ b/Rules
@@ -80,6 +80,29 @@ $(common-objpfx)dummy.c:
(echo 'extern void __dummy__ (void);'; \
echo 'void __dummy__ (void) { }') > $@
common-generated += dummy.o dummy.c
+
+ifneq "$(headers)" ""
+# Special test of all the installed headers in this directory.
+tests-special += $(objpfx)check-installed-headers-c.out
+libof-check-installed-headers-c := nonlib
+$(objpfx)check-installed-headers-c.out: \
+ $(..)scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c \
+ "$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+
+ifneq "$(CXX)" ""
+tests-special += $(objpfx)check-installed-headers-cxx.out
+libof-check-installed-headers-cxx := nonlib
+$(objpfx)check-installed-headers-cxx.out: \
+ $(..)scripts/check-installed-headers.sh $(headers)
+ $(SHELL) $(..)scripts/check-installed-headers.sh c++ \
+ "$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
+ $(headers) > $@; \
+ $(evaluate-test)
+endif
+endif
# This makes all the auxiliary and test programs.
diff --git a/include/aliases.h b/include/aliases.h
index f7cfafcd6c..ece69ebe43 100644
--- a/include/aliases.h
+++ b/include/aliases.h
@@ -1,6 +1,8 @@
#ifndef _ALIASES_H
#include <inet/aliases.h>
+# ifndef _ISOMAC
+
extern int __getaliasent_r (struct aliasent *__restrict __result_buf,
char *__restrict __buffer, size_t __buflen,
struct aliasent **__restrict __result)
@@ -34,4 +36,5 @@ DECLARE_NSS_PROTOTYPES (nis)
DECLARE_NSS_PROTOTYPES (nisplus)
#undef DECLARE_NSS_PROTOTYPES
+# endif /* !_ISOMAC */
#endif
diff --git a/include/alloca.h b/include/alloca.h
index 01500259b8..fd90664f0a 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -1,6 +1,9 @@
#ifndef _ALLOCA_H
#include <stdlib/alloca.h>
+
+# ifndef _ISOMAC
+
#include <stackinfo.h>
#undef __alloca
@@ -73,4 +76,5 @@ libc_hidden_proto (__libc_alloca_cutoff)
extend_alloca (buf, len, s__); })
#endif
+# endif /* !_ISOMAC */
#endif
diff --git a/include/argz.h b/include/argz.h
index 4eab0b680b..0388c23277 100644
--- a/include/argz.h
+++ b/include/argz.h
@@ -2,8 +2,11 @@
#include <string/argz.h>
+# ifndef _ISOMAC
+
libc_hidden_proto (argz_delete)
libc_hidden_proto (__argz_count)
libc_hidden_proto (__argz_stringify)
+# endif /* !_ISOMAC */
#endif
diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h
index ce6f0238ed..cd7ab6e925 100644
--- a/include/arpa/nameser.h
+++ b/include/arpa/nameser.h
@@ -2,6 +2,8 @@
#include <resolv/arpa/nameser.h>
+# ifndef _ISOMAC
+
/* If the machine allows unaligned access we can do better than using
the NS_GET16, NS_GET32, NS_PUT16, and NS_PUT32 macros from the
installed header. */
@@ -74,4 +76,5 @@ libresolv_hidden_proto (ns_samename)
libresolv_hidden_proto (ns_makecanon)
libresolv_hidden_proto (ns_format_ttl)
+# endif /* !_ISOMAC */
#endif
diff --git a/include/arpa/nameser_compat.h b/include/arpa/nameser_compat.h
index 2e735ede4c..69280009b5 100644
--- a/include/arpa/nameser_compat.h
+++ b/include/arpa/nameser_compat.h
@@ -1,8 +1,11 @@
#ifndef _ARPA_NAMESER_COMPAT_
#include <resolv/arpa/nameser_compat.h>
+# ifndef _ISOMAC
+
/* Picksome unused number to represent lookups of IPv4 and IPv6 (i.e.,
T_A and T_AAAA). */
#define T_UNSPEC 62321
+# endif /* !_ISOMAC */
#endif
diff --git a/include/elf.h b/include/elf.h
index 60658c617c..f06a33f256 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -1,5 +1,8 @@
#ifndef _ELF_H
-# include <elf/elf.h>
+#include <elf/elf.h>
+
+# ifndef _ISOMAC
+
/* Some information which is not meant for the public and therefore not
in <elf.h>. */
# include <dl-dtprocnum.h>
@@ -9,4 +12,6 @@
# define DT_1_SUPPORTED_MASK \
(DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \
| DF_1_ORIGIN | DF_1_NODEFLIB)
-#endif
+
+# endif /* !_ISOMAC */
+#endif /* elf.h */
diff --git a/include/envz.h b/include/envz.h
index 8cfd9b57e9..633fcc6f40 100644
--- a/include/envz.h
+++ b/include/envz.h
@@ -2,7 +2,10 @@
#include <string/envz.h>
+# ifndef _ISOMAC
+
libc_hidden_proto (envz_entry)
libc_hidden_proto (envz_remove)
+# endif /* !_ISOMAC */
#endif
diff --git a/include/err.h b/include/err.h
index 737dfc1b6f..382855938e 100644
--- a/include/err.h
+++ b/include/err.h
@@ -1,8 +1,14 @@
+#ifndef _ERR_H
#include <misc/err.h>
+# ifndef _ISOMAC
+
libc_hidden_proto (warn)
libc_hidden_proto (warnx)