changeset 9611:44dd0c8a835f

Add documentation chapter about the glibc header files.
author Bruno Haible <bruno@clisp.org>
date Sat, 12 Jan 2008 16:28:52 +0100
parents d317af57e145
children cc0a699b05c0
files ChangeLog doc/glibc-headers/a.out.texi doc/glibc-headers/aliases.texi doc/glibc-headers/alloca.texi doc/glibc-headers/ar.texi doc/glibc-headers/argp.texi doc/glibc-headers/argz.texi doc/glibc-headers/byteswap.texi doc/glibc-headers/crypt.texi doc/glibc-headers/endian.texi doc/glibc-headers/envz.texi doc/glibc-headers/err.texi doc/glibc-headers/error.texi doc/glibc-headers/execinfo.texi doc/glibc-headers/fpu_control.texi doc/glibc-headers/fstab.texi doc/glibc-headers/fts.texi doc/glibc-headers/getopt.texi doc/glibc-headers/ieee754.texi doc/glibc-headers/ifaddrs.texi doc/glibc-headers/libintl.texi doc/glibc-headers/mcheck.texi doc/glibc-headers/mntent.texi doc/glibc-headers/obstack.texi doc/glibc-headers/paths.texi doc/glibc-headers/printf.texi doc/glibc-headers/pty.texi doc/glibc-headers/resolv.texi doc/glibc-headers/shadow.texi doc/glibc-headers/sysexits.texi doc/glibc-headers/ttyent.texi doc/gnulib.texi
diffstat 32 files changed, 964 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,37 @@
+2008-01-12  Bruno Haible  <bruno@clisp.org>
+
+	* doc/gnulib.texi (Glibc Header File Substitutes): New chapter.
+	* doc/glibc-headers/a.out.texi: New file.
+	* doc/glibc-headers/aliases.texi: New file.
+	* doc/glibc-headers/alloca.texi: New file.
+	* doc/glibc-headers/ar.texi: New file.
+	* doc/glibc-headers/argp.texi: New file.
+	* doc/glibc-headers/argz.texi: New file.
+	* doc/glibc-headers/byteswap.texi: New file.
+	* doc/glibc-headers/crypt.texi: New file.
+	* doc/glibc-headers/endian.texi: New file.
+	* doc/glibc-headers/envz.texi: New file.
+	* doc/glibc-headers/err.texi: New file.
+	* doc/glibc-headers/error.texi: New file.
+	* doc/glibc-headers/execinfo.texi: New file.
+	* doc/glibc-headers/fpu_control.texi: New file.
+	* doc/glibc-headers/fstab.texi: New file.
+	* doc/glibc-headers/fts.texi: New file.
+	* doc/glibc-headers/getopt.texi: New file.
+	* doc/glibc-headers/ieee754.texi: New file.
+	* doc/glibc-headers/ifaddrs.texi: New file.
+	* doc/glibc-headers/libintl.texi: New file.
+	* doc/glibc-headers/mcheck.texi: New file.
+	* doc/glibc-headers/mntent.texi: New file.
+	* doc/glibc-headers/obstack.texi: New file.
+	* doc/glibc-headers/paths.texi: New file.
+	* doc/glibc-headers/printf.texi: New file.
+	* doc/glibc-headers/pty.texi: New file.
+	* doc/glibc-headers/resolv.texi: New file.
+	* doc/glibc-headers/shadow.texi: New file.
+	* doc/glibc-headers/sysexits.texi: New file.
+	* doc/glibc-headers/ttyent.texi: New file.
+
 2008-01-12  Jim Meyering  <meyering@redhat.com>
 
 	announce-gen: emit Gnulib's git-based version string.
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/a.out.texi
@@ -0,0 +1,22 @@
+@node a.out.h
+@section @file{a.out.h}
+
+Describes the structure of executables (and object files?) in the old
+@code{a.out} format.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, Solaris 10, mingw, Interix 3.5, BeOS.
+@item
+This header file is useless because most executables and object files are
+in ELF format on some platforms:
+glibc 2.3.6, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/aliases.texi
@@ -0,0 +1,26 @@
+@node aliases.h
+@section @file{aliases.h}
+
+Defines the type @code{struct aliasent} and declares the functions
+@code{setaliasent}, @code{endaliasent},
+@code{getaliasent}, @code{getaliasent_r},
+@code{getaliasbyname}, @code{getaliasbyname_r}.
+
+Documentation:
+@itemize
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/setaliasent.3.html,,man setaliasent}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/alloca.texi
@@ -0,0 +1,30 @@
+@node alloca.h
+@section @file{alloca.h}
+
+Declares the @code{alloca} function of function-like macro.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Variable Size Automatic,,Automatic Storage with Variable Size,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Variable-Size-Automatic.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/alloca.3.html,,man alloca}.
+@end itemize
+
+Gnulib module: alloca
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, mingw.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/ar.texi
@@ -0,0 +1,19 @@
+@node ar.h
+@section @file{ar.h}
+
+Describes the structure of files produced by the @samp{ar} program.
+Defines the type @code{struct ar_hdr} and the macros @code{ARMAG},
+@code{SARMAG}, @code{ARFMAG}.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+mingw, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/argp.texi
@@ -0,0 +1,26 @@
+@node argp.h
+@section @file{argp.h}
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Argp,,Parsing Program Options with Argp,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Argp.html}.
+@end ifnotinfo
+@end itemize
+
+Gnulib module: argp
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/argz.texi
@@ -0,0 +1,31 @@
+@node argz.h
+@section @file{argz.h}
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Argz Functions,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Argz-Functions.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/argz.3.html,,man argz}.
+@end itemize
+
+Gnulib module: argz
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+@item
+The argz functions do not work on some platforms:
+Cygwin.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/byteswap.texi
@@ -0,0 +1,18 @@
+@node byteswap.h
+@section @file{byteswap.h}
+
+Defines the functions or function-like macros @code{bswap_16}, @code{bswap_32},
+@code{bswap_64}.
+
+Gnulib module: byteswap
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/crypt.texi
@@ -0,0 +1,44 @@
+@node crypt.h
+@section @file{crypt.h}
+
+Defines the type @code{struct crypt_data} and declares the functions
+@code{crypt}, @code{crypt_r},
+@code{setkey}, @code{setkey_r},
+@code{encrypt}, @code{encrypt_r}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{crypt,,Encrypting Passwords,libc},
+@ref{DES Encryption,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/crypt.html},
+@url{http://www.gnu.org/software/libc/manual/html_node/DES-Encryption.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/crypt.3.html,,man crypt},
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/encrypt.3.html,,man encrypt}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+@item
+The functions @code{crypt}, @code{setkey}, @code{encrypt} are missing on some
+platforms:
+HP-UX 11, OSF/1 5.1.
+@item
+The type @code{struct crypt_data} and the functions @code{crypt_r},
+@code{setkey_r}, @code{encrypt_r} are missing on some platforms:
+IRIX 6.5, Solaris 10, Cygwin.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/endian.texi
@@ -0,0 +1,19 @@
+@node endian.h
+@section @file{endian.h}
+
+Describe's the platform's endianness (byte ordering of words stored in memory).
+Defines the macros @code{BYTE_ORDER}, @code{LITTLE_ENDIAN}, @code{BIG_ENDIAN},
+@code{PDP_ENDIAN}.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/envz.texi
@@ -0,0 +1,28 @@
+@node envz.h
+@section @file{envz.h}
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Envz Functions,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Envz-Functions.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/envz.3.html,,man envz}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/err.texi
@@ -0,0 +1,32 @@
+@node err.h
+@section @file{err.h}
+
+Declares the functions
+@code{warn}, @code{vwarn}, @code{warnx}, @code{vwarnx},
+@code{err}, @code{verr}, @code{errx}, @code{verrx}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Error Messages,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Error-Messages.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/err.3.html,,man err}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/error.texi
@@ -0,0 +1,32 @@
+@node error.h
+@section @file{error.h}
+
+Declares the functions @code{error}, @code{error_at_line} and the variables
+@code{error_print_progname}, @code{error_message_count},
+@code{error_one_per_line}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Error Messages,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Error-Messages.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/error.3.html,,man error}.
+@end itemize
+
+Gnulib module: error
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/execinfo.texi
@@ -0,0 +1,31 @@
+@node execinfo.h
+@section @file{execinfo.h}
+
+Declares the functions @code{backtrace}, @code{backtrace_symbols},
+@code{backtrace_symbols_fd}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Backtraces,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Backtraces.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/backtrace.3.html,,man backtrace}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/fpu_control.texi
@@ -0,0 +1,19 @@
+@node fpu_control.h
+@section @file{fpu_control.h}
+
+Handling of the FPU control word. Defines the @code{fpu_control_t} type,
+declares the @code{__fpu_control} variable, and defines the @code{_FPU_GETCW},
+@code{_FPU_SETCW} macros.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/fstab.texi
@@ -0,0 +1,36 @@
+@node fstab.h
+@section @file{fstab.h}
+
+Defines the type @code{struct fstab}, the macros @code{FSTAB_*},
+@code{_PATH_FSTAB}, and declares the functions
+@code{setfsent}, @code{endfsent},
+@code{getfsent}, @code{getfsspec}, @code{getfsfile}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{fstab,,The `fstab' file,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/fstab.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/setfsent.3.html,,man setfsent}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+The macro @code{_PATH_FSTAB} is missing on some platforms:
+AIX 5.1, HP-UX 11.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/fts.texi
@@ -0,0 +1,25 @@
+@node fts.h
+@section @file{fts.h}
+
+Defines the types @code{FTS}, @code{FTSENT} and the macros @code{FTS_*},
+and declares the functions @code{fts_open}, @code{fts_read},
+@code{fts_children}, @code{fts_set}, @code{fts_close}.
+
+Documentation:
+@itemize
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/fts.3.html,,man fts}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/getopt.texi
@@ -0,0 +1,42 @@
+@node getopt.h
+@section @file{getopt.h}
+
+Defines the type @code{struct option} and declares the variables
+@code{optarg}, @code{optind}, @code{opterr}, @code{optopt}
+and the functions @code{getopt}, @code{getopt_long}, @code{getopt_long_only}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Getopt,,Parsing program options using `getopt',libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Getopt.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/getopt.3.html,,man getopt}.
+@end itemize
+
+Gnulib module: getopt
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+AIX 5.1, HP-UX 11, Interix 3.5.
+@item
+The function @code{getopt_long_only} is missing on some platforms:
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, IRIX 6.5, OSF/1 5.1, mingw.
+@item
+The method to reset options is incompatible on some platforms:
+FreeBSD 6.0, NetBSD 3.0(?), OpenBSD 3.8, Cygwin(?), mingw.
+@item
+The function @code{getopt} does not handle a leading @samp{+} character in
+the options string on some platforms:
+Solaris 10.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/ieee754.texi
@@ -0,0 +1,18 @@
+@node ieee754.h
+@section @file{ieee754.h}
+
+Defines the types @code{union ieee754_float}, @code{union ieee754_double},
+@code{union ieee854_long_double}.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/ifaddrs.texi
@@ -0,0 +1,24 @@
+@node ifaddrs.h
+@section @file{ifaddrs.h}
+
+Defines the type @code{struct ifaddrs} and declares the functions
+@code{getifaddrs}, @code{freeifaddrs}.
+
+Documentation:
+@itemize
+@item
+@url{http://ecos.sourceware.org/docs-latest/ref/net-common-tcpip-manpages-getifaddrs.html}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/libintl.texi
@@ -0,0 +1,43 @@
+@node libintl.h
+@section @file{libintl.h}
+
+Defines the macros @code{__USE_GNU_GETTEXT},
+@code{__GNU_GETTEXT_SUPPORTED_REVISION}, and declares the functions
+@code{gettext}, @code{dgettext}, @code{dcgettext},
+@code{ngettext}, @code{dngettext}, @code{dcngettext},
+@code{textdomain}, @code{bindtextdomain}, @code{bind_textdomain_codeset}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Message catalogs with gettext,,The `gettext' family of functions,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Message-catalogs-with-gettext.html},
+@end ifnotinfo
+@item
+@ifinfo
+@ref{gettext,,,gettext},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/gettext/manual/html_node/gettext.html}.
+@end ifnotinfo
+@end itemize
+
+Gnulib module: gettext
+
+Portability problems fixed by Gnulib, if GNU gettext is installed:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+@item
+The functions cannot deal with GNU .mo files with system-dependent strings
+(of major version 1 or of minor version 1) on some non-glibc platforms:
+NetBSD 3.0, Solaris 10.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/mcheck.texi
@@ -0,0 +1,30 @@
+@node mcheck.h
+@section @file{mcheck.h}
+
+Defines the type @code{enum mcheck_status} and declares the functions
+@code{mcheck}, @code{mcheck_pedantic}, @code{mcheck_check_all}, @code{mprobe},
+@code{mtrace}, @code{muntrace}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Heap Consistency Checking,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Heap-Consistency-Checking.html}.
+@end ifnotinfo
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on all non-glibc platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/mntent.texi
@@ -0,0 +1,38 @@
+@node mntent.h
+@section @file{mntent.h}
+
+Defines the type @code{struct mntent} and the macros @code{MNTTAB},
+@code{MOUNTED}, @code{MNTTYPE_*}, @code{MNTOPT_*}, and declares the functions
+@code{setmntent}, @code{getmntent}, @code{getmntent_r}, @code{addmntent},
+@code{endmntent}, @code{hasmntopt}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{mtab,,The `mtab' file,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/mtab.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/setmntent.3.html,,man setmntent}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+@item
+The function @code{getmntent_r} is missing on all non-glibc platforms:
+AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin.
+@end itemize
+
+Gnulib module @code{mountlist} provides a higher-level abstraction.
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/obstack.texi
@@ -0,0 +1,26 @@
+@node obstack.h
+@section @file{obstack.h}
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Obstacks,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Obstacks.html}.
+@end ifnotinfo
+@end itemize
+
+Gnulib module: obstack
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/paths.texi
@@ -0,0 +1,19 @@
+@node paths.h
+@section @file{paths.h}
+
+Defines the macros @code{_PATH_*}.
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+HP-UX 11, Solaris 10, mingw, BeOS.
+@item
+The set of @code{_PATH_*} macros is platform dependent.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/printf.texi
@@ -0,0 +1,32 @@
+@node printf.h
+@section @file{printf.h}
+
+Defines the type @code{struct printf_info} and the macros and enum values
+@code{PA_*}, and declares the functions
+@code{printf_function}, @code{printf_arginfo_function},
+@code{register_printf_function}, @code{parse_printf_format},
+@code{printf_size}, @code{printf_size_info}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Parsing a Template String,,,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Parsing-a-Template-String.html}.
+@end ifnotinfo
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/pty.texi
@@ -0,0 +1,30 @@
+@node pty.h
+@section @file{pty.h}
+
+Declares the functions @code{openpty} and @code{forkpty}.
+
+Documentation:
+@itemize
+@item
+@ifinfo
+@ref{Pseudo-Terminal Pairs,,Opening a Pseudo-Terminal Pair,libc},
+@end ifinfo
+@ifnotinfo
+@url{http://www.gnu.org/software/libc/manual/html_node/Pseudo_002dTerminal-Pairs.html},
+@end ifnotinfo
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/openpty.3.html,,man openpty}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, mingw, BeOS.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/resolv.texi
@@ -0,0 +1,34 @@
+@node resolv.h
+@section @file{resolv.h}
+
+Defines the types @code{res_sendhookact}, @code{res_send_qhook},
+@code{res_send_rhook}, @code{res_state}, @code{struct res_sym} and the
+macros @code{_PATH_RESCONF}, @code{RES_*}, and declares the functions
+@code{fp_nquery}, @code{fp_query},
+@code{hostalias},
+@code{p_query},
+@code{res_close}, @code{res_init}, @code{res_isourserver},
+@code{res_mkquery}, @code{res_query}, @code{res_querydomain},
+@code{res_search}, @code{res_send}.
+
+Documentation:
+@itemize
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/res_init.3.html,,man res_init}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+Cygwin, mingw, Interix 3.5, BeOS.
+@item
+The functions are missing on some platforms:
+HP-UX 11.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/shadow.texi
@@ -0,0 +1,39 @@
+@node shadow.h
+@section @file{shadow.h}
+
+Defines the type @code{struct spwd} and declares the functions
+@code{setspent}, @code{endspent},
+@code{getspent}, @code{getspent_r},
+@code{getspnam}, @code{getspnam_r},
+@code{sgetspent}, @code{sgetspent_r},
+@code{fgetspent}, @code{fgetspent_r},
+@code{putspent},
+@code{lckpwdf}, @code{ulckpwdf}.
+
+Documentation:
+@itemize
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/setspent.3.html,,man setspent}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+The functions @code{getspent_r}, @code{getspnam_r}, @code{sgetspent_r},
+@code{fgetspent}, @code{fgetspent_r}, @code{putspent} are missing on some
+platforms:
+HP-UX 11.
+@item
+The functions @code{sgetspent}, @code{sgetspent_r} are missing on some
+platforms:
+IRIX 6.5, Solaris 10.
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/sysexits.texi
@@ -0,0 +1,20 @@
+@node sysexits.h
+@section @file{sysexits.h}
+
+Defines the @code{EX_*} macros, including @code{EX_OK}.
+
+Gnulib module: sysexits
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+mingw, Interix 3.5, BeOS.
+@item
+The macro @code{EX_CONFIG} is missing on some platforms:
+HP-UX 11.
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
new file mode 100644
--- /dev/null
+++ b/doc/glibc-headers/ttyent.texi
@@ -0,0 +1,24 @@
+@node ttyent.h
+@section @file{ttyent.h}
+
+Defines the type @code{struct ttyent} and declares the functions
+@code{setttyent}, @code{endttyent}, @code{getttyent}, @code{getttynam}.
+
+Documentation:
+@itemize
+@item
+@uref{http://www.kernel.org/doc/man-pages/online/pages/man3/setttyent.3.html,,man setttyent}.
+@end itemize
+
+Gnulib module: ---
+
+Portability problems fixed by Gnulib:
+@itemize
+@end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+This header file is missing on some platforms:
+HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+@end itemize
--- a/doc/gnulib.texi
+++ b/doc/gnulib.texi
@@ -58,6 +58,7 @@
 * POSIX Substitutes Library::       Building as a separate substitutes library.
 * Header File Substitutes::         Overriding system headers.
 * Function Substitutes::            Replacing system functions.
+* Glibc Header File Substitutes::   Overriding system headers.
 * Particular Modules::              Documentation of individual modules.
 * GNU Free Documentation License::  Copying and sharing this manual.
 * Index::
@@ -2889,6 +2890,78 @@
 @include functions/y1.texi
 @include functions/yn.texi
 
+@node Glibc Header File Substitutes
+@chapter Glibc Header File Substitutes
+
+This chapter describes which header files contained in GNU libc but not
+specified by ISO C or POSIX are substituted by Gnulib, which portability
+pitfalls are fixed by Gnulib, and which (known) portability problems are
+not worked around by Gnulib.
+
+@menu
+* a.out.h::
+* aliases.h::
+* alloca.h::
+* ar.h::
+* argp.h::
+* argz.h::
+* byteswap.h::
+* crypt.h::
+* endian.h::
+* envz.h::
+* err.h::
+* error.h::
+* execinfo.h::
+* fpu_control.h::
+* fstab.h::
+* fts.h::
+* getopt.h::
+* ieee754.h::
+* ifaddrs.h::
+* libintl.h::
+* mcheck.h::
+* mntent.h::
+* obstack.h::
+* paths.h::
+* printf.h::
+* pty.h::
+* resolv.h::
+* shadow.h::
+* sysexits.h::
+* ttyent.h::
+@end menu
+
+@include glibc-headers/a.out.texi
+@include glibc-headers/aliases.texi
+@include glibc-headers/alloca.texi
+@include glibc-headers/ar.texi
+@include glibc-headers/argp.texi
+@include glibc-headers/argz.texi
+@include glibc-headers/byteswap.texi
+@include glibc-headers/crypt.texi
+@include glibc-headers/endian.texi
+@include glibc-headers/envz.texi
+@include glibc-headers/err.texi
+@include glibc-headers/error.texi
+@include glibc-headers/execinfo.texi
+@include glibc-headers/fpu_control.texi
+@include glibc-headers/fstab.texi
+@include glibc-headers/fts.texi
+@include glibc-headers/getopt.texi
+@include glibc-headers/ieee754.texi
+@include glibc-headers/ifaddrs.texi
+@include glibc-headers/libintl.texi
+@include glibc-headers/mcheck.texi
+@include glibc-headers/mntent.texi
+@include glibc-headers/obstack.texi
+@include glibc-headers/paths.texi
+@include glibc-headers/printf.texi
+@include glibc-headers/pty.texi
+@include glibc-headers/resolv.texi
+@include glibc-headers/shadow.texi
+@include glibc-headers/sysexits.texi
+@include glibc-headers/ttyent.texi
+
 @node Particular Modules
 @chapter Particular Modules