Document some more things the gnulib user must be aware of.
[gnulib.git] / doc / gnulib.texi
index 8b7988d..ca52fdc 100644 (file)
@@ -1,34 +1,30 @@
 \input texinfo   @c -*-texinfo-*-
-@comment $Id: gnulib.texi,v 1.18 2005-09-19 15:38:33 haible Exp $
+@comment $Id: gnulib.texi,v 1.44 2007-09-09 13:20:45 haible Exp $
 @comment %**start of header
 @setfilename gnulib.info
 @settitle GNU Gnulib
 @syncodeindex fn cp
 @syncodeindex pg cp
+@ifclear texi2html
+@firstparagraphindent insert
+@end ifclear
 @comment %**end of header
 
-@set UPDATED $Date: 2005-09-19 15:38:33 $
+@set UPDATED $Date: 2007-09-09 13:20:45 $
 
 @copying
 This manual is for GNU Gnulib (updated @value{UPDATED}),
 which is a library of common routines intended to be shared at the
 source level.
 
-Copyright @copyright{} 2004, 2005 Free Software Foundation, Inc.
+Copyright @copyright{} 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
-@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
-and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License.''
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-@end quotation
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts.  A copy of the license is included in the section entitled
+``GNU Free Documentation License.''
 @end copying
 
 @dircategory Software development
@@ -55,39 +51,63 @@ Software Foundation raise funds for GNU development.''
 @end ifnottex
 
 @menu
-* Gnulib::
+* Introduction::
 * Invoking gnulib-tool::
-* Copying This Manual::
+* Miscellaneous Notes::
+* POSIX Substitutes Library::       Building as a separate substitutes library.
+* Header File Substitutes::         Overriding system headers.
+* Function Substitutes::            Replacing system functions.
+* Particular Modules::              Documentation of individual modules.
+* GNU Free Documentation License::  Copying and sharing this manual.
 * Index::
 @end menu
 
+@node Introduction
+@chapter Introduction
 
-@node Gnulib
-@chapter Gnulib
+Gnulib is a source code library. It provides basic functionalities to
+programs and libraries.  Currently (as of October 2006) more than 30
+packages make use of Gnulib.
 
-This manual contains some bare-bones documentation, but not much more.
-It's mostly been a place to store notes until someone (you?)@ gets
-around to writing a coherent manual.
-
-Getting started:
+Resources:
 
 @itemize
 @item Gnulib is hosted at Savannah:
       @url{http://savannah.gnu.org/projects/gnulib}.  Get the sources
-      through CVS from there.
+      through Git or CVS from there.
 @item The Gnulib home page:
       @url{http://www.gnu.org/software/gnulib/}.
 @end itemize
 
 @menu
+* Library vs. Reusable Code::
+* Portability and Application Code::
+* Modules::
+* Various Kinds of Modules::
+* Collaborative Development::
+* Copyright::
+* Steady Development::
+* Openness::
+@end menu
+
+@include gnulib-intro.texi
+
+
+@include gnulib-tool.texi
+
+
+@node Miscellaneous Notes
+@chapter Miscellaneous Notes
+
+@menu
 * Comments::
 * Header files::
-* Quoting::
-* ctime::
-* inet_ntoa::
 * Out of memory handling::
 * Library version handling::
-* Regular expressions::
+* Windows sockets::
+* Libtool and Windows::
+* License Texinfo sources::
+* Build robot for gnulib::
 @end menu
 
 
@@ -177,81 +197,6 @@ arbitrary order.
 @end itemize
 
 
-@node Quoting
-@section Quoting
-
-@cindex Quoting
-@findex quote
-@findex quotearg
-
-Gnulib provides @samp{quote} and @samp{quotearg} modules to help with
-quoting text, such as file names, in messages to the user.  Here's an
-example of using @samp{quote}:
-
-@example
-#include <quote.h>
- ...
-  error (0, errno, _("cannot change owner of %s"), quote (fname));
-@end example
-
-This differs from
-
-@example
-  error (0, errno, _("cannot change owner of `%s'"), fname);
-@end example
-
-@noindent in that @code{quote} escapes unusual characters in
-@code{fname}, e.g., @samp{'} and control characters like @samp{\n}.
-
-@findex quote_n
-However, a caveat: @code{quote} reuses the storage that it returns.
-Hence if you need more than one thing quoted at the same time, you
-need to use @code{quote_n}.
-
-@findex quotearg_alloc
-Also, the quote module is not suited for multithreaded applications.
-In that case, you have to use @code{quotearg_alloc}, defined in the
-@samp{quotearg} module, which is decidedly less convenient.
-
-
-@node ctime
-@section ctime
-@findex ctime
-
-The @code{ctime} function need not be reentrant, and consequently is
-not required to be thread safe.  Implementations of @code{ctime}
-typically write the time stamp into static buffer.  If two threads
-call @code{ctime} at roughly the same time, you might end up with the
-wrong date in one of the threads, or some undefined string.  There is
-a re-entrant interface @code{ctime_r}, that take a pre-allocated
-buffer and length of the buffer, and return @code{NULL} on errors.
-The input buffer should be at least 26 bytes in size.  The output
-string is locale-independent.  However, years can have more than 4
-digits if @code{time_t} is sufficiently wide, so the length of the
-required output buffer is not easy to determine.  Increasing the
-buffer size when @code{ctime_r} return @code{NULL} is not necessarily
-sufficient. The @code{NULL} return value could mean some other error
-condition, which will not go away by increasing the buffer size.
-
-A more flexible function is @code{strftime}.  However, note that it is
-locale dependent.
-
-
-@node inet_ntoa
-@section inet_ntoa
-@findex inet_ntoa
-
-The @code{inet_ntoa} function need not be reentrant, and consequently
-is not required to be thread safe.  Implementations of
-@code{inet_ntoa} typically write the time stamp into static buffer.
-If two threads call @code{inet_ntoa} at roughly the same time, you
-might end up with the wrong date in one of the threads, or some
-undefined string.  Further, @code{inet_ntoa} is specific for
-@acronym{IPv4} addresses.
-
-A protocol independent function is @code{inet_ntop}.
-
-
 @node Out of memory handling
 @section Out of memory handling
 
@@ -263,18 +208,18 @@ library has chosen to adopt a different strategy.  Out of memory
 handling happens in rare situations, but performing the out of memory
 error handling after almost all API function invocations pollute your
 source code and might make it harder to spot more serious problems.
-The strategy chosen improve code readability and robustness.
+The strategy chosen improves code readability and robustness.
 
 @cindex Aborting execution
 For most applications, aborting the application with an error message
-when the out of memory situation occur is the best that can be wished
+when the out of memory situation occurs is the best that can be wished
 for.  This is how the library behaves by default.
 
 @vindex xalloc_fail_func
 However, we realize that some applications may not want to have the
-GSS library abort execution in any situation.  The GSS library support
+GSS library abort execution in any situation.  The GSS library supports
 a hook to let the application regain control and perform its own
-cleanups when an out of memory situation has occured.  The application
+cleanups when an out of memory situation has occurred.  The application
 can define a function (having a @code{void} prototype, i.e., no return
 value and no parameters) and set the library variable
 @code{xalloc_fail_func} to that function.  The variable should be
@@ -312,7 +257,8 @@ To avoid ELF symbol collisions with other libraries that use the
 AC_DEFINE something like:
 
 @example
-AC_DEFINE(check_version, stringprep_check_version, [Rename check_version.])
+AC_DEFINE(check_version, stringprep_check_version,
+          [Rename check_version.])
 @end example
 
 The @code{stringprep_check_version} function will thus be implemented
@@ -347,348 +293,2630 @@ Typical uses look like:
 @end example
 
 
-@node Regular expressions
-@section Regular expressions
-
-Gnulib supports many different types of regular expressions; although
-the underlying features are the same or identical, the syntax used
-varies.  The descriptions given here for the different types are
-generated automatically.
+@node Windows sockets
+@section Windows sockets
 
-@include regexprops-generic.texi
+There are several issues when building applications that should work
+under Windows.  The most problematic part is for applications that use
+sockets.
 
+Hopefully, we can add helpful notes to this section that will help you
+port your application to Windows using gnulib.
 
-@node Invoking gnulib-tool
-@chapter Invoking gnulib-tool
+@subsection Getaddrinfo and WINVER
 
-@pindex gnulib-tool
-@cindex invoking @command{gnulib-tool}
+This was written for the getaddrinfo module, but may be applicable to
+other functions too.
 
-@command{gnulib-tool} is the way to import Gnulib modules.  It is also
-possible to borrow Gnulib modules in a package without using
-@command{gnulib-tool}, relying only on the metainformation stored in
-the @file{modules/*} files, but with a growing number of modules this
-becomes tedious.  @command{gnulib-tool} simplifies the management of
-source files, @file{Makefile.am}s and @file{configure.ac} in packages
-incorporating Gnulib modules.
+The getaddrinfo function exists in ws2tcpip.h and -lws2_32 on Windows
+XP.  The function declaration is present if @code{WINVER >= 0x0501}.
+Windows 2000 does not have getaddrinfo in its @file{WS2_32.dll}.
 
-Run @samp{gnulib-tool --help}.  To get familiar with @command{gnulib-tool},
-you can also try some commands with the option @samp{--dry-run}; then
-@code{gnulib-tool} will only report which actions it would perform in a
-real run.
+Thus, if you want to assume Windows XP or later, you can add
+AC_DEFINE(WINVER, 0x0501) to avoid compiling to (partial) getaddrinfo
+implementation.
 
-@menu
-* Initial import::              First import of Gnulib modules.
-* Modified imports::            Changing the import specification.
-* Simple update::               Tracking Gnulib development.
-* CVS Issues::                  Integration with CVS.
-@end menu
+If you want to support Windows 2000, don't do anything, but be aware
+that gnulib will use its own (partial) getaddrinfo implementation even
+on Windows XP.  Currently the code does not attempt to determine if
+the getaddrinfo function is available during runtime.
 
+Todo: Make getaddrinfo.c open the WS2_32.DLL and check for the
+getaddrinfo symbol and use it if present, otherwise fall back to our
+own implementation.
 
-@node Initial import
-@section Initial import
-@cindex initial import
 
-Gnulib assumes your project uses Autoconf and Automake.  Invoking
-@samp{gnulib-tool --import} will copy source files, create a
-@file{Makefile.am} to build them, generate a file @file{gnulib-comp.m4} with
-Autoconf M4 macro declarations used by @file{configure.ac}, and generate
-a file @file{gnulib-cache.m4} containing the cached specification of how
-Gnulib is used.
+@node Libtool and Windows
+@section Libtool and Windows
 
-Our example will be a library that uses Autoconf, Automake and
-Libtool.  It calls @code{strdup}, and you wish to use gnulib to make
-the package portable to C89 (which doesn't have @code{strdup}).
+If you want it to be possible to cross-compile your program to MinGW
+and you use Libtool, you need to put:
 
 @example
-~/src/libfoo$ gnulib-tool --import strdup
-Module list with included dependencies:
-  strdup
-File list:
-  lib/strdup.c
-  lib/strdup.h
-  m4/onceonly_2_57.m4
-  m4/strdup.m4
-Copying file m4/gnulib-tool.m4
-Copying file m4/onceonly_2_57.m4
-Copying file lib/strdup.c
-Copying file lib/strdup.h
-Copying file m4/strdup.m4
-Creating lib/Makefile.am
-Creating m4/gnulib-cache.m4
-Creating m4/gnulib-comp.m4
-Finished.
-
-You may need to add #include directives for the following .h files.
-  #include "strdup.h"
-
-Don't forget to
-  - add "lib/Makefile" to AC_CONFIG_FILES in ./configure.ac,
-  - mention "lib" in SUBDIRS in Makefile.am,
-  - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
-  - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC,
-  - invoke gl_INIT in ./configure.ac.
-~/src/libfoo$
+AC_LIBTOOL_WIN32_DLL
 @end example
 
-By default, the source code is copied into @file{lib/} and the M4
-macros in @file{m4/}.  You can override these paths by using
-@code{--source-base=DIRECTORY} and @code{--m4-base=DIRECTORY}.  Some
-modules also provide other files necessary for building. These files
-are copied into the directory specified by @samp{AC_CONFIG_AUX_DIR} in
-@file{configure.ac} or by the @code{--aux-dir=DIRECTORY} option.  If
-neither is specified, the current directory is assumed.
-
-@code{gnulib-tool} can make symbolic links instead of copying the
-source files.  Use the @samp{--symbolic} (or @samp{-s} for short) option
-to do this.
-
-@code{gnulib-tool} will overwrite any pre-existing files, in
-particular @file{Makefile.am}.  Unfortunately, separating the
-generated @file{Makefile.am} content (for building the gnulib library)
-into a separate file, say @file{gnulib.mk}, that could be included
-by your handwritten @file{Makefile.am} is not possible, due to how
-variable assignments are handled by Automake.
-
-Consequently, it is a good idea to choose directories that are not
-already used by your projects, to separate gnulib imported files from
-your own files.  This approach is also useful if you want to avoid
-conflicts between other tools (e.g., @code{gettextize} that also copy
-M4 files into your package.  Simon Josefsson successfully uses a source
-base of @file{gl/}, and a M4 base of @file{gl/m4/}, in several
-packages.
-
-After the @samp{--import} option on the command line comes the list of
-Gnulib modules that you want to incorporate in your package.  The names
-of the modules coincide with the filenames in Gnulib's @file{modules/}
-directory.
-
-Some Gnulib modules depend on other Gnulib modules.  @code{gnulib-tool}
-will automatically add the needed modules as well; you need not list
-them explicitly.  @code{gnulib-tool} will also memoize which dependent
-modules it has added, so that when someday a dependency is dropped, the
-implicitly added module is dropped as well (unless you have explicitly
-requested that module).
-
-If you want to cut a dependency, i.e. not add a module although one of
-your requested modules depends on it, you may use the option
-@samp{--avoid=@var{module}} to do so.  Multiple uses of this option are
-possible.  Of course, you will then need to implement the same interface
-as the removed module.
-
-A few manual steps are required to finish the initial import.
-@code{gnulib-tool} printed a summary of these steps.
-
-First, you need to make sure Autoconf can find the macro definitions
-in @file{gnulib-comp.m4}.  Use the @code{ACLOCAL_AMFLAGS} specifier in your
-top-level @file{Makefile.am} file, as in:
+in your @file{configure.ac}.  This sets the correct names for the
+@code{OBJDUMP}, @code{DLLTOOL}, and @code{AS} tools for the build.
+
+If you are building a library, you will also need to pass
+@code{-no-undefined} to make sure Libtool produces a DLL for your
+library.  From a @file{Makefile.am}:
 
 @example
-ACLOCAL_AMFLAGS = -I m4
+libgsasl_la_LDFLAGS += -no-undefined
 @end example
 
-You are now ready to call the M4 macros in @code{gnulib-comp.m4} from
-@file{configure.ac}.  The macro @code{gl_EARLY} must be called as soon
-as possible after verifying that the C compiler is working.
-Typically, this is immediately after @code{AC_PROG_CC}, as in:
 
-@example
-...
-AC_PROG_CC
-gl_EARLY
-...
-@end example
+@node License Texinfo sources
+@section License Texinfo sources
 
-The core part of the gnulib checks are done by the macro
-@code{gl_INIT}.  Place it further down in the file, typically where
-you normally check for header files or functions.  For example:
+Gnulib provides copies of the GNU GPL, GNU LGPL, and GNU FDL licenses
+in Texinfo form.  (The master location is
+@url{http://www.gnu.org/licenses/}).  These Texinfo documents do not
+have any node names and structures built into them; for your manual,
+you should @code{@@include} them in an appropriate @code{@@node}.
 
-@example
-...
-# For gnulib.
-gl_INIT
-...
-@end example
+The conventional name for the GPL node is @samp{Copying} and for the FDL
+@samp{GNU Free Documentation License}.  The LGPL doesn't seem to have
+a conventional node name.
+
+Of course the license texts themselves should not be changed at all.
+
+
+@node Build robot for gnulib
+@section Build robot for gnulib
+
+To simplify testing on a wide set of platforms, gnulib is built on
+many platforms every day and the results are uploaded to:
+
+@url{http://autobuild.josefsson.org/gnulib/}
+
+If you wish to help the gnulib development effort with build logs for
+your favorite platform, you may perform these steps:
+
+@enumerate
 
-@code{gl_INIT} will in turn call the macros related with the
-gnulib functions, be it specific gnulib macros, like @code{gl_FUNC_ALLOCA}
-or autoconf or automake macros like @code{AC_FUNC_ALLOCA} or
-@code{AM_FUNC_GETLINE}.  So there is no need to call those macros yourself
-when you use the corresponding gnulib modules.
+@item Create gnulib directory
 
-You must also make sure that the gnulib library is built.  Add the
-@code{Makefile} in the gnulib source base directory to
-@code{AC_CONFIG_FILES}, as in:
+On a machine with recent automake, autoconf, m4 installed and with a
+gnulib git or cvs checkout (typically a Linux machine), use
 
 @example
-AC_CONFIG_FILES(... lib/Makefile ...)
+gnulib-tool --create-megatestdir --with-tests --dir=..."
 @end example
 
-You must also make sure that @code{make} will recurse into the gnulib
-directory.  To achieve this, add the gnulib source base directory to a
-@code{SUBDIRS} Makefile.am statement, as in:
+Note: The created directory uses ca. 512 MB on disk.
+
+@item Transfer gnulib directory
+
+Transfer this directory to a build machine (HP-UX, Cygwin, or
+whatever).  Often it is easier to transfer one file, and this can be
+achieved by running, inside the directory the following commands:
 
 @example
-SUBDIRS = lib
+./configure
+make dist
 @end example
 
-or if you, more likely, already have a few entries in @code{SUBDIRS},
-you can add something like:
+And then transferring the @file{dummy-0.tar.gz} file.
+
+@item Build modules
+
+On the build machine, run ./do-autobuild (or "nohup ./do-autobuild").
+It creates a directory 'logs/' with a log file for each module.
+
+@item Submit build logs
+
+Submit each log file to Simon's site, either through a
 
 @example
-SUBDIRS += lib
+mail `echo gnulib__at__autobuild.josefsson.org | sed -e s/__at__/@@/`
 @end example
 
-Finally, you have to add compiler and linker flags in the appropriate
-source directories, so that you can make use of the gnulib library.
-Since some modules (@samp{getopt}, for example) may copy files into
-the build directory, @file{top_builddir/lib} is needed as well
-as @file{top_srcdir/lib}.  For example:
+or through netcat
 
 @example
-...
-AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib
-...
-LIBADD = lib/libgnu.a
-...
+autobuild-submit logs/*
 @end example
 
-Don't forget to @code{#include} the various header files.  In this
-example, you would need to make sure that @samp{#include "strdup.h"}
-is evaluated when compiling all source code files, that want to make
-use of @code{strdup}.
-
-When an include file is provided by Gnulib
-you shouldn't try to include the corresponding system header files
-yourself, but let the gnulib header file do it.  The ordering
-of the definition for some symbols may be significant; the Gnulib
-header files take care of that.
-
-For example, to use the @code{time_r} gnulib module you should
-use include header file provided by the gnulib, and so
-@samp{#include "time_r.h"}, but you shouldn't explicitly
-@samp{#include <time.h>} as it is already done in @file{time_r.h}
-before the redefinition of some symbols.
-
-@node Modified imports
-@section Modified imports
-
-You can at any moment decide to use Gnulib differently than the last time.
-
-If you only want to use more Gnulib modules, simply invoke
-@command{gnulib-tool --import @var{new-modules}}.  @code{gnulib-tool}
-remembers which modules were used last time.  The list of modules that
-you pass after @samp{--import} is @emph{added} to the previous list of
-modules.
-
-For most changes, such as added or removed modules, or even different
-choices of @samp{--lib}, @samp{--source-base} or @samp{--aux-dir}, there
-are two ways to perform the change.
-
-The standard way is to modify manually the file @file{gnulib-cache.m4}
-in the M4 macros directory, then launch @samp{gnulib-tool --import}.
-
-The other way is to call @command{gnulib-tool} again, with the changed
-command-line options.  Note that this doesn't let you remove modules,
-because as you just learned, the list of modules is always cumulated.
-Also this way is often impractical, because you don't remember the way
-you invoked @code{gnulib-tool} last time.
-
-The only change for which this doesn't work is a change of the
-@samp{--m4-base} directory.  Because, when you pass a different value of
-@samp{--m4-base}, @code{gnulib-tool} will not find the previous
-@file{gnulib-cache.m4} file any more... A possible solution is to manually
-copy the @file{gnulib-cache.m4} into the new M4 macro directory.
-
-In the @file{gnulib-cache.m4}, the macros have the following meaning:
-@table @code
-@item gl_MODULES
-The argument is a space separated list of the requested modules, not including
-dependencies.
-
-@item gl_AVOID
-The argument is a space separated list of modules that should not be used,
-even if they occur as dependencies.  Corresponds to the @samp{--avoid}
-command line argument.
-
-@item gl_SOURCE_BASE
-The argument is the relative pathname of the directory containing the gnulib
-source files (mostly *.c and *.h files).  Corresponds to the
-@samp{--source-base} command line argument.
-
-@item gl_M4_BASE
-The argument is the relative pathname of the directory containing the gnulib
-M4 macros (*.m4 files).  Corresponds to the @samp{--m4-base} command line
-argument.
-
-@item gl_TESTS_BASE
-The argument is the relative pathname of the directory containing the gnulib
-unit test files.  Corresponds to the @samp{--tests-base} command line argument.
-
-@item gl_LIB
-The argument is the name of the library to be created.  Corresponds to the
-@samp{--lib} command line argument.
-
-@item gl_LGPL
-The presence of this macro corresponds to the @samp{--lgpl} command line
-argument.  It takes no arguments.
-
-@item gl_LIBTOOL
-The presence of this macro corresponds to the @samp{--libtool} command line
-argument.  It takes no arguments.
-
-@item gl_MACRO_PREFIX
-The argument is the prefix to use for macros in the @file{gnulib-comp.m4}
-file.  Corresponds to the @samp{--macro-prefix} command line argument.
-@end table
-
-@node Simple update
-@section Simple update
-
-When you want to update to a more recent version of Gnulib, without
-changing the list of modules or other parameters, a simple call
-does it:
+@end enumerate
 
+@node POSIX Substitutes Library
+@chapter Building the ISO C and POSIX Substitutes
+
+This section shows a radically different way to use Gnulib.
+
+You can extract the ISO C / POSIX substitutes part of gnulib by running
+the command
 @smallexample
-$ gnulib-tool --import
+gnulib-tool --create-testdir --source-base=lib \
+            --dir=/tmp/posixlib `posix-modules`
 @end smallexample
 
-This will create, update or remove files, as needed.
+@noindent
+The command @samp{posix-modules} is found in the same directory as
+@code{gnulib-tool}.
 
-@node CVS Issues
-@section CVS Issues
+The resulting directory can be built on a particular platform,
+independently of the program being ported.  Then you can configure and
+build any program, by setting @code{CPPFLAGS} and @code{LDFLAGS} at
+configure time accordingly: set @code{CPPFLAGS="-I.../posixlib/lib"}, plus
+any essential type definitions and flags that you find in
+@code{.../posixlib/config.h}, and set
+@code{LDFLAGS=".../posixlib/lib/libgnu.a"}.
 
-All files created by @code{gnulib-tool}, except @file{gnulib-cache.m4},
-should be treated like generated source files, like for example a
-@file{parser.c} file is generated from @file{parser.y}.
+This way of using Gnulib is useful when you don't want to modify the program's
+source code, or when the program uses a mix between C and C++ sources
+(requiring separate builds of the @code{posixlib} for the C compiler and
+for the C++ compiler).
 
-In projects which commit all source files, whether generated or not, into
-CVS, the @code{gnulib-tool} generated files should all be committed.
+@node Header File Substitutes
+@chapter ISO C and POSIX Header File Substitutes
 
-In projects which customarily omit from the CVS all files that generated
-from other source files, all these files and directories would not be
-added into CVS.  The only file that must be added to CVS is
-@file{gnulib-cache.m4} in the M4 macros directory.  Also, the script for
-restoring files not in CVS, customarily called @file{autogen.sh} or
-@file{bootstrap.sh}, will typically contain the statement for restoring
-the omitted files:
+This chapter describes which header files 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.
 
-@smallexample
-$ gnulib-tool --update
-@end smallexample
+@menu
+* aio.h::
+* arpa/inet.h::
+* assert.h::
+* complex.h::
+* cpio.h::
+* ctype.h::
+* dirent.h::
+* dlfcn.h::
+* errno.h::
+* fcntl.h::
+* fenv.h::
+* float.h::
+* fmtmsg.h::
+* fnmatch.h::
+* ftw.h::
+* glob.h::
+* grp.h::
+* iconv.h::
+* inttypes.h::
+* iso646.h::
+* langinfo.h::
+* libgen.h::
+* limits.h::
+* locale.h::
+* math.h::
+* monetary.h::
+* mqueue.h::
+* ndbm.h::
+* net/if.h::
+* netdb.h::
+* netinet/in.h::
+* netinet/tcp.h::
+* nl_types.h::
+* poll.h::
+* pthread.h::
+* pwd.h::
+* regex.h::
+* sched.h::
+* search.h::
+* semaphore.h::
+* setjmp.h::
+* signal.h::
+* spawn.h::
+* stdarg.h::
+* stdbool.h::
+* stddef.h::
+* stdint.h::
+* stdio.h::
+* stdlib.h::
+* string.h::
+* strings.h::
+* stropts.h::
+* sys/ipc.h::
+* sys/mman.h::
+* sys/msg.h::
+* sys/resource.h::
+* sys/select.h::
+* sys/sem.h::
+* sys/shm.h::
+* sys/socket.h::
+* sys/stat.h::
+* sys/statvfs.h::
+* sys/time.h::
+* sys/timeb.h::
+* sys/times.h::
+* sys/types.h::
+* sys/uio.h::
+* sys/un.h::
+* sys/utsname.h::
+* sys/wait.h::
+* syslog.h::
+* tar.h::
+* termios.h::
+* tgmath.h::
+* time.h::
+* trace.h::
+* ucontext.h::
+* ulimit.h::
+* unistd.h::
+* utime.h::
+* utmpx.h::
+* wchar.h::
+* wctype.h::
+* wordexp.h::
+@end menu
 
-The @samp{--update} option operates much like the @samp{--import} option,
-but it does not offer the possibility to change the way Gnulib is used.
-Also it does not report in the ChangeLogs the files that it had to add
-because they were missing.
+@include headers/aio.texi
+@include headers/arpa_inet.texi
+@include headers/assert.texi
+@include headers/complex.texi
+@include headers/cpio.texi
+@include headers/ctype.texi
+@include headers/dirent.texi
+@include headers/dlfcn.texi
+@include headers/errno.texi
+@include headers/fcntl.texi
+@include headers/fenv.texi
+@include headers/float.texi
+@include headers/fmtmsg.texi
+@include headers/fnmatch.texi
+@include headers/ftw.texi
+@include headers/glob.texi
+@include headers/grp.texi
+@include headers/iconv.texi
+@include headers/inttypes.texi
+@include headers/iso646.texi
+@include headers/langinfo.texi
+@include headers/libgen.texi
+@include headers/limits.texi
+@include headers/locale.texi
+@include headers/math.texi
+@include headers/monetary.texi
+@include headers/mqueue.texi
+@include headers/ndbm.texi
+@include headers/net_if.texi
+@include headers/netdb.texi
+@include headers/netinet_in.texi
+@include headers/netinet_tcp.texi
+@include headers/nl_types.texi
+@include headers/poll.texi
+@include headers/pthread.texi
+@include headers/pwd.texi
+@include headers/regex.texi
+@include headers/sched.texi
+@include headers/search.texi
+@include headers/semaphore.texi
+@include headers/setjmp.texi
+@include headers/signal.texi
+@include headers/spawn.texi
+@include headers/stdarg.texi
+@include headers/stdbool.texi
+@include headers/stddef.texi
+@include headers/stdint.texi
+@include headers/stdio.texi
+@include headers/stdlib.texi
+@include headers/string.texi
+@include headers/strings.texi
+@include headers/stropts.texi
+@include headers/sys_ipc.texi
+@include headers/sys_mman.texi
+@include headers/sys_msg.texi
+@include headers/sys_resource.texi
+@include headers/sys_select.texi
+@include headers/sys_sem.texi
+@include headers/sys_shm.texi
+@include headers/sys_socket.texi
+@include headers/sys_stat.texi
+@include headers/sys_statvfs.texi
+@include headers/sys_time.texi
+@include headers/sys_timeb.texi
+@include headers/sys_times.texi
+@include headers/sys_types.texi
+@include headers/sys_uio.texi
+@include headers/sys_un.texi
+@include headers/sys_utsname.texi
+@include headers/sys_wait.texi
+@include headers/syslog.texi
+@include headers/tar.texi
+@include headers/termios.texi
+@include headers/tgmath.texi
+@include headers/time.texi
+@include headers/trace.texi
+@include headers/ucontext.texi
+@include headers/ulimit.texi
+@include headers/unistd.texi
+@include headers/utime.texi
+@include headers/utmpx.texi
+@include headers/wchar.texi
+@include headers/wctype.texi
+@include headers/wordexp.texi
+
+@node Function Substitutes
+@chapter ISO C and POSIX Function Substitutes
+
+This chapter describes which functions and function-like macros 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.
+
+The notation ``Gnulib module: ---'' means that Gnulib does not provide a
+module providing a substitute for the function.  When the list
+``Portability problems not fixed by Gnulib'' is empty, such a module is
+not needed: No portability problems are known.  Otherwise, it indicates
+that such a module would be useful but is not available: Noone so far
+found this function important enough to contribute a substitute for it.
+If you need this particular function, you may write to
+@code{<bug-gnulib at gnu dot org>}.
+
+@menu
+* FD_CLR::
+* FD_ISSET::
+* FD_SET::
+* FD_ZERO::
+* _Exit::
+* _exit::
+* _longjmp::
+* _setjmp::
+* _tolower::
+* _toupper::
+* a64l::
+* abort::
+* abs::
+* accept::
+* access::
+* acos::
+* acosf::
+* acosh::
+* acoshf::
+* acoshl::
+* acosl::
+* aio_cancel::
+* aio_error::
+* aio_fsync::
+* aio_read::
+* aio_return::
+* aio_suspend::
+* aio_write::
+* alarm::
+* asctime::
+* asctime_r::
+* asin::
+* asinf::
+* asinh::
+* asinhf::
+* asinhl::
+* asinl::
+* assert::
+* atan::
+* atan2::
+* atan2f::
+* atan2l::
+* atanf::
+* atanh::
+* atanhf::
+* atanhl::
+* atanl::
+* atexit::
+* atof::
+* atoi::
+* atol::
+* atoll::
+* basename::
+* bcmp::
+* bcopy::
+* bind::
+* bsd_signal::
+* bsearch::
+* btowc::
+* bzero::
+* cabs::
+* cabsf::
+* cabsl::
+* cacos::
+* cacosf::
+* cacosh::
+* cacoshf::
+* cacoshl::
+* cacosl::
+* calloc::
+* carg::
+* cargf::
+* cargl::
+* casin::
+* casinf::
+* casinh::
+* casinhf::
+* casinhl::
+* casinl::
+* catan::
+* catanf::
+* catanh::
+* catanhf::
+* catanhl::
+* catanl::
+* catclose::
+* catgets::
+* catopen::
+* cbrt::
+* cbrtf::
+* cbrtl::
+* ccos::
+* ccosf::
+* ccosh::
+* ccoshf::
+* ccoshl::
+* ccosl::
+* ceil::
+* ceilf::
+* ceill::
+* cexp::
+* cexpf::
+* cexpl::
+* cfgetispeed::
+* cfgetospeed::
+* cfsetispeed::
+* cfsetospeed::
+* chdir::
+* chmod::
+* chown::
+* cimag::
+* cimagf::
+* cimagl::
+* clearerr::
+* clock::
+* clock_getcpuclockid::
+* clock_getres::
+* clock_gettime::
+* clock_nanosleep::
+* clock_settime::
+* clog::
+* clogf::
+* clogl::
+* close::
+* closedir::
+* closelog::
+* confstr::
+* conj::
+* conjf::
+* conjl::
+* connect::
+* copysign::
+* copysignf::
+* copysignl::
+* cos::
+* cosf::
+* cosh::
+* coshf::
+* coshl::
+* cosl::
+* cpow::
+* cpowf::
+* cpowl::
+* cproj::
+* cprojf::
+* cprojl::
+* creal::
+* crealf::
+* creall::
+* creat::
+* crypt::
+* csin::
+* csinf::
+* csinh::
+* csinhf::
+* csinhl::
+* csinl::
+* csqrt::
+* csqrtf::
+* csqrtl::
+* ctan::
+* ctanf::
+* ctanh::
+* ctanhf::
+* ctanhl::
+* ctanl::
+* ctermid::
+* ctime::
+* ctime_r::
+* daylight::
+* dbm_clearerr::
+* dbm_close::
+* dbm_delete::
+* dbm_error::
+* dbm_fetch::
+* dbm_firstkey::
+* dbm_nextkey::
+* dbm_open::
+* dbm_store::
+* difftime::
+* dirname::
+* div::
+* dlclose::
+* dlerror::
+* dlopen::
+* dlsym::
+* drand48::
+* dup::
+* dup2::
+* ecvt::
+* encrypt::
+* endgrent::
+* endhostent::
+* endnetent::
+* endprotoent::
+* endpwent::
+* endservent::
+* endutxent::
+* environ::
+* erand48::
+* erf::
+* erfc::
+* erfcf::
+* erfcl::
+* erff::
+* erfl::
+* errno::
+* execl::
+* execle::
+* execlp::
+* execv::
+* execve::
+* execvp::
+* exit::
+* exp::
+* exp2::
+* exp2f::
+* exp2l::
+* expf::
+* expl::
+* expm1::
+* expm1f::
+* expm1l::
+* fabs::
+* fabsf::
+* fabsl::
+* fattach::
+* fchdir::
+* fchmod::
+* fchown::
+* fclose::
+* fcntl::
+* fcvt::
+* fdatasync::
+* fdetach::
+* fdim::
+* fdimf::
+* fdiml::
+* fdopen::
+* feclearexcept::
+* fegetenv::
+* fegetexceptflag::
+* fegetround::
+* feholdexcept::
+* feof::
+* feraiseexcept::
+* ferror::
+* fesetenv::
+* fesetexceptflag::
+* fesetround::
+* fetestexcept::
+* feupdateenv::
+* fflush::
+* ffs::
+* fgetc::
+* fgetpos::
+* fgets::
+* fgetwc::
+* fgetws::
+* fileno::
+* flockfile::
+* floor::
+* floorf::
+* floorl::
+* fma::
+* fmaf::
+* fmal::
+* fmax::
+* fmaxf::
+* fmaxl::
+* fmin::
+* fminf::
+* fminl::
+* fmod::
+* fmodf::
+* fmodl::
+* fmtmsg::
+* fnmatch::
+* fopen::
+* fork::
+* fpathconf::
+* fpclassify::
+* fprintf::
+* fputc::
+* fputs::
+* fputwc::
+* fputws::
+* fread::
+* free::
+* freeaddrinfo::
+* freopen::
+* frexp::
+* frexpf::
+* frexpl::
+* fscanf::
+* fseek::
+* fseeko::
+* fsetpos::
+* fstat::
+* fstatvfs::
+* fsync::
+* ftell::
+* ftello::
+* ftime::
+* ftok::
+* ftruncate::
+* ftrylockfile::
+* ftw::
+* funlockfile::
+* fwide::
+* fwprintf::
+* fwrite::
+* fwscanf::
+* gai_strerror::
+* gcvt::
+* getaddrinfo::
+* getc::
+* getc_unlocked::
+* getchar::
+* getchar_unlocked::
+* getcontext::
+* getcwd::
+* getdate::
+* getdelim::
+* getegid::
+* getenv::
+* geteuid::
+* getgid::
+* getgrent::
+* getgrgid::
+* getgrgid_r::
+* getgrnam::
+* getgrnam_r::
+* getgroups::
+* gethostbyaddr::
+* gethostbyname::
+* gethostent::
+* gethostid::
+* gethostname::
+* getitimer::
+* getline::
+* getlogin::
+* getlogin_r::
+* getmsg::
+* getnameinfo::
+* getnetbyaddr::
+* getnetbyname::
+* getnetent::
+* getopt::
+* getpeername::
+* getpgid::
+* getpgrp::
+* getpid::
+* getpmsg::
+* getppid::
+* getpriority::
+* getprotobyname::
+* getprotobynumber::
+* getprotoent::
+* getpwent::
+* getpwnam::
+* getpwnam_r::
+* getpwuid::
+* getpwuid_r::
+* getrlimit::
+* getrusage::
+* gets::
+* getservbyname::
+* getservbyport::
+* getservent::
+* getsid::
+* getsockname::
+* getsockopt::
+* getsubopt::
+* gettimeofday::
+* getuid::
+* getutxent::
+* getutxid::
+* getutxline::
+* getwc::
+* getwchar::
+* getwd::
+* glob::
+* globfree::
+* gmtime::
+* gmtime_r::
+* grantpt::
+* h_errno::
+* hcreate::
+* hdestroy::
+* hsearch::
+* htonl::
+* htons::
+* hypot::
+* hypotf::
+* hypotl::
+* iconv::
+* iconv_close::
+* iconv_open::
+* if_freenameindex::
+* if_indextoname::
+* if_nameindex::
+* if_nametoindex::
+* ilogb::
+* ilogbf::
+* ilogbl::
+* imaxabs::
+* imaxdiv::
+* index::
+* inet_addr::
+* inet_ntoa::
+* inet_ntop::
+* inet_pton::
+* initstate::
+* insque::
+* ioctl::
+* isalnum::
+* isalpha::
+* isascii::
+* isastream::
+* isatty::
+* isblank::
+* iscntrl::
+* isdigit::
+* isfinite::
+* isgraph::
+* isgreater::
+* isgreaterequal::
+* isinf::
+* isless::
+* islessequal::
+* islessgreater::
+* islower::
+* isnan::
+* isnormal::
+* isprint::
+* ispunct::
+* isspace::
+* isunordered::
+* isupper::
+* iswalnum::
+* iswalpha::
+* iswblank::
+* iswcntrl::
+* iswctype::
+* iswdigit::
+* iswgraph::
+* iswlower::
+* iswprint::
+* iswpunct::
+* iswspace::
+* iswupper::
+* iswxdigit::
+* isxdigit::
+* j0::
+* j1::
+* jn::
+* jrand48::
+* kill::
+* killpg::
+* l64a::
+* labs::
+* lchown::
+* lcong48::
+* ldexp::
+* ldexpf::
+* ldexpl::
+* ldiv::
+* lfind::
+* lgamma::
+* lgammaf::
+* lgammal::
+* link::
+* lio_listio::
+* listen::
+* llabs::
+* lldiv::
+* llrint::
+* llrintf::
+* llrintl::
+* llround::
+* llroundf::
+* llroundl::
+* localeconv::
+* localtime::
+* localtime_r::
+* lockf::
+* log::
+* log10::
+* log10f::
+* log10l::
+* log1p::
+* log1pf::
+* log1pl::
+* log2::
+* log2f::
+* log2l::
+* logb::
+* logbf::
+* logbl::
+* logf::
+* logl::
+* longjmp::
+* lrand48::
+* lrint::
+* lrintf::
+* lrintl::
+* lround::
+* lroundf::
+* lroundl::
+* lsearch::
+* lseek::
+* lstat::
+* makecontext::
+* malloc::
+* mblen::
+* mbrlen::
+* mbrtowc::
+* mbsinit::
+* mbsrtowcs::
+* mbstowcs::
+* mbtowc::
+* memccpy::
+* memchr::
+* memcmp::
+* memcpy::
+* memmove::
+* memset::
+* mkdir::
+* mkfifo::
+* mknod::
+* mkstemp::
+* mktemp::
+* mktime::
+* mlock::
+* mlockall::
+* mmap::
+* modf::
+* modff::
+* modfl::
+* mprotect::
+* mq_close::
+* mq_getattr::
+* mq_notify::
+* mq_open::
+* mq_receive::
+* mq_send::
+* mq_setattr::
+* mq_timedreceive::
+* mq_timedsend::
+* mq_unlink::
+* mrand48::
+* msgctl::
+* msgget::
+* msgrcv::
+* msgsnd::
+* msync::
+* munlock::
+* munlockall::
+* munmap::
+* nan::
+* nanf::
+* nanl::
+* nanosleep::
+* nearbyint::
+* nearbyintf::
+* nearbyintl::
+* nextafter::
+* nextafterf::
+* nextafterl::
+* nexttoward::
+* nexttowardf::
+* nexttowardl::
+* nftw::
+* nice::
+* nl_langinfo::
+* nrand48::
+* ntohl::
+* ntohs::
+* open::
+* opendir::
+* openlog::
+* optarg::
+* pathconf::
+* pause::
+* pclose::
+* perror::
+* pipe::
+* poll::
+* popen::
+* posix_fadvise::
+* posix_fallocate::
+* posix_madvise::
+* posix_mem_offset::
+* posix_memalign::
+* posix_openpt::
+* posix_spawn::
+* posix_spawn_file_actions_addclose::
+* posix_spawn_file_actions_adddup2::
+* posix_spawn_file_actions_addopen::
+* posix_spawn_file_actions_destroy::
+* posix_spawn_file_actions_init::
+* posix_spawnattr_destroy::
+* posix_spawnattr_getflags::
+* posix_spawnattr_getpgroup::
+* posix_spawnattr_getschedparam::
+* posix_spawnattr_getschedpolicy::
+* posix_spawnattr_getsigdefault::
+* posix_spawnattr_getsigmask::
+* posix_spawnattr_init::
+* posix_spawnattr_setflags::
+* posix_spawnattr_setpgroup::
+* posix_spawnattr_setschedparam::
+* posix_spawnattr_setschedpolicy::
+* posix_spawnattr_setsigdefault::
+* posix_spawnattr_setsigmask::
+* posix_spawnp::
+* posix_trace_attr_destroy::
+* posix_trace_attr_getclockres::
+* posix_trace_attr_getcreatetime::
+* posix_trace_attr_getgenversion::
+* posix_trace_attr_getinherited::
+* posix_trace_attr_getlogfullpolicy::
+* posix_trace_attr_getlogsize::
+* posix_trace_attr_getmaxdatasize::
+* posix_trace_attr_getmaxsystemeventsize::
+* posix_trace_attr_getmaxusereventsize::
+* posix_trace_attr_getname::
+* posix_trace_attr_getstreamfullpolicy::
+* posix_trace_attr_getstreamsize::
+* posix_trace_attr_init::
+* posix_trace_attr_setinherited::
+* posix_trace_attr_setlogfullpolicy::
+* posix_trace_attr_setlogsize::
+* posix_trace_attr_setmaxdatasize::
+* posix_trace_attr_setname::
+* posix_trace_attr_setstreamfullpolicy::
+* posix_trace_attr_setstreamsize::
+* posix_trace_clear::
+* posix_trace_close::
+* posix_trace_create::
+* posix_trace_create_withlog::
+* posix_trace_event::
+* posix_trace_eventid_equal::
+* posix_trace_eventid_get_name::
+* posix_trace_eventid_open::
+* posix_trace_eventset_add::
+* posix_trace_eventset_del::
+* posix_trace_eventset_empty::
+* posix_trace_eventset_fill::
+* posix_trace_eventset_ismember::
+* posix_trace_eventtypelist_getnext_id::
+* posix_trace_eventtypelist_rewind::
+* posix_trace_flush::
+* posix_trace_get_attr::
+* posix_trace_get_filter::
+* posix_trace_get_status::
+* posix_trace_getnext_event::
+* posix_trace_open::
+* posix_trace_rewind::
+* posix_trace_set_filter::
+* posix_trace_shutdown::
+* posix_trace_start::
+* posix_trace_stop::
+* posix_trace_timedgetnext_event::
+* posix_trace_trid_eventid_open::
+* posix_trace_trygetnext_event::
+* posix_typed_mem_get_info::
+* posix_typed_mem_open::
+* pow::
+* powf::
+* powl::
+* pread::
+* printf::
+* pselect::
+* pthread_atfork::
+* pthread_attr_destroy::
+* pthread_attr_getdetachstate::
+* pthread_attr_getguardsize::
+* pthread_attr_getinheritsched::
+* pthread_attr_getschedparam::
+* pthread_attr_getschedpolicy::
+* pthread_attr_getscope::
+* pthread_attr_getstack::
+* pthread_attr_getstackaddr::
+* pthread_attr_getstacksize::
+* pthread_attr_init::
+* pthread_attr_setdetachstate::
+* pthread_attr_setguardsize::
+* pthread_attr_setinheritsched::
+* pthread_attr_setschedparam::
+* pthread_attr_setschedpolicy::
+* pthread_attr_setscope::
+* pthread_attr_setstack::
+* pthread_attr_setstackaddr::
+* pthread_attr_setstacksize::
+* pthread_barrier_destroy::
+* pthread_barrier_init::
+* pthread_barrier_wait::
+* pthread_barrierattr_destroy::
+* pthread_barrierattr_getpshared::
+* pthread_barrierattr_init::
+* pthread_barrierattr_setpshared::
+* pthread_cancel::
+* pthread_cleanup_pop::
+* pthread_cleanup_push::
+* pthread_cond_broadcast::
+* pthread_cond_destroy::
+* pthread_cond_init::
+* pthread_cond_signal::
+* pthread_cond_timedwait::
+* pthread_cond_wait::
+* pthread_condattr_destroy::
+* pthread_condattr_getclock::
+* pthread_condattr_getpshared::
+* pthread_condattr_init::
+* pthread_condattr_setclock::
+* pthread_condattr_setpshared::
+* pthread_create::
+* pthread_detach::
+* pthread_equal::
+* pthread_exit::
+* pthread_getconcurrency::
+* pthread_getcpuclockid::
+* pthread_getschedparam::
+* pthread_getspecific::
+* pthread_join::
+* pthread_key_create::
+* pthread_key_delete::
+* pthread_kill::
+* pthread_mutex_destroy::
+* pthread_mutex_getprioceiling::
+* pthread_mutex_init::
+* pthread_mutex_lock::
+* pthread_mutex_setprioceiling::
+* pthread_mutex_timedlock::
+* pthread_mutex_trylock::
+* pthread_mutex_unlock::
+* pthread_mutexattr_destroy::
+* pthread_mutexattr_getprioceiling::
+* pthread_mutexattr_getprotocol::
+* pthread_mutexattr_getpshared::
+* pthread_mutexattr_gettype::
+* pthread_mutexattr_init::
+* pthread_mutexattr_setprioceiling::
+* pthread_mutexattr_setprotocol::
+* pthread_mutexattr_setpshared::
+* pthread_mutexattr_settype::
+* pthread_once::
+* pthread_rwlock_destroy::
+* pthread_rwlock_init::
+* pthread_rwlock_rdlock::
+* pthread_rwlock_timedrdlock::
+* pthread_rwlock_timedwrlock::
+* pthread_rwlock_tryrdlock::
+* pthread_rwlock_trywrlock::
+* pthread_rwlock_unlock::
+* pthread_rwlock_wrlock::
+* pthread_rwlockattr_destroy::
+* pthread_rwlockattr_getpshared::
+* pthread_rwlockattr_init::
+* pthread_rwlockattr_setpshared::
+* pthread_self::
+* pthread_setcancelstate::
+* pthread_setcanceltype::
+* pthread_setconcurrency::
+* pthread_setschedparam::
+* pthread_setschedprio::
+* pthread_setspecific::
+* pthread_sigmask::
+* pthread_spin_destroy::
+* pthread_spin_init::
+* pthread_spin_lock::
+* pthread_spin_trylock::
+* pthread_spin_unlock::
+* pthread_testcancel::
+* ptsname::
+* putc::
+* putc_unlocked::
+* putchar::
+* putchar_unlocked::
+* putenv::
+* putmsg::
+* putpmsg::
+* puts::
+* pututxline::
+* putwc::
+* putwchar::
+* pwrite::
+* qsort::
+* raise::
+* rand::
+* rand_r::
+* random::
+* read::
+* readdir::
+* readdir_r::
+* readlink::
+* readv::
+* realloc::
+* realpath::
+* recv::
+* recvfrom::
+* recvmsg::
+* regcomp::
+* regerror::
+* regexec::
+* regfree::
+* remainder::
+* remainderf::
+* remainderl::
+* remove::
+* remque::
+* remquo::
+* remquof::
+* remquol::
+* rename::
+* rewind::
+* rewinddir::
+* rindex::
+* rint::
+* rintf::
+* rintl::
+* rmdir::
+* round::
+* roundf::
+* roundl::
+* scalb::
+* scalbln::
+* scalblnf::
+* scalblnl::
+* scalbn::
+* scalbnf::
+* scalbnl::
+* scanf::
+* sched_get_priority_max::
+* sched_getparam::
+* sched_getscheduler::
+* sched_rr_get_interval::
+* sched_setparam::
+* sched_setscheduler::
+* sched_yield::
+* seed48::
+* seekdir::
+* select::
+* sem_close::
+* sem_destroy::
+* sem_getvalue::
+* sem_init::
+* sem_open::
+* sem_post::
+* sem_timedwait::
+* sem_trywait::
+* sem_unlink::
+* sem_wait::
+* semctl::
+* semget::
+* semop::
+* send::
+* sendmsg::
+* sendto::
+* setbuf::
+* setcontext::
+* setegid::
+* setenv::
+* seteuid::
+* setgid::
+* setgrent::
+* sethostent::
+* setitimer::
+* setjmp::
+* setkey::
+* setlocale::
+* setlogmask::
+* setnetent::
+* setpgid::
+* setpgrp::
+* setpriority::
+* setprotoent::
+* setpwent::
+* setregid::
+* setreuid::
+* setrlimit::
+* setservent::
+* setsid::
+* setsockopt::
+* setstate::
+* setuid::
+* setutxent::
+* setvbuf::
+* shm_open::
+* shm_unlink::
+* shmat::
+* shmctl::
+* shmdt::
+* shmget::
+* shutdown::
+* sigaction::
+* sigaddset::
+* sigaltstack::
+* sigdelset::
+* sigemptyset::
+* sigfillset::
+* sighold::
+* sigignore::
+* siginterrupt::
+* sigismember::
+* siglongjmp::
+* signal::
+* signbit::
+* sigpause::
+* sigpending::
+* sigprocmask::
+* sigqueue::
+* sigrelse::
+* sigset::
+* sigsetjmp::
+* sigsuspend::
+* sigtimedwait::
+* sigwait::
+* sigwaitinfo::
+* sin::
+* sinf::
+* sinh::
+* sinhf::
+* sinhl::
+* sinl::
+* sleep::
+* snprintf::
+* sockatmark::
+* socket::
+* socketpair::
+* sprintf::
+* sqrt::
+* sqrtf::
+* sqrtl::
+* srand::
+* srand48::
+* srandom::
+* sscanf::
+* stat::
+* statvfs::
+* stderr::
+* stdin::
+* stdout::
+* strcasecmp::
+* strcat::
+* strchr::
+* strcmp::
+* strcoll::
+* strcpy::
+* strcspn::
+* strdup::
+* strerror::
+* strerror_r::
+* strfmon::
+* strftime::
+* strlen::
+* strncasecmp::
+* strncat::
+* strncmp::
+* strncpy::
+* strpbrk::
+* strptime::
+* strrchr::
+* strspn::
+* strstr::
+* strtod::
+* strtof::
+* strtoimax::
+* strtok::
+* strtok_r::
+* strtol::
+* strtold::
+* strtoll::
+* strtoul::
+* strtoull::
+* strtoumax::
+* strxfrm::
+* swab::
+* swapcontext::
+* swprintf::
+* swscanf::
+* symlink::
+* sync::
+* sysconf::
+* syslog::
+* system::
+* tan::
+* tanf::
+* tanh::
+* tanhf::
+* tanhl::
+* tanl::
+* tcdrain::
+* tcflow::
+* tcflush::
+* tcgetattr::
+* tcgetpgrp::
+* tcgetsid::
+* tcsendbreak::
+* tcsetattr::
+* tcsetpgrp::
+* tdelete::
+* telldir::
+* tempnam::
+* tfind::
+* tgamma::
+* tgammaf::
+* tgammal::
+* time::
+* timer_create::
+* timer_delete::
+* timer_getoverrun::
+* timer_settime::
+* times::
+* timezone::
+* tmpfile::
+* tmpnam::
+* toascii::
+* tolower::
+* toupper::
+* towctrans::
+* towlower::
+* towupper::
+* trunc::
+* truncate::
+* truncf::
+* truncl::
+* tsearch::
+* ttyname::
+* ttyname_r::
+* twalk::
+* tzname::
+* tzset::
+* ualarm::
+* ulimit::
+* umask::
+* uname::
+* ungetc::
+* ungetwc::
+* unlink::
+* unlockpt::
+* unsetenv::
+* usleep::
+* utime::
+* utimes::
+* va_arg::
+* va_copy::
+* va_end::
+* va_start::
+* vfork::
+* vfprintf::
+* vfscanf::
+* vfwprintf::
+* vfwscanf::
+* vprintf::
+* vscanf::
+* vsnprintf::
+* vsprintf::
+* vsscanf::
+* vswprintf::
+* vswscanf::
+* vwprintf::
+* vwscanf::
+* wait::
+* waitid::
+* waitpid::
+* wcrtomb::
+* wcscat::
+* wcschr::
+* wcscmp::
+* wcscoll::
+* wcscpy::
+* wcscspn::
+* wcsftime::
+* wcslen::
+* wcsncat::
+* wcsncmp::
+* wcsncpy::
+* wcspbrk::
+* wcsrchr::
+* wcsrtombs::
+* wcsspn::
+* wcsstr::
+* wcstod::
+* wcstof::
+* wcstoimax::
+* wcstok::
+* wcstol::
+* wcstold::
+* wcstoll::
+* wcstombs::
+* wcstoul::
+* wcstoull::
+* wcstoumax::
+* wcswcs::
+* wcswidth::
+* wcsxfrm::
+* wctob::
+* wctomb::
+* wctrans::
+* wctype::
+* wcwidth::
+* wmemchr::
+* wmemcmp::
+* wmemcpy::
+* wmemmove::
+* wmemset::
+* wordexp::
+* wordfree::
+* wprintf::
+* write::
+* writev::
+* wscanf::
+* y0::
+* y1::
+* yn::
+@end menu
 
-@node Copying This Manual
-@appendix Copying This Manual
+@include functions/FD_CLR.texi
+@include functions/FD_ISSET.texi
+@include functions/FD_SET.texi
+@include functions/FD_ZERO.texi
+@include functions/_Exit_C99.texi
+@include functions/_exit.texi
+@include functions/_longjmp.texi
+@include functions/_setjmp.texi
+@include functions/_tolower.texi
+@include functions/_toupper.texi
+@include functions/a64l.texi
+@include functions/abort.texi
+@include functions/abs.texi
+@include functions/accept.texi
+@include functions/access.texi
+@include functions/acos.texi
+@include functions/acosf.texi
+@include functions/acosh.texi
+@include functions/acoshf.texi
+@include functions/acoshl.texi
+@include functions/acosl.texi
+@include functions/aio_cancel.texi
+@include functions/aio_error.texi
+@include functions/aio_fsync.texi
+@include functions/aio_read.texi
+@include functions/aio_return.texi
+@include functions/aio_suspend.texi
+@include functions/aio_write.texi
+@include functions/alarm.texi
+@include functions/asctime.texi
+@include functions/asctime_r.texi
+@include functions/asin.texi
+@include functions/asinf.texi
+@include functions/asinh.texi
+@include functions/asinhf.texi
+@include functions/asinhl.texi
+@include functions/asinl.texi
+@include functions/assert.texi
+@include functions/atan.texi
+@include functions/atan2.texi
+@include functions/atan2f.texi
+@include functions/atan2l.texi
+@include functions/atanf.texi
+@include functions/atanh.texi
+@include functions/atanhf.texi
+@include functions/atanhl.texi
+@include functions/atanl.texi
+@include functions/atexit.texi
+@include functions/atof.texi
+@include functions/atoi.texi
+@include functions/atol.texi
+@include functions/atoll.texi
+@include functions/basename.texi
+@include functions/bcmp.texi
+@include functions/bcopy.texi
+@include functions/bind.texi
+@include functions/bsd_signal.texi
+@include functions/bsearch.texi
+@include functions/btowc.texi
+@include functions/bzero.texi
+@include functions/cabs.texi
+@include functions/cabsf.texi
+@include functions/cabsl.texi
+@include functions/cacos.texi
+@include functions/cacosf.texi
+@include functions/cacosh.texi
+@include functions/cacoshf.texi
+@include functions/cacoshl.texi
+@include functions/cacosl.texi
+@include functions/calloc.texi
+@include functions/carg.texi
+@include functions/cargf.texi
+@include functions/cargl.texi
+@include functions/casin.texi
+@include functions/casinf.texi
+@include functions/casinh.texi
+@include functions/casinhf.texi
+@include functions/casinhl.texi
+@include functions/casinl.texi
+@include functions/catan.texi
+@include functions/catanf.texi
+@include functions/catanh.texi
+@include functions/catanhf.texi
+@include functions/catanhl.texi
+@include functions/catanl.texi
+@include functions/catclose.texi
+@include functions/catgets.texi
+@include functions/catopen.texi
+@include functions/cbrt.texi
+@include functions/cbrtf.texi
+@include functions/cbrtl.texi
+@include functions/ccos.texi
+@include functions/ccosf.texi
+@include functions/ccosh.texi
+@include functions/ccoshf.texi
+@include functions/ccoshl.texi
+@include functions/ccosl.texi
+@include functions/ceil.texi
+@include functions/ceilf.texi
+@include functions/ceill.texi
+@include functions/cexp.texi
+@include functions/cexpf.texi
+@include functions/cexpl.texi
+@include functions/cfgetispeed.texi
+@include functions/cfgetospeed.texi
+@include functions/cfsetispeed.texi
+@include functions/cfsetospeed.texi
+@include functions/chdir.texi
+@include functions/chmod.texi
+@include functions/chown.texi
+@include functions/cimag.texi
+@include functions/cimagf.texi
+@include functions/cimagl.texi
+@include functions/clearerr.texi
+@include functions/clock.texi
+@include functions/clock_getcpuclockid.texi
+@include functions/clock_getres.texi
+@include functions/clock_gettime.texi
+@include functions/clock_nanosleep.texi
+@include functions/clock_settime.texi
+@include functions/clog.texi
+@include functions/clogf.texi
+@include functions/clogl.texi
+@include functions/close.texi
+@include functions/closedir.texi
+@include functions/closelog.texi
+@include functions/confstr.texi
+@include functions/conj.texi
+@include functions/conjf.texi
+@include functions/conjl.texi
+@include functions/connect.texi
+@include functions/copysign.texi
+@include functions/copysignf.texi
+@include functions/copysignl.texi
+@include functions/cos.texi
+@include functions/cosf.texi
+@include functions/cosh.texi
+@include functions/coshf.texi
+@include functions/coshl.texi
+@include functions/cosl.texi
+@include functions/cpow.texi
+@include functions/cpowf.texi
+@include functions/cpowl.texi
+@include functions/cproj.texi
+@include functions/cprojf.texi
+@include functions/cprojl.texi
+@include functions/creal.texi
+@include functions/crealf.texi
+@include functions/creall.texi
+@include functions/creat.texi
+@include functions/crypt.texi
+@include functions/csin.texi
+@include functions/csinf.texi
+@include functions/csinh.texi
+@include functions/csinhf.texi
+@include functions/csinhl.texi
+@include functions/csinl.texi
+@include functions/csqrt.texi
+@include functions/csqrtf.texi
+@include functions/csqrtl.texi
+@include functions/ctan.texi
+@include functions/ctanf.texi
+@include functions/ctanh.texi
+@include functions/ctanhf.texi
+@include functions/ctanhl.texi
+@include functions/ctanl.texi
+@include functions/ctermid.texi
+@include functions/ctime.texi
+@include functions/ctime_r.texi
+@include functions/daylight.texi
+@include functions/dbm_clearerr.texi
+@include functions/dbm_close.texi
+@include functions/dbm_delete.texi
+@include functions/dbm_error.texi
+@include functions/dbm_fetch.texi
+@include functions/dbm_firstkey.texi
+@include functions/dbm_nextkey.texi
+@include functions/dbm_open.texi
+@include functions/dbm_store.texi
+@include functions/difftime.texi
+@include functions/dirname.texi
+@include functions/div.texi
+@include functions/dlclose.texi
+@include functions/dlerror.texi
+@include functions/dlopen.texi
+@include functions/dlsym.texi
+@include functions/drand48.texi
+@include functions/dup.texi
+@include functions/dup2.texi
+@include functions/ecvt.texi
+@include functions/encrypt.texi
+@include functions/endgrent.texi
+@include functions/endhostent.texi
+@include functions/endnetent.texi
+@include functions/endprotoent.texi
+@include functions/endpwent.texi
+@include functions/endservent.texi
+@include functions/endutxent.texi
+@include functions/environ.texi
+@include functions/erand48.texi
+@include functions/erf.texi
+@include functions/erfc.texi
+@include functions/erfcf.texi
+@include functions/erfcl.texi
+@include functions/erff.texi
+@include functions/erfl.texi
+@include functions/errno.texi
+@include functions/execl.texi
+@include functions/execle.texi
+@include functions/execlp.texi
+@include functions/execv.texi
+@include functions/execve.texi
+@include functions/execvp.texi
+@include functions/exit.texi
+@include functions/exp.texi
+@include functions/exp2.texi
+@include functions/exp2f.texi
+@include functions/exp2l.texi
+@include functions/expf.texi
+@include functions/expl.texi
+@include functions/expm1.texi
+@include functions/expm1f.texi
+@include functions/expm1l.texi
+@include functions/fabs.texi
+@include functions/fabsf.texi
+@include functions/fabsl.texi
+@include functions/fattach.texi
+@include functions/fchdir.texi
+@include functions/fchmod.texi
+@include functions/fchown.texi
+@include functions/fclose.texi
+@include functions/fcntl.texi
+@include functions/fcvt.texi
+@include functions/fdatasync.texi
+@include functions/fdetach.texi
+@include functions/fdim.texi
+@include functions/fdimf.texi
+@include functions/fdiml.texi
+@include functions/fdopen.texi
+@include functions/feclearexcept.texi
+@include functions/fegetenv.texi
+@include functions/fegetexceptflag.texi
+@include functions/fegetround.texi
+@include functions/feholdexcept.texi
+@include functions/feof.texi
+@include functions/feraiseexcept.texi
+@include functions/ferror.texi
+@include functions/fesetenv.texi
+@include functions/fesetexceptflag.texi
+@include functions/fesetround.texi
+@include functions/fetestexcept.texi
+@include functions/feupdateenv.texi
+@include functions/fflush.texi
+@include functions/ffs.texi
+@include functions/fgetc.texi
+@include functions/fgetpos.texi
+@include functions/fgets.texi
+@include functions/fgetwc.texi
+@include functions/fgetws.texi
+@include functions/fileno.texi
+@include functions/flockfile.texi
+@include functions/floor.texi
+@include functions/floorf.texi
+@include functions/floorl.texi
+@include functions/fma.texi
+@include functions/fmaf.texi
+@include functions/fmal.texi
+@include functions/fmax.texi
+@include functions/fmaxf.texi
+@include functions/fmaxl.texi
+@include functions/fmin.texi
+@include functions/fminf.texi
+@include functions/fminl.texi
+@include functions/fmod.texi
+@include functions/fmodf.texi
+@include functions/fmodl.texi
+@include functions/fmtmsg.texi
+@include functions/fnmatch.texi
+@include functions/fopen.texi
+@include functions/fork.texi
+@include functions/fpathconf.texi
+@include functions/fpclassify.texi
+@include functions/fprintf.texi
+@include functions/fputc.texi
+@include functions/fputs.texi
+@include functions/fputwc.texi
+@include functions/fputws.texi
+@include functions/fread.texi
+@include functions/free.texi
+@include functions/freeaddrinfo.texi
+@include functions/freopen.texi
+@include functions/frexp.texi
+@include functions/frexpf.texi
+@include functions/frexpl.texi
+@include functions/fscanf.texi
+@include functions/fseek.texi
+@include functions/fseeko.texi
+@include functions/fsetpos.texi
+@include functions/fstat.texi
+@include functions/fstatvfs.texi
+@include functions/fsync.texi
+@include functions/ftell.texi
+@include functions/ftello.texi
+@include functions/ftime.texi
+@include functions/ftok.texi
+@include functions/ftruncate.texi
+@include functions/ftrylockfile.texi
+@include functions/ftw.texi
+@include functions/funlockfile.texi
+@include functions/fwide.texi
+@include functions/fwprintf.texi
+@include functions/fwrite.texi
+@include functions/fwscanf.texi
+@include functions/gai_strerror.texi
+@include functions/gcvt.texi
+@include functions/getaddrinfo.texi
+@include functions/getc.texi
+@include functions/getc_unlocked.texi
+@include functions/getchar.texi
+@include functions/getchar_unlocked.texi
+@include functions/getcontext.texi
+@include functions/getcwd.texi
+@include functions/getdate.texi
+@include functions/getdelim.texi
+@include functions/getegid.texi
+@include functions/getenv.texi
+@include functions/geteuid.texi
+@include functions/getgid.texi
+@include functions/getgrent.texi
+@include functions/getgrgid.texi
+@include functions/getgrgid_r.texi
+@include functions/getgrnam.texi
+@include functions/getgrnam_r.texi
+@include functions/getgroups.texi
+@include functions/gethostbyaddr.texi
+@include functions/gethostbyname.texi
+@include functions/gethostent.texi
+@include functions/gethostid.texi
+@include functions/gethostname.texi
+@include functions/getitimer.texi
+@include functions/getline.texi
+@include functions/getlogin.texi
+@include functions/getlogin_r.texi
+@include functions/getmsg.texi
+@include functions/getnameinfo.texi
+@include functions/getnetbyaddr.texi
+@include functions/getnetbyname.texi
+@include functions/getnetent.texi
+@include functions/getopt.texi
+@include functions/getpeername.texi
+@include functions/getpgid.texi
+@include functions/getpgrp.texi
+@include functions/getpid.texi
+@include functions/getpmsg.texi
+@include functions/getppid.texi
+@include functions/getpriority.texi
+@include functions/getprotobyname.texi
+@include functions/getprotobynumber.texi
+@include functions/getprotoent.texi
+@include functions/getpwent.texi
+@include functions/getpwnam.texi
+@include functions/getpwnam_r.texi
+@include functions/getpwuid.texi
+@include functions/getpwuid_r.texi
+@include functions/getrlimit.texi
+@include functions/getrusage.texi
+@include functions/gets.texi
+@include functions/getservbyname.texi
+@include functions/getservbyport.texi
+@include functions/getservent.texi
+@include functions/getsid.texi
+@include functions/getsockname.texi
+@include functions/getsockopt.texi
+@include functions/getsubopt.texi
+@include functions/gettimeofday.texi
+@include functions/getuid.texi
+@include functions/getutxent.texi
+@include functions/getutxid.texi
+@include functions/getutxline.texi
+@include functions/getwc.texi
+@include functions/getwchar.texi
+@include functions/getwd.texi
+@include functions/glob.texi
+@include functions/globfree.texi
+@include functions/gmtime.texi
+@include functions/gmtime_r.texi
+@include functions/grantpt.texi
+@include functions/h_errno.texi
+@include functions/hcreate.texi
+@include functions/hdestroy.texi
+@include functions/hsearch.texi
+@include functions/htonl.texi
+@include functions/htons.texi
+@include functions/hypot.texi
+@include functions/hypotf.texi
+@include functions/hypotl.texi
+@include functions/iconv.texi
+@include functions/iconv_close.texi
+@include functions/iconv_open.texi
+@include functions/if_freenameindex.texi
+@include functions/if_indextoname.texi
+@include functions/if_nameindex.texi
+@include functions/if_nametoindex.texi
+@include functions/ilogb.texi
+@include functions/ilogbf.texi
+@include functions/ilogbl.texi
+@include functions/imaxabs.texi
+@include functions/imaxdiv.texi
+@include functions/index.texi
+@include functions/inet_addr.texi
+@include functions/inet_ntoa.texi
+@include functions/inet_ntop.texi
+@include functions/inet_pton.texi
+@include functions/initstate.texi
+@include functions/insque.texi
+@include functions/ioctl.texi
+@include functions/isalnum.texi
+@include functions/isalpha.texi
+@include functions/isascii.texi
+@include functions/isastream.texi
+@include functions/isatty.texi
+@include functions/isblank.texi
+@include functions/iscntrl.texi
+@include functions/isdigit.texi
+@include functions/isfinite.texi
+@include functions/isgraph.texi
+@include functions/isgreater.texi
+@include functions/isgreaterequal.texi
+@include functions/isinf.texi
+@include functions/isless.texi
+@include functions/islessequal.texi
+@include functions/islessgreater.texi
+@include functions/islower.texi
+@include functions/isnan.texi
+@include functions/isnormal.texi
+@include functions/isprint.texi
+@include functions/ispunct.texi
+@include functions/isspace.texi
+@include functions/isunordered.texi
+@include functions/isupper.texi
+@include functions/iswalnum.texi
+@include functions/iswalpha.texi
+@include functions/iswblank.texi
+@include functions/iswcntrl.texi
+@include functions/iswctype.texi
+@include functions/iswdigit.texi
+@include functions/iswgraph.texi
+@include functions/iswlower.texi
+@include functions/iswprint.texi
+@include functions/iswpunct.texi
+@include functions/iswspace.texi
+@include functions/iswupper.texi
+@include functions/iswxdigit.texi
+@include functions/isxdigit.texi
+@include functions/j0.texi
+@include functions/j1.texi
+@include functions/jn.texi
+@include functions/jrand48.texi
+@include functions/kill.texi
+@include functions/killpg.texi
+@include functions/l64a.texi
+@include functions/labs.texi
+@include functions/lchown.texi
+@include functions/lcong48.texi
+@include functions/ldexp.texi
+@include functions/ldexpf.texi
+@include functions/ldexpl.texi
+@include functions/ldiv.texi
+@include functions/lfind.texi
+@include functions/lgamma.texi
+@include functions/lgammaf.texi
+@include functions/lgammal.texi
+@include functions/link.texi
+@include functions/lio_listio.texi
+@include functions/listen.texi
+@include functions/llabs.texi
+@include functions/lldiv.texi
+@include functions/llrint.texi
+@include functions/llrintf.texi
+@include functions/llrintl.texi
+@include functions/llround.texi
+@include functions/llroundf.texi
+@include functions/llroundl.texi
+@include functions/localeconv.texi
+@include functions/localtime.texi
+@include functions/localtime_r.texi
+@include functions/lockf.texi
+@include functions/log.texi
+@include functions/log10.texi
+@include functions/log10f.texi
+@include functions/log10l.texi
+@include functions/log1p.texi
+@include functions/log1pf.texi
+@include functions/log1pl.texi
+@include functions/log2.texi
+@include functions/log2f.texi
+@include functions/log2l.texi
+@include functions/logb.texi
+@include functions/logbf.texi
+@include functions/logbl.texi
+@include functions/logf.texi
+@include functions/logl.texi
+@include functions/longjmp.texi
+@include functions/lrand48.texi
+@include functions/lrint.texi
+@include functions/lrintf.texi
+@include functions/lrintl.texi
+@include functions/lround.texi
+@include functions/lroundf.texi
+@include functions/lroundl.texi
+@include functions/lsearch.texi
+@include functions/lseek.texi
+@include functions/lstat.texi
+@include functions/makecontext.texi
+@include functions/malloc.texi
+@include functions/mblen.texi
+@include functions/mbrlen.texi
+@include functions/mbrtowc.texi
+@include functions/mbsinit.texi
+@include functions/mbsrtowcs.texi
+@include functions/mbstowcs.texi
+@include functions/mbtowc.texi
+@include functions/memccpy.texi
+@include functions/memchr.texi
+@include functions/memcmp.texi
+@include functions/memcpy.texi
+@include functions/memmove.texi
+@include functions/memset.texi
+@include functions/mkdir.texi
+@include functions/mkfifo.texi
+@include functions/mknod.texi
+@include functions/mkstemp.texi
+@include functions/mktemp.texi
+@include functions/mktime.texi
+@include functions/mlock.texi
+@include functions/mlockall.texi
+@include functions/mmap.texi
+@include functions/modf.texi
+@include functions/modff.texi
+@include functions/modfl.texi
+@include functions/mprotect.texi
+@include functions/mq_close.texi
+@include functions/mq_getattr.texi
+@include functions/mq_notify.texi
+@include functions/mq_open.texi
+@include functions/mq_receive.texi
+@include functions/mq_send.texi
+@include functions/mq_setattr.texi
+@include functions/mq_timedreceive.texi
+@include functions/mq_timedsend.texi
+@include functions/mq_unlink.texi
+@include functions/mrand48.texi
+@include functions/msgctl.texi
+@include functions/msgget.texi
+@include functions/msgrcv.texi
+@include functions/msgsnd.texi
+@include functions/msync.texi
+@include functions/munlock.texi
+@include functions/munlockall.texi
+@include functions/munmap.texi
+@include functions/nan.texi
+@include functions/nanf.texi
+@include functions/nanl.texi
+@include functions/nanosleep.texi
+@include functions/nearbyint.texi
+@include functions/nearbyintf.texi
+@include functions/nearbyintl.texi
+@include functions/nextafter.texi
+@include functions/nextafterf.texi
+@include functions/nextafterl.texi
+@include functions/nexttoward.texi
+@include functions/nexttowardf.texi
+@include functions/nexttowardl.texi
+@include functions/nftw.texi
+@include functions/nice.texi
+@include functions/nl_langinfo.texi
+@include functions/nrand48.texi
+@include functions/ntohl.texi
+@include functions/ntohs.texi
+@include functions/open.texi
+@include functions/opendir.texi
+@include functions/openlog.texi
+@include functions/optarg.texi
+@include functions/pathconf.texi
+@include functions/pause.texi
+@include functions/pclose.texi
+@include functions/perror.texi
+@include functions/pipe.texi
+@include functions/poll.texi
+@include functions/popen.texi
+@include functions/posix_fadvise.texi
+@include functions/posix_fallocate.texi
+@include functions/posix_madvise.texi
+@include functions/posix_mem_offset.texi
+@include functions/posix_memalign.texi
+@include functions/posix_openpt.texi
+@include functions/posix_spawn.texi
+@include functions/posix_spawn_file_actions_addclose.texi
+@include functions/posix_spawn_file_actions_adddup2.texi
+@include functions/posix_spawn_file_actions_addopen.texi
+@include functions/posix_spawn_file_actions_destroy.texi
+@include functions/posix_spawn_file_actions_init.texi
+@include functions/posix_spawnattr_destroy.texi
+@include functions/posix_spawnattr_getflags.texi
+@include functions/posix_spawnattr_getpgroup.texi
+@include functions/posix_spawnattr_getschedparam.texi
+@include functions/posix_spawnattr_getschedpolicy.texi
+@include functions/posix_spawnattr_getsigdefault.texi
+@include functions/posix_spawnattr_getsigmask.texi
+@include functions/posix_spawnattr_init.texi
+@include functions/posix_spawnattr_setflags.texi
+@include functions/posix_spawnattr_setpgroup.texi
+@include functions/posix_spawnattr_setschedparam.texi
+@include functions/posix_spawnattr_setschedpolicy.texi
+@include functions/posix_spawnattr_setsigdefault.texi
+@include functions/posix_spawnattr_setsigmask.texi
+@include functions/posix_spawnp.texi
+@include functions/posix_trace_attr_destroy.texi
+@include functions/posix_trace_attr_getclockres.texi
+@include functions/posix_trace_attr_getcreatetime.texi
+@include functions/posix_trace_attr_getgenversion.texi
+@include functions/posix_trace_attr_getinherited.texi
+@include functions/posix_trace_attr_getlogfullpolicy.texi
+@include functions/posix_trace_attr_getlogsize.texi
+@include functions/posix_trace_attr_getmaxdatasize.texi
+@include functions/posix_trace_attr_getmaxsystemeventsize.texi
+@include functions/posix_trace_attr_getmaxusereventsize.texi
+@include functions/posix_trace_attr_getname.texi
+@include functions/posix_trace_attr_getstreamfullpolicy.texi
+@include functions/posix_trace_attr_getstreamsize.texi
+@include functions/posix_trace_attr_init.texi
+@include functions/posix_trace_attr_setinherited.texi
+@include functions/posix_trace_attr_setlogfullpolicy.texi
+@include functions/posix_trace_attr_setlogsize.texi
+@include functions/posix_trace_attr_setmaxdatasize.texi
+@include functions/posix_trace_attr_setname.texi
+@include functions/posix_trace_attr_setstreamfullpolicy.texi
+@include functions/posix_trace_attr_setstreamsize.texi
+@include functions/posix_trace_clear.texi
+@include functions/posix_trace_close.texi
+@include functions/posix_trace_create.texi
+@include functions/posix_trace_create_withlog.texi
+@include functions/posix_trace_event.texi
+@include functions/posix_trace_eventid_equal.texi
+@include functions/posix_trace_eventid_get_name.texi
+@include functions/posix_trace_eventid_open.texi
+@include functions/posix_trace_eventset_add.texi
+@include functions/posix_trace_eventset_del.texi
+@include functions/posix_trace_eventset_empty.texi
+@include functions/posix_trace_eventset_fill.texi
+@include functions/posix_trace_eventset_ismember.texi
+@include functions/posix_trace_eventtypelist_getnext_id.texi
+@include functions/posix_trace_eventtypelist_rewind.texi
+@include functions/posix_trace_flush.texi
+@include functions/posix_trace_get_attr.texi
+@include functions/posix_trace_get_filter.texi
+@include functions/posix_trace_get_status.texi
+@include functions/posix_trace_getnext_event.texi
+@include functions/posix_trace_open.texi
+@include functions/posix_trace_rewind.texi
+@include functions/posix_trace_set_filter.texi
+@include functions/posix_trace_shutdown.texi
+@include functions/posix_trace_start.texi
+@include functions/posix_trace_stop.texi
+@include functions/posix_trace_timedgetnext_event.texi
+@include functions/posix_trace_trid_eventid_open.texi
+@include functions/posix_trace_trygetnext_event.texi
+@include functions/posix_typed_mem_get_info.texi
+@include functions/posix_typed_mem_open.texi
+@include functions/pow.texi
+@include functions/powf.texi
+@include functions/powl.texi
+@include functions/pread.texi
+@include functions/printf.texi
+@include functions/pselect.texi
+@include functions/pthread_atfork.texi
+@include functions/pthread_attr_destroy.texi
+@include functions/pthread_attr_getdetachstate.texi
+@include functions/pthread_attr_getguardsize.texi
+@include functions/pthread_attr_getinheritsched.texi
+@include functions/pthread_attr_getschedparam.texi
+@include functions/pthread_attr_getschedpolicy.texi
+@include functions/pthread_attr_getscope.texi
+@include functions/pthread_attr_getstack.texi
+@include functions/pthread_attr_getstackaddr.texi
+@include functions/pthread_attr_getstacksize.texi
+@include functions/pthread_attr_init.texi
+@include functions/pthread_attr_setdetachstate.texi
+@include functions/pthread_attr_setguardsize.texi
+@include functions/pthread_attr_setinheritsched.texi
+@include functions/pthread_attr_setschedparam.texi
+@include functions/pthread_attr_setschedpolicy.texi
+@include functions/pthread_attr_setscope.texi
+@include functions/pthread_attr_setstack.texi
+@include functions/pthread_attr_setstackaddr.texi
+@include functions/pthread_attr_setstacksize.texi
+@include functions/pthread_barrier_destroy.texi
+@include functions/pthread_barrier_init.texi
+@include functions/pthread_barrier_wait.texi
+@include functions/pthread_barrierattr_destroy.texi
+@include functions/pthread_barrierattr_getpshared.texi
+@include functions/pthread_barrierattr_init.texi
+@include functions/pthread_barrierattr_setpshared.texi
+@include functions/pthread_cancel.texi
+@include functions/pthread_cleanup_pop.texi
+@include functions/pthread_cleanup_push.texi
+@include functions/pthread_cond_broadcast.texi
+@include functions/pthread_cond_destroy.texi
+@include functions/pthread_cond_init.texi
+@include functions/pthread_cond_signal.texi
+@include functions/pthread_cond_timedwait.texi
+@include functions/pthread_cond_wait.texi
+@include functions/pthread_condattr_destroy.texi
+@include functions/pthread_condattr_getclock.texi
+@include functions/pthread_condattr_getpshared.texi
+@include functions/pthread_condattr_init.texi
+@include functions/pthread_condattr_setclock.texi
+@include functions/pthread_condattr_setpshared.texi
+@include functions/pthread_create.texi
+@include functions/pthread_detach.texi
+@include functions/pthread_equal.texi
+@include functions/pthread_exit.texi
+@include functions/pthread_getconcurrency.texi
+@include functions/pthread_getcpuclockid.texi
+@include functions/pthread_getschedparam.texi
+@include functions/pthread_getspecific.texi
+@include functions/pthread_join.texi
+@include functions/pthread_key_create.texi
+@include functions/pthread_key_delete.texi
+@include functions/pthread_kill.texi
+@include functions/pthread_mutex_destroy.texi
+@include functions/pthread_mutex_getprioceiling.texi
+@include functions/pthread_mutex_init.texi
+@include functions/pthread_mutex_lock.texi
+@include functions/pthread_mutex_setprioceiling.texi
+@include functions/pthread_mutex_timedlock.texi
+@include functions/pthread_mutex_trylock.texi
+@include functions/pthread_mutex_unlock.texi
+@include functions/pthread_mutexattr_destroy.texi
+@include functions/pthread_mutexattr_getprioceiling.texi
+@include functions/pthread_mutexattr_getprotocol.texi
+@include functions/pthread_mutexattr_getpshared.texi
+@include functions/pthread_mutexattr_gettype.texi
+@include functions/pthread_mutexattr_init.texi
+@include functions/pthread_mutexattr_setprioceiling.texi
+@include functions/pthread_mutexattr_setprotocol.texi
+@include functions/pthread_mutexattr_setpshared.texi
+@include functions/pthread_mutexattr_settype.texi
+@include functions/pthread_once.texi
+@include functions/pthread_rwlock_destroy.texi
+@include functions/pthread_rwlock_init.texi
+@include functions/pthread_rwlock_rdlock.texi
+@include functions/pthread_rwlock_timedrdlock.texi
+@include functions/pthread_rwlock_timedwrlock.texi
+@include functions/pthread_rwlock_tryrdlock.texi
+@include functions/pthread_rwlock_trywrlock.texi
+@include functions/pthread_rwlock_unlock.texi
+@include functions/pthread_rwlock_wrlock.texi
+@include functions/pthread_rwlockattr_destroy.texi
+@include functions/pthread_rwlockattr_getpshared.texi
+@include functions/pthread_rwlockattr_init.texi
+@include functions/pthread_rwlockattr_setpshared.texi
+@include functions/pthread_self.texi
+@include functions/pthread_setcancelstate.texi
+@include functions/pthread_setcanceltype.texi
+@include functions/pthread_setconcurrency.texi
+@include functions/pthread_setschedparam.texi
+@include functions/pthread_setschedprio.texi
+@include functions/pthread_setspecific.texi
+@include functions/pthread_sigmask.texi
+@include functions/pthread_spin_destroy.texi
+@include functions/pthread_spin_init.texi
+@include functions/pthread_spin_lock.texi
+@include functions/pthread_spin_trylock.texi
+@include functions/pthread_spin_unlock.texi
+@include functions/pthread_testcancel.texi
+@include functions/ptsname.texi
+@include functions/putc.texi
+@include functions/putc_unlocked.texi
+@include functions/putchar.texi
+@include functions/putchar_unlocked.texi
+@include functions/putenv.texi
+@include functions/putmsg.texi
+@include functions/putpmsg.texi
+@include functions/puts.texi
+@include functions/pututxline.texi
+@include functions/putwc.texi
+@include functions/putwchar.texi
+@include functions/pwrite.texi
+@include functions/qsort.texi
+@include functions/raise.texi
+@include functions/rand.texi
+@include functions/rand_r.texi
+@include functions/random.texi
+@include functions/read.texi
+@include functions/readdir.texi
+@include functions/readdir_r.texi
+@include functions/readlink.texi
+@include functions/readv.texi
+@include functions/realloc.texi
+@include functions/realpath.texi
+@include functions/recv.texi
+@include functions/recvfrom.texi
+@include functions/recvmsg.texi
+@include functions/regcomp.texi
+@include functions/regerror.texi
+@include functions/regexec.texi
+@include functions/regfree.texi
+@include functions/remainder.texi
+@include functions/remainderf.texi
+@include functions/remainderl.texi
+@include functions/remove.texi
+@include functions/remque.texi
+@include functions/remquo.texi
+@include functions/remquof.texi
+@include functions/remquol.texi
+@include functions/rename.texi
+@include functions/rewind.texi
+@include functions/rewinddir.texi
+@include functions/rindex.texi
+@include functions/rint.texi
+@include functions/rintf.texi
+@include functions/rintl.texi
+@include functions/rmdir.texi
+@include functions/round.texi
+@include functions/roundf.texi
+@include functions/roundl.texi
+@include functions/scalb.texi
+@include functions/scalbln.texi
+@include functions/scalblnf.texi
+@include functions/scalblnl.texi
+@include functions/scalbn.texi
+@include functions/scalbnf.texi
+@include functions/scalbnl.texi
+@include functions/scanf.texi
+@include functions/sched_get_priority_max.texi
+@include functions/sched_getparam.texi
+@include functions/sched_getscheduler.texi
+@include functions/sched_rr_get_interval.texi
+@include functions/sched_setparam.texi
+@include functions/sched_setscheduler.texi
+@include functions/sched_yield.texi
+@include functions/seed48.texi
+@include functions/seekdir.texi
+@include functions/select.texi
+@include functions/sem_close.texi
+@include functions/sem_destroy.texi
+@include functions/sem_getvalue.texi
+@include functions/sem_init.texi
+@include functions/sem_open.texi
+@include functions/sem_post.texi
+@include functions/sem_timedwait.texi
+@include functions/sem_trywait.texi
+@include functions/sem_unlink.texi
+@include functions/sem_wait.texi
+@include functions/semctl.texi
+@include functions/semget.texi
+@include functions/semop.texi
+@include functions/send.texi
+@include functions/sendmsg.texi
+@include functions/sendto.texi
+@include functions/setbuf.texi
+@include functions/setcontext.texi
+@include functions/setegid.texi
+@include functions/setenv.texi
+@include functions/seteuid.texi
+@include functions/setgid.texi
+@include functions/setgrent.texi
+@include functions/sethostent.texi
+@include functions/setitimer.texi
+@include functions/setjmp.texi
+@include functions/setkey.texi
+@include functions/setlocale.texi
+@include functions/setlogmask.texi
+@include functions/setnetent.texi
+@include functions/setpgid.texi
+@include functions/setpgrp.texi
+@include functions/setpriority.texi
+@include functions/setprotoent.texi
+@include functions/setpwent.texi
+@include functions/setregid.texi
+@include functions/setreuid.texi
+@include functions/setrlimit.texi
+@include functions/setservent.texi
+@include functions/setsid.texi
+@include functions/setsockopt.texi
+@include functions/setstate.texi
+@include functions/setuid.texi
+@include functions/setutxent.texi
+@include functions/setvbuf.texi
+@include functions/shm_open.texi
+@include functions/shm_unlink.texi
+@include functions/shmat.texi
+@include functions/shmctl.texi
+@include functions/shmdt.texi
+@include functions/shmget.texi
+@include functions/shutdown.texi
+@include functions/sigaction.texi
+@include functions/sigaddset.texi
+@include functions/sigaltstack.texi
+@include functions/sigdelset.texi
+@include functions/sigemptyset.texi
+@include functions/sigfillset.texi
+@include functions/sighold.texi
+@include functions/sigignore.texi
+@include functions/siginterrupt.texi
+@include functions/sigismember.texi
+@include functions/siglongjmp.texi
+@include functions/signal.texi
+@include functions/signbit.texi
+@include functions/sigpause.texi
+@include functions/sigpending.texi
+@include functions/sigprocmask.texi
+@include functions/sigqueue.texi
+@include functions/sigrelse.texi
+@include functions/sigset.texi
+@include functions/sigsetjmp.texi
+@include functions/sigsuspend.texi
+@include functions/sigtimedwait.texi
+@include functions/sigwait.texi
+@include functions/sigwaitinfo.texi
+@include functions/sin.texi
+@include functions/sinf.texi
+@include functions/sinh.texi
+@include functions/sinhf.texi
+@include functions/sinhl.texi
+@include functions/sinl.texi
+@include functions/sleep.texi
+@include functions/snprintf.texi
+@include functions/sockatmark.texi
+@include functions/socket.texi
+@include functions/socketpair.texi
+@include functions/sprintf.texi
+@include functions/sqrt.texi
+@include functions/sqrtf.texi
+@include functions/sqrtl.texi
+@include functions/srand.texi
+@include functions/srand48.texi
+@include functions/srandom.texi
+@include functions/sscanf.texi
+@include functions/stat.texi
+@include functions/statvfs.texi
+@include functions/stderr.texi
+@include functions/stdin.texi
+@include functions/stdout.texi
+@include functions/strcasecmp.texi
+@include functions/strcat.texi
+@include functions/strchr.texi
+@include functions/strcmp.texi
+@include functions/strcoll.texi
+@include functions/strcpy.texi
+@include functions/strcspn.texi
+@include functions/strdup.texi
+@include functions/strerror.texi
+@include functions/strerror_r.texi
+@include functions/strfmon.texi
+@include functions/strftime.texi
+@include functions/strlen.texi
+@include functions/strncasecmp.texi
+@include functions/strncat.texi
+@include functions/strncmp.texi
+@include functions/strncpy.texi
+@include functions/strpbrk.texi
+@include functions/strptime.texi
+@include functions/strrchr.texi
+@include functions/strspn.texi
+@include functions/strstr.texi
+@include functions/strtod.texi
+@include functions/strtof.texi
+@include functions/strtoimax.texi
+@include functions/strtok.texi
+@include functions/strtok_r.texi
+@include functions/strtol.texi
+@include functions/strtold.texi
+@include functions/strtoll.texi
+@include functions/strtoul.texi
+@include functions/strtoull.texi
+@include functions/strtoumax.texi
+@include functions/strxfrm.texi
+@include functions/swab.texi
+@include functions/swapcontext.texi
+@include functions/swprintf.texi
+@include functions/swscanf.texi
+@include functions/symlink.texi
+@include functions/sync.texi
+@include functions/sysconf.texi
+@include functions/syslog.texi
+@include functions/system.texi
+@include functions/tan.texi
+@include functions/tanf.texi
+@include functions/tanh.texi
+@include functions/tanhf.texi
+@include functions/tanhl.texi
+@include functions/tanl.texi
+@include functions/tcdrain.texi
+@include functions/tcflow.texi
+@include functions/tcflush.texi
+@include functions/tcgetattr.texi
+@include functions/tcgetpgrp.texi
+@include functions/tcgetsid.texi
+@include functions/tcsendbreak.texi
+@include functions/tcsetattr.texi
+@include functions/tcsetpgrp.texi
+@include functions/tdelete.texi
+@include functions/telldir.texi
+@include functions/tempnam.texi
+@include functions/tfind.texi
+@include functions/tgamma.texi
+@include functions/tgammaf.texi
+@include functions/tgammal.texi
+@include functions/time.texi
+@include functions/timer_create.texi
+@include functions/timer_delete.texi
+@include functions/timer_getoverrun.texi
+@include functions/timer_settime.texi
+@include functions/times.texi
+@include functions/timezone.texi
+@include functions/tmpfile.texi
+@include functions/tmpnam.texi
+@include functions/toascii.texi
+@include functions/tolower.texi
+@include functions/toupper.texi
+@include functions/towctrans.texi
+@include functions/towlower.texi
+@include functions/towupper.texi
+@include functions/trunc.texi
+@include functions/truncate.texi
+@include functions/truncf.texi
+@include functions/truncl.texi
+@include functions/tsearch.texi
+@include functions/ttyname.texi
+@include functions/ttyname_r.texi
+@include functions/twalk.texi
+@include functions/tzname.texi
+@include functions/tzset.texi
+@include functions/ualarm.texi
+@include functions/ulimit.texi
+@include functions/umask.texi
+@include functions/uname.texi
+@include functions/ungetc.texi
+@include functions/ungetwc.texi
+@include functions/unlink.texi
+@include functions/unlockpt.texi
+@include functions/unsetenv.texi
+@include functions/usleep.texi
+@include functions/utime.texi
+@include functions/utimes.texi
+@include functions/va_arg.texi
+@include functions/va_copy.texi
+@include functions/va_end.texi
+@include functions/va_start.texi
+@include functions/vfork.texi
+@include functions/vfprintf.texi
+@include functions/vfscanf.texi
+@include functions/vfwprintf.texi
+@include functions/vfwscanf.texi
+@include functions/vprintf.texi
+@include functions/vscanf.texi
+@include functions/vsnprintf.texi
+@include functions/vsprintf.texi
+@include functions/vsscanf.texi
+@include functions/vswprintf.texi
+@include functions/vswscanf.texi
+@include functions/vwprintf.texi
+@include functions/vwscanf.texi
+@include functions/wait.texi
+@include functions/waitid.texi
+@include functions/waitpid.texi
+@include functions/wcrtomb.texi
+@include functions/wcscat.texi
+@include functions/wcschr.texi
+@include functions/wcscmp.texi
+@include functions/wcscoll.texi
+@include functions/wcscpy.texi
+@include functions/wcscspn.texi
+@include functions/wcsftime.texi
+@include functions/wcslen.texi
+@include functions/wcsncat.texi
+@include functions/wcsncmp.texi
+@include functions/wcsncpy.texi
+@include functions/wcspbrk.texi
+@include functions/wcsrchr.texi
+@include functions/wcsrtombs.texi
+@include functions/wcsspn.texi
+@include functions/wcsstr.texi
+@include functions/wcstod.texi
+@include functions/wcstof.texi
+@include functions/wcstoimax.texi
+@include functions/wcstok.texi
+@include functions/wcstol.texi
+@include functions/wcstold.texi
+@include functions/wcstoll.texi
+@include functions/wcstombs.texi
+@include functions/wcstoul.texi
+@include functions/wcstoull.texi
+@include functions/wcstoumax.texi
+@include functions/wcswcs.texi
+@include functions/wcswidth.texi
+@include functions/wcsxfrm.texi
+@include functions/wctob.texi
+@include functions/wctomb.texi
+@include functions/wctrans.texi
+@include functions/wctype.texi
+@include functions/wcwidth.texi
+@include functions/wmemchr.texi
+@include functions/wmemcmp.texi
+@include functions/wmemcpy.texi
+@include functions/wmemmove.texi
+@include functions/wmemset.texi
+@include functions/wordexp.texi
+@include functions/wordfree.texi
+@include functions/wprintf.texi
+@include functions/write.texi
+@include functions/writev.texi
+@include functions/wscanf.texi
+@include functions/y0.texi
+@include functions/y1.texi
+@include functions/yn.texi
+
+@node Particular Modules
+@chapter Particular Modules
 
 @menu
-* GNU Free Documentation License::  License for copying this manual.
+* Quoting::
+* error and progname::
+* gcd::
+* Regular expressions::
+* Supporting Relocation::
 @end menu
 
+@include quote.texi
+@include error.texi
+@include gcd.texi
+@include relocatable-maint.texi
+
+@node Regular expressions
+@section Regular expressions
+
+Gnulib supports many different types of regular expressions; although
+the underlying features are the same or identical, the syntax used
+varies.  The descriptions given here for the different types are
+generated automatically.
+
+@include regexprops-generic.texi
+
+
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
+
 @include fdl.texi
 
 
@@ -698,3 +2926,8 @@ because they were missing.
 @printindex cp
 
 @bye
+
+@c Local Variables:
+@c indent-tabs-mode: nil
+@c whitespace-check-buffer-indent: nil
+@c End: