@end ifclear
@comment %**end of header
-@set UPDATED $Date: 2007-09-09 13:20:45 $
+@comment Defines the UPDATED variable.
+@include updated-stamp
@copying
This manual is for GNU Gnulib (updated @value{UPDATED}),
Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-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.''
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
+copy of the license is included in the section entitled ``GNU Free
+Documentation License''.
@end copying
@dircategory Software development
* Index::
@end menu
+@c This is used at the beginning of four chapters.
+@macro nosuchmodulenote{thing}
+The notation ``Gnulib module: ---'' means that Gnulib does not provide a
+module providing a substitute for the \thing\. 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: No one so far
+found this \thing\ important enough to contribute a substitute for it.
+If you need this particular \thing\, you may write to
+@w{@code{<bug-gnulib at gnu dot org>}}.
+@end macro
+
+
@node Introduction
@chapter Introduction
@end itemize
@menu
+* Benefits::
* Library vs Reusable Code::
* Portability and Application Code::
* Modules::
your header file as something available for C programs only, or for C
and C++ programs alike.
+Note that putting a @code{#include} in an @code{extern "C" @{ ... @}}
+block yields a syntax error in C++ mode on some platforms (e.g., glibc
+systems with g++ v3.3 to v4.2, AIX, OSF/1, IRIX). For this reason, it
+is recommended to place the @code{#include} before the @code{extern
+"C"} block.
+
@subheading Include ordering
When writing a gnulib module, or even in general, a good way to order
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}.
+Windows 2000 does not have getaddrinfo in its @file{WS2_32.DLL}.
Thus, if you want to assume Windows XP or later, you can add
AC_DEFINE(WINVER, 0x0501) to avoid compiling to (partial) getaddrinfo
implementation.
-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.
-
+If you want to support Windows 2000, don't do anything. The
+replacement function will open @file{WS2_32.DLL} during run-time to
+see if there is a getaddrinfo function available, and use it when
+available.
@node Libtool and Windows
@section Libtool and Windows
gnulib git or cvs checkout (typically a Linux machine), use
@example
-gnulib-tool --create-megatestdir --with-tests --dir=..."
+gnulib-tool --create-megatestdir --with-tests --dir=...
@end example
Note: The created directory uses ca. 512 MB on disk.
substituted by Gnulib, which portability pitfalls are fixed by Gnulib, and
which (known) portability problems are not worked around by Gnulib.
+@nosuchmodulenote header file
+
@menu
* aio.h::
* arpa/inet.h::
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: No one 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>}.
+@nosuchmodulenote function
@menu
* FD_CLR::
pitfalls are fixed by Gnulib, and which (known) portability problems are
not worked around by Gnulib.
+@nosuchmodulenote header file
+
@menu
* a.out.h::
* aliases.h::
* pty.h::
* resolv.h::
* shadow.h::
+* sys/ioctl.h::
* sysexits.h::
* ttyent.h::
@end menu
@include glibc-headers/pty.texi
@include glibc-headers/resolv.texi
@include glibc-headers/shadow.texi
+@include glibc-headers/sys_ioctl.texi
@include glibc-headers/sysexits.texi
@include glibc-headers/ttyent.texi
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: No one 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>}.
+@nosuchmodulenote function
This list of functions is sorted according to the header that declares them.
@menu
-* Glibc aio.h::
-* Glibc aliases.h::
-* Glibc argp.h::
-* Glibc argz.h::
-* Glibc arpa/inet.h::
-* Glibc byteswap.h::
-* Glibc complex.h::
-* Glibc crypt.h::
-* Glibc ctype.h::
-* Glibc dirent.h::
-* Glibc dlfcn.h::
-* Glibc envz.h::
-* Glibc err.h::
-* Glibc errno.h::
-* Glibc error.h::
-* Glibc execinfo.h::
-* Glibc fcntl.h::
-* Glibc fenv.h::
-* Glibc fmtmsg.h::
-* Glibc fstab.h::
-* Glibc fts.h::
-* Glibc getopt.h::
-* Glibc glob.h::
-* Glibc gnu/libc-version.h::
-* Glibc grp.h::
-* Glibc ifaddrs.h::
-* Glibc langinfo.h::
-* Glibc libintl.h::
-* Glibc link.h::
-* Glibc locale.h::
-* Glibc malloc.h::
-* Glibc math.h::
-* Glibc mcheck.h::
-* Glibc monetary.h::
-* Glibc mntent.h::
-* Glibc netdb.h::
-* Glibc netinet/ether.h::
-* Glibc netinet/in.h::
-* Glibc obstack.h::
-* Glibc printf.h::
-* Glibc pthread.h::
-* Glibc pwd.h::
-* Glibc regex.h::
-* Glibc regexp.h::
-* Glibc resolv.h::
-* Glibc rpc/auth.h::
-* Glibc rpc/auth_des.h::
-* Glibc rpc/auth_unix.h::
-* Glibc rpc/clnt.h::
-* Glibc rpc/des_crypt.h::
-* Glibc rpc/key_prot.h::
-* Glibc rpc/netdb.h::
-* Glibc rpc/pmap_clnt.h::
-* Glibc rpc/pmap_prot.h::
-* Glibc rpc/pmap_rmt.h::
-* Glibc rpc/rpc_msg.h::
-* Glibc rpc/svc.h::
-* Glibc rpc/xdr.h::
-* Glibc rpcsvc/nislib.h::
-* Glibc rpcsvc/nis_callback.h::
-* Glibc rpcsvc/yp.h::
-* Glibc rpcsvc/yp_prot.h::
-* Glibc rpcsvc/ypclnt.h::
-* Glibc rpcsvc/ypupd.h::
-* Glibc sched.h::
-* Glibc search.h::
-* Glibc shadow.h::
-* Glibc signal.h::
-* Glibc stdio.h::
-* Glibc stdlib.h::
-* Glibc string.h::
-* Glibc sys/capability.h::
-* Glibc sys/epoll.h::
-* Glibc sys/file.h::
-* Glibc sys/fsuid.h::
-* Glibc sys/gmon.h::
-* Glibc sys/io.h and sys/perm.h::
-* Glibc sys/kdaemon.h::
-* Glibc sys/klog.h::
-* Glibc sys/mman.h::
-* Glibc sys/mount.h::
-* Glibc sys/personality.h::
-* Glibc sys/prctl.h::
-* Glibc sys/profil.h::
-* Glibc sys/ptrace.h::
-* Glibc sys/quota.h::
-* Glibc sys/reboot.h::
-* Glibc sys/sem.h::
-* Glibc sys/sendfile.h::
-* Glibc sys/socket.h::
-* Glibc sys/stat.h::
-* Glibc sys/statfs.h::
-* Glibc sys/swap.h::
-* Glibc sys/sysctl.h::
-* Glibc sys/sysinfo.h::
-* Glibc sys/syslog.h::
-* Glibc sys/sysmacros.h::
-* Glibc sys/time.h::
-* Glibc sys/timex.h::
-* Glibc sys/ustat.h::
-* Glibc sys/vlimit.h::
-* Glibc sys/vm86.h::
-* Glibc sys/vtimes.h::
-* Glibc sys/wait.h::
-* Glibc sys/xattr.h::
-* Glibc termios.h::
-* Glibc time.h::
-* Glibc ttyent.h::
-* Glibc unistd.h::
-* Glibc utmp.h::
-* Glibc utmpx.h::
-* Glibc wchar.h::
-* Glibc wctype.h::
+* Glibc aio.h::
+* Glibc aliases.h::
+* Glibc argp.h::
+* Glibc argz.h::
+* Glibc arpa/inet.h::
+* Glibc byteswap.h::
+* Glibc complex.h::
+* Glibc crypt.h::
+* Glibc ctype.h::
+* Glibc dirent.h::
+* Glibc dlfcn.h::
+* Glibc envz.h::
+* Glibc err.h::
+* Glibc errno.h::
+* Glibc error.h::
+* Glibc execinfo.h::
+* Glibc fcntl.h::
+* Glibc fenv.h::
+* Glibc fmtmsg.h::
+* Glibc fstab.h::
+* Glibc fts.h::
+* Glibc getopt.h::
+* Glibc glob.h::
+* Glibc gnu/libc-version.h::
+* Glibc grp.h::
+* Glibc ifaddrs.h::
+* Glibc langinfo.h::
+* Glibc libintl.h::
+* Glibc link.h::
+* Glibc locale.h::
+* Glibc malloc.h::
+* Glibc math.h::
+* Glibc mcheck.h::
+* Glibc monetary.h::
+* Glibc mntent.h::
+* Glibc netdb.h::
+* Glibc netinet/ether.h::
+* Glibc netinet/in.h::
+* Glibc obstack.h::
+* Glibc printf.h::
+* Glibc pthread.h::
+* Glibc pwd.h::
+* Glibc regex.h::
+* Glibc regexp.h::
+* Glibc resolv.h::
+* Glibc rpc/auth.h::
+* Glibc rpc/auth_des.h::
+* Glibc rpc/auth_unix.h::
+* Glibc rpc/clnt.h::
+* Glibc rpc/des_crypt.h::
+* Glibc rpc/key_prot.h::
+* Glibc rpc/netdb.h::
+* Glibc rpc/pmap_clnt.h::
+* Glibc rpc/pmap_prot.h::
+* Glibc rpc/pmap_rmt.h::
+* Glibc rpc/rpc_msg.h::
+* Glibc rpc/svc.h::
+* Glibc rpc/xdr.h::
+* Glibc rpcsvc/nislib.h::
+* Glibc rpcsvc/nis_callback.h::
+* Glibc rpcsvc/yp.h::
+* Glibc rpcsvc/yp_prot.h::
+* Glibc rpcsvc/ypclnt.h::
+* Glibc rpcsvc/ypupd.h::
+* Glibc sched.h::
+* Glibc search.h::
+* Glibc shadow.h::
+* Glibc signal.h::
+* Glibc stdio.h::
+* Glibc stdlib.h::
+* Glibc string.h::
+* Glibc sys/capability.h::
+* Glibc sys/epoll.h::
+* Glibc sys/file.h::
+* Glibc sys/fsuid.h::
+* Glibc sys/gmon.h::
+* Glibc sys/io.h and sys/perm.h::
+* Glibc sys/kdaemon.h::
+* Glibc sys/klog.h::
+* Glibc sys/mman.h::
+* Glibc sys/mount.h::
+* Glibc sys/personality.h::
+* Glibc sys/prctl.h::
+* Glibc sys/profil.h::
+* Glibc sys/ptrace.h::
+* Glibc sys/quota.h::
+* Glibc sys/reboot.h::
+* Glibc sys/sem.h::
+* Glibc sys/sendfile.h::
+* Glibc sys/socket.h::
+* Glibc sys/stat.h::
+* Glibc sys/statfs.h::
+* Glibc sys/swap.h::
+* Glibc sys/sysctl.h::
+* Glibc sys/sysinfo.h::
+* Glibc sys/syslog.h::
+* Glibc sys/sysmacros.h::
+* Glibc sys/time.h::
+* Glibc sys/timex.h::
+* Glibc sys/ustat.h::
+* Glibc sys/vlimit.h::
+* Glibc sys/vm86.h::
+* Glibc sys/vtimes.h::
+* Glibc sys/wait.h::
+* Glibc sys/xattr.h::
+* Glibc termios.h::
+* Glibc time.h::
+* Glibc ttyent.h::
+* Glibc unistd.h::
+* Glibc utmp.h::
+* Glibc utmpx.h::
+* Glibc wchar.h::
+* Glibc wctype.h::
@end menu
@c @node Glibc a.out.h
@include glibc-functions/ioperm.texi
@include glibc-functions/iopl.texi
+@c @node Glibc sys/ioctl.h
+@c @section Glibc @code{<sys/ioctl.h>}
+
@c @node Glibc sys/ipc.h
@c @section Glibc Extensions to @code{<sys/ipc.h>}
* gcd::
* Regular expressions::
* Supporting Relocation::
+* func::
+* warnings::
+* manywarnings::
@end menu
@node alloca
@include regexprops-generic.texi
+@include func.texi
+
+@include warnings.texi
+
+@include manywarnings.texi
+
@node GNU Free Documentation License
@appendix GNU Free Documentation License
-@include fdl.texi
+@include fdl-1.3.texi
@node Index