aboutsummaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
commit0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch)
tree2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /manual
parent7d58530341304d403a6626d7f7a1913165fe2f32 (diff)
downloadglibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.xz
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.zip
2.5-18.1
Diffstat (limited to 'manual')
-rw-r--r--manual/.cvsignore2
-rw-r--r--manual/Makefile9
-rw-r--r--manual/dir1
-rw-r--r--manual/errno.texi36
-rw-r--r--manual/filesys.texi77
-rw-r--r--manual/install.texi167
-rw-r--r--manual/llio.texi22
-rw-r--r--manual/maint.texi10
-rw-r--r--manual/memory.texi13
-rw-r--r--manual/message.texi4
-rw-r--r--manual/pattern.texi6
-rw-r--r--manual/signal.texi4
-rw-r--r--manual/stdio.texi20
-rw-r--r--manual/string.texi8
-rw-r--r--manual/texinfo.tex5649
-rw-r--r--manual/time.texi3
-rw-r--r--manual/users.texi3
17 files changed, 3180 insertions, 2854 deletions
diff --git a/manual/.cvsignore b/manual/.cvsignore
index f1254e92d3..54abbbb5a4 100644
--- a/manual/.cvsignore
+++ b/manual/.cvsignore
@@ -9,6 +9,6 @@ glibc-*
*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
texis top-menu.texi chapters.texi summary.texi stamp-*
-distinfo dir-add.texinfo
+distinfo dir-add.texinfo dir-add.texi
libm-err.texi
diff --git a/manual/Makefile b/manual/Makefile
index a29fdd29a3..c5866eb9de 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-1999,2000,2001,2002,2003,2004
+# Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2006
# Free Software Foundation, Inc.
# This file is part of the GNU C Library.
@@ -80,7 +80,7 @@ libc.dvi libc.pdf libc.info: chapters.texi top-menu.texi dir-add.texi \
libc.dvi libc.pdf: texinfo.tex
html: libc/index.html
-libc/index.html: chapters.texi top-menu.texi libm-err.texi
+libc/index.html: chapters.texi top-menu.texi dir-add.texi libm-err.texi
$(MAKEINFO) --html libc.texinfo
# Generate the summary from the Texinfo source files for each chapter.
@@ -166,7 +166,7 @@ glibc-doc-$(edition).tar: $(doc-only-dist) $(distribute)
.PHONY: mostlyclean distclean realclean clean
mostlyclean:
-rm -f libc.dvi libc.pdf libc.tmp libc.info*
- -rm -f $(objpfx)stubs $(objpfx)distinfo
+ -rm -f $(objpfx)stubs
-rm -f $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
clean: mostlyclean
distclean: clean
@@ -220,8 +220,7 @@ subdir_%: ;
# ../Rules defines them for code subdirectories; for us, they are no-ops.
# None of these should be `subdir_TARGET'; those targets are transformed
# by the implicit rule above into `TARGET' deps.
-glibc-targets := lib objects objs others tests xtests lint.out \
- echo-headers echo-distinfo
+glibc-targets := lib objects objs others tests xtests lint.out echo-headers
.PHONY: $(glibc-targets)
$(glibc-targets):
diff --git a/manual/dir b/manual/dir
index f5920b12be..ee98f79f59 100644
--- a/manual/dir
+++ b/manual/dir
@@ -1,4 +1,3 @@
-$Id$
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is (dir)Top.
diff --git a/manual/errno.texi b/manual/errno.texi
index c799d268f8..e230506427 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -1229,6 +1229,42 @@ They are not yet documented.}
@comment errno ???/???
@end deftypevr
+@comment errno.h
+@comment Linux: Required key not available
+@deftypevr Macro int ENOKEY
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key has expired
+@deftypevr Macro int EKEYEXPIRED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key has been revoked
+@deftypevr Macro int EKEYREVOKED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key was rejected by service
+@deftypevr Macro int EKEYREJECTED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Owner died
+@deftypevr Macro int EOWNERDEAD
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: State not recoverable
+@deftypevr Macro int ENOTRECOVERABLE
+@comment errno ???/???
+@end deftypevr
+
@node Error Messages, , Error Codes, Error Reporting
@section Error Messages
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 70889c2f85..2436f22e88 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -196,11 +196,17 @@ files in a directory, perhaps as part of a menu.
@cindex directory stream
The @code{opendir} function opens a @dfn{directory stream} whose
-elements are directory entries. You use the @code{readdir} function on
-the directory stream to retrieve these entries, represented as
-@w{@code{struct dirent}} objects. The name of the file for each entry is
-stored in the @code{d_name} member of this structure. There are obvious
-parallels here to the stream facilities for ordinary files, described in
+elements are directory entries. Alternatively @code{fdopendir} can be
+used which can have advantages if the program needs to have more
+control over the way the directory is opened for reading. This
+allows, for instance, to pass the @code{O_NOATIME} flag to
+@code{open}.
+
+You use the @code{readdir} function on the directory stream to
+retrieve these entries, represented as @w{@code{struct dirent}}
+objects. The name of the file for each entry is stored in the
+@code{d_name} member of this structure. There are obvious parallels
+here to the stream facilities for ordinary files, described in
@ref{I/O on Streams}.
@menu
@@ -349,6 +355,9 @@ The process has too many files open.
The entire system, or perhaps the file system which contains the
directory, cannot support any additional open files at the moment.
(This problem cannot happen on the GNU system.)
+
+@item ENOMEM
+Not enough memory available.
@end table
The @code{DIR} type is typically implemented using a file descriptor,
@@ -357,6 +366,48 @@ and the @code{opendir} function in terms of the @code{open} function.
file descriptors are closed on @code{exec} (@pxref{Executing a File}).
@end deftypefun
+The directory which is opened for reading by @code{opendir} is
+identified by the name. In some situations this is not sufficient.
+Or the way @code{opendir} implicitly creates a file descriptor for the
+directory is not the way a program might want it. In these cases an
+alternative interface can be used.
+
+@comment dirent.h
+@comment GNU
+@deftypefun {DIR *} fdopendir (int @var{fd})
+The @code{fdopendir} function works just like @code{opendir} but
+instead of taking a file name and opening a file descriptor for the
+directory the caller is required to provide a file descriptor. This
+file descriptor is then used in subsequent uses of the returned
+directory stream object.
+
+The caller must make sure the file descriptor is associated with a
+directory and it allows reading.
+
+If the @code{fdopendir} call returns successfully the file descriptor
+is now under the control of the system. It can be used in the same
+way the descriptor implicitly created by @code{opendir} can be used
+but the program must not close the descriptor.
+
+In case the function is unsuccessful it returns a null pointer and the
+file descriptor remains to be usable by the program. The following
+@code{errno} error conditions are defined for this function:
+
+@table @code
+@item EBADF
+The file descriptor is not valid.
+
+@item ENOTDIR
+The file descriptor is not associated with a directory.
+
+@item EINVAL
+The descriptor does not allow reading the directory content.
+
+@item ENOMEM
+Not enough memory available.
+@end table
+@end deftypefun
+
In some situations it can be desirable to get hold of the file
descriptor which is created by the @code{opendir} call. For instance,
to switch the current working directory to the directory just read the
@@ -531,7 +582,7 @@ added or removed since you last called @code{opendir} or
@comment dirent.h
@comment BSD
-@deftypefun off_t telldir (DIR *@var{dirstream})
+@deftypefun long int telldir (DIR *@var{dirstream})
The @code{telldir} function returns the file position of the directory
stream @var{dirstream}. You can use this value with @code{seekdir} to
restore the directory stream to that position.
@@ -539,7 +590,7 @@ restore the directory stream to that position.
@comment dirent.h
@comment BSD
-@deftypefun void seekdir (DIR *@var{dirstream}, off_t @var{pos})
+@deftypefun void seekdir (DIR *@var{dirstream}, long int @var{pos})
The @code{seekdir} function sets the file position of the directory
stream @var{dirstream} to @var{pos}. The value @var{pos} must be the
result of a previous call to @code{telldir} on this particular stream;
@@ -1199,10 +1250,10 @@ result is passed back as the return value of the function in a block of
memory allocated with @code{malloc}. If the result is not used anymore
the memory should be freed with a call to @code{free}.
-In any of the path components except the last one is missing the
-function returns a NULL pointer. This is also what is returned if the
-length of the path reaches or exceeds @code{PATH_MAX} characters. In
-any case @code{errno} is set accordingly.
+If any of the path components is missing the function returns a NULL
+pointer. This is also what is returned if the length of the path
+reaches or exceeds @code{PATH_MAX} characters. In any case
+@code{errno} is set accordingly.
@table @code
@item ENAMETOOLONG
@@ -1740,7 +1791,7 @@ is transparently replaced by @code{ino64_t}.
@deftp {Data Type} ino64_t
This is an arithmetic data type used to represent file serial numbers
for the use in LFS. In the GNU system, this type is equivalent to
-@code{unsigned long longint}.
+@code{unsigned long long int}.
When compiling with @code{_FILE_OFFSET_BITS == 64} this type is
available under the name @code{ino_t}.
@@ -2755,7 +2806,7 @@ function.
@comment sys/time.h
@comment BSD
-@deftypefun int futimes (int *@var{fd}, struct timeval @var{tvp}@t{[2]})
+@deftypefun int futimes (int @var{fd}, struct timeval @var{tvp}@t{[2]})
This function is like @code{utimes}, except that it takes an open file
descriptor as an argument instead of a file name. @xref{Low-Level
I/O}. This function comes from FreeBSD, and is not available on all
diff --git a/manual/install.texi b/manual/install.texi
index 2907715abc..0cd4d622de 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -14,15 +14,7 @@ installation. It is updated more frequently than this manual.
Features can be added to GNU Libc via @dfn{add-on} bundles. These are
separate tar files, which you unpack into the top level of the source
tree. Then you give @code{configure} the @samp{--enable-add-ons} option
-to activate them, and they will be compiled into the library. As of the
-2.2 release, one important component of glibc is distributed as
-``official'' add-ons: the linuxthreads add-on. Unless you are doing an
-unusual installation, you should get this.
-
-Support for POSIX threads is maintained by someone else, so it's in a
-separate package. It is only available for GNU/Linux systems, but this will
-change in the future. Get it from the same place you got the main
-bundle; the file is @file{glibc-linuxthreads-@var{VERSION}.tar.gz}.
+to activate them, and they will be compiled into the library.
You will need recent versions of several GNU tools: definitely GCC and
GNU Make, and possibly others. @xref{Tools for Compilation}, below.
@@ -32,7 +24,6 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
* Running make install:: How to install it once you've got it
compiled.
* Tools for Compilation:: You'll need these first.
-* Supported Configurations:: What it runs on, what it doesn't.
* Linux:: Specific advice for GNU/Linux systems.
* Reporting Bugs:: So they'll get fixed.
@end menu
@@ -42,34 +33,31 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
@cindex configuring
@cindex compiling
-GNU libc can be compiled in the source directory, but we strongly advise
-building it in a separate build directory. For example, if you have
- unpacked
-the glibc sources in @file{/src/gnu/glibc-2.3}, create a directory
+GNU libc cannot be compiled in the source directory. You must build
+it in a separate build directory. For example, if you have unpacked
+the glibc sources in @file{/src/gnu/glibc-2.4}, create a directory
@file{/src/gnu/glibc-build} to put the object files in. This allows
-removing the whole build directory in case an error occurs, which is the
-safest way to get a fresh start and should always be done.
+removing the whole build directory in case an error occurs, which is
+the safest way to get a fresh start and should always be done.
From your object directory, run the shell script @file{configure} located
at the top level of the source tree. In the scenario above, you'd type
@smallexample
-$ ../glibc-2.3/configure @var{args@dots{}}
+$ ../glibc-2.4/configure @var{args@dots{}}
@end smallexample
-Please note that even if you're building in a separate build directory,
-the compilation needs to modify a few files in the source
+Please note that even though you're building in a separate build
+directory, the compilation needs to modify a few files in the source
directory, especially some files in the manual subdirectory.
@noindent
-@code{configure} takes many options, but you can get away with knowing
-only two: @samp{--prefix} and @samp{--enable-add-ons}. The
-@code{--prefix} option tells @code{configure} where you want glibc
-installed. This defaults to @file{/usr/local}. The
-@samp{--enable-add-ons} option tells @code{configure} to use all the
-add-on bundles it finds in the source directory. Since important
-functionality is provided in add-ons, you should always specify this
-option.
+@code{configure} takes many options, but the only one that is usually
+mandatory is @samp{--prefix}. This option tells @code{configure}
+where you want glibc installed. This defaults to @file{/usr/local},
+but the normal setting to install as the standard system library is
+@samp{--prefix=/usr} for GNU/Linux systems and @samp{--prefix=} (an
+empty prefix) for GNU/Hurd systems.
It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
the environment when running @code{configure}. @var{CC} selects the C
@@ -103,11 +91,15 @@ compile glibc with a newer set of kernel headers than the ones found in
@file{/usr/include}.
@item --enable-add-ons[=@var{list}]
-Enable add-on packages in your source tree. If this option is specified
-with no list, it enables all the add-on packages it finds. If you do
-not wish to use some add-on packages that you have present in your source
-tree, give this option a list of the add-ons that you @emph{do} want
-used, like this: @samp{--enable-add-ons=linuxthreads}
+Specify add-on packages to include in the build. If this option is
+specified with no list, it enables all the add-on packages it finds in
+the main source directory; this is the default behavior. You may
+specify an explicit list of add-ons to use in @var{list}, separated by
+spaces or commas (if you use spaces, remember to quote them from the
+shell). Each add-on in @var{list} can be an absolute directory name
+or can be a directory name relative to the main source directory, or
+relative to the build directory (that is, the current working directory).
+For example, @samp{--enable-add-ons=nptl,../glibc-libidn-2.4}.
@item --enable-kernel=@var{version}
This option is currently only useful on GNU/Linux systems. The
@@ -194,11 +186,10 @@ produce a lot of output, some of which may look like errors from
@code{make} but isn't. Look for error messages from @code{make}
containing @samp{***}. Those indicate that something is seriously wrong.
-The compilation process can take several hours. Expect at least two
-hours for the default configuration on i586 for GNU/Linux. For Hurd,
-times are much longer. Some complex modules may take a very long time
-to compile, as much as several minutes on slower machines. Do not
-panic if the compiler appears to hang.
+The compilation process can take a long time, depending on the
+configuration and the speed of your machine. Some complex modules may
+take a very long time to compile, as much as several minutes on slower
+machines. Do not panic if the compiler appears to hang.
If you want to run a parallel make, simply pass the @samp{-j} option
with an appropriate numeric parameter to @code{make}. You need a recent
@@ -337,11 +328,18 @@ recommend GNU @code{make} version 3.79. All earlier versions have severe
bugs or lack features.
@item
-GCC 3.2 or newer
+GCC 3.4 or newer, GCC 4.1 recommended
The GNU C library can only be compiled with the GNU C compiler family.
-As of the 2.3 release, GCC 3.2 or higher is required. As of this
-writing, GCC 3.2 is the compiler we advise to use.
+For the 2.3 releases, GCC 3.2 or higher is required; GCC 3.4 is the
+compiler we advise to use for 2.3 versions.
+For the 2.4 release, GCC 3.4 or higher is required; as of this
+writing, GCC 4.1 is the compiler we advise to use for current versions.
+On certain machines including @code{powerpc64}, compilers prior to GCC
+4.0 have bugs that prevent them compiling the C library code in the
+2.4 release. On other machines, GCC 4.1 is required to build the C
+library with support for the correct @code{long double} type format;
+these include @code{powerpc} (32 bit), @code{s390} and @code{s390x}.
You can use whatever compiler you like to compile programs that use GNU
libc, but be aware that both GCC 2.7 and 2.8 have bugs in their
@@ -350,7 +348,7 @@ floating-point support that may be triggered by the math library.
Check the FAQ for any special compiler issues on particular platforms.
@item
-GNU @code{binutils} 2.13 or later
+GNU @code{binutils} 2.15 or later
You must use GNU @code{binutils} (as and ld) to build the GNU C library.
No other assembler or linker has the necessary functionality at the
@@ -365,11 +363,10 @@ understand all the tags used in the document, and the installation
mechanism for the info files is not present or works differently.
@item
-GNU @code{awk} 3.0, or some other POSIX awk
+GNU @code{awk} 3.0, or higher
-@code{Awk} is used in several places to generate files. The scripts
-should work with any POSIX-compliant @code{awk} implementation;
-@code{gawk} 3.0 and @code{mawk} 1.3 are known to work.
+@code{Awk} is used in several places to generate files.
+@code{gawk} 3.0 is known to work.
@item
Perl 5
@@ -409,86 +406,6 @@ GNU @code{gettext} 0.10.36 or later
You may also need these packages if you upgrade your source tree using
patches, although we try to avoid this.
-@node Supported Configurations
-@appendixsec Supported Configurations
-@cindex configurations, all supported
-
-The GNU C Library currently supports configurations that match the
-following patterns:
-
-@smallexample
-alpha@var{*}-@var{*}-linux
-arm-@var{*}-linux
-cris-@var{*}-linux
-hppa-@var{*}-linux
-i@var{x}86-@var{*}-gnu
-i@var{x}86-@var{*}-linux
-ia64-@var{*}-linux
-m68k-@var{*}-linux
-mips@var{*}-@var{*}-linux
-powerpc-@var{*}-linux
-s390-@var{*}-linux
-s390x-@var{*}-linux
-sparc-@var{*}-linux
-sparc64-@var{*}-linux
-x86_64-@var{*}-linux
-@end smallexample
-
-Former releases of this library (version 2.1 and/or 2.0) used to run on
-the following configurations:
-
-@smallexample
-arm-@var{*}-linuxaout
-arm-@var{*}-none
-@end smallexample
-
-Very early releases (version 1.09.1 and perhaps earlier versions) used
-to run on the following configurations:
-
-@smallexample
-alpha-dec-osf1
-alpha-@var{*}-linuxecoff
-i@var{x}86-@var{*}-bsd4.3
-i@var{x}86-@var{*}-isc2.2
-i@var{x}86-@var{*}-isc3.@var{n}
-i@var{x}86-@var{*}-sco3.2
-i@var{x}86-@var{*}-sco3.2v4
-i@var{x}86-@var{*}-sysv
-i@var{x}86-@var{*}-sysv4
-i@var{x}86-force_cpu386-none
-i@var{x}86-sequent-bsd
-i960-nindy960-none
-m68k-hp-bsd4.3
-m68k-mvme135-none
-m68k-mvme136-none
-m68k-sony-newsos3
-m68k-sony-newsos4
-m68k-sun-sunos4.@var{n}
-mips-dec-ultrix4.@var{n}
-mips-sgi-irix4.@var{n}
-sparc-sun-solaris2.@var{n}
-sparc-sun-sunos4.@var{n}
-@end smallexample
-
-Since no one has volunteered to test and fix these configurations,
-they are not supported at the moment. They probably don't compile;
-they definitely don't work anymore. Porting the library is not hard.
-If you are interested in doing a port, please contact the glibc
-maintainers. Start at @url{http://www.gnu.org/software/libc/} and
-read the references there on how to go about getting involved and
-contacting the developers.
-
-Valid cases of @samp{i@var{x}86} include @samp{i386}, @samp{i486},
-@samp{i586}, and @samp{i686}. All of those configurations produce a
-library that can run on this processor and newer processors. The GCC
-compiler by default generates code that's optimized for the machine it's
-configured for and will use the instructions available on that machine.
-For example if your GCC is configured for @samp{i686}, gcc will optimize
-for @samp{i686} and might issue some @samp{i686} specific instructions.
-To generate code for other models, you have to configure for that model
-and give GCC the appropriate @samp{-march=} and @samp{-mcpu=} compiler
-switches via @var{CFLAGS}.
-
@node Linux
@appendixsec Specific advice for GNU/Linux systems
@cindex upgrading from libc5
diff --git a/manual/llio.texi b/manual/llio.texi
index 4ac6c5fa4f..1d088d8ee2 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -368,6 +368,11 @@ sending it a @code{SIGTTIN} signal isn't working. This might happen if
the signal is being blocked or ignored, or because the process group is
orphaned. @xref{Job Control}, for more information about job control,
and @ref{Signal Handling}, for information about signals.
+