summaryrefslogtreecommitdiff
path: root/include/nss.h
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2016-08-23 21:19:17 -0400
committerZack Weinberg <zackw@panix.com>2016-08-29 19:47:33 -0400
commit15f55c639c257ca218b3c9156c43c1eb91993620 (patch)
treeaf87b2b8e8311d3fcc9bc249d20a85f15e7a55cc /include/nss.h
parenta16d5c43fddeff66b36cdd9a115c849e053abd42 (diff)
downloadglibc-zack/installed-header-hygiene.tar.gz
Installed header hygiene (BZ#20366): Test of installed headers.zack/installed-header-hygiene
As the final act in this patchset, this test validates the properties I have been ensuring that all of the headers have. Each subdirectory checks the headers that it installs. In order for this test to work correctly, every wrapper header that actually defines something must guard those definitions with #ifndef _ISOMAC. This is the existing mechanism used by the conform/ tests to tell wrapper headers not to define anything that the public header wouldn't, and not to use anything from libc-symbols.h. conform/ only cares for headers that we need to check for standards conformance, whereas this test applies to *every* header. (Headers in include/ that are either installed directly, or are internal-use-only and do *not* correspond to any installed header, are not affected.) The wrapper header adjustments were semi-mechanically generated, but I had to correct enough problems by hand that I don't think posting the script is worth it. * 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. * 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/gmp.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.
Diffstat (limited to 'include/nss.h')
-rw-r--r--include/nss.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/nss.h b/include/nss.h
index 1e8cc3910d..6358a10fd3 100644
--- a/include/nss.h
+++ b/include/nss.h
@@ -1,6 +1,8 @@
#ifndef _NSS_H
#include <nss/nss.h>
+# ifndef _ISOMAC
+
#define NSS_INVALID_FIELD_CHARACTERS ":\n"
extern const char __nss_invalid_field_characters[] attribute_hidden;
@@ -11,4 +13,5 @@ _Bool __nss_valid_list_field (char **list)
const char *__nss_rewrite_field (const char *value, char **to_be_freed)
attribute_hidden internal_function;
+# endif /* !_ISOMAC */
#endif /* _NSS_H */