summaryrefslogtreecommitdiff
path: root/libc/manual
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-05-26 17:46:57 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-05-26 17:46:57 +0000
commitd8d5895e420d4976fca22b9bd9e1edc3094ebf30 (patch)
treef96c015c14ac0428150153ba98f7a681ff021931 /libc/manual
parent62eb53f68d92687a028f3c515489b30e3df1d979 (diff)
downloadeglibc2-d8d5895e420d4976fca22b9bd9e1edc3094ebf30.tar.gz
Merge changes between r18519 and r18730 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@18731 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/manual')
-rw-r--r--libc/manual/.gitignore30
-rw-r--r--libc/manual/Makefile177
-rw-r--r--libc/manual/contrib.texi337
-rw-r--r--libc/manual/examples/search.c5
-rw-r--r--libc/manual/install.texi23
-rw-r--r--libc/manual/libc-texinfo.sh19
-rw-r--r--libc/manual/startup.texi30
-rw-r--r--libc/manual/string.texi11
8 files changed, 366 insertions, 266 deletions
diff --git a/libc/manual/.gitignore b/libc/manual/.gitignore
deleted file mode 100644
index 55c49c998..000000000
--- a/libc/manual/.gitignore
+++ /dev/null
@@ -1,30 +0,0 @@
-*.aux
-*.c.texi
-*.cp
-*.cps
-*.dvi*
-*.fn
-*.fns
-*.info*
-*.ky
-*.kys
-*.log
-*.pdf
-*.pg
-*.pgs
-*.ps
-*.tmp
-*.toc
-*.tp
-*.tps
-*.vr
-*.vrs
-chapters.texi
-dir-add.texi
-dir-add.texinfo
-libm-err.texi
-stamp-*
-summary.texi
-texis
-top-menu.texi
-version.texi
diff --git a/libc/manual/Makefile b/libc/manual/Makefile
index 89fe3b29b..52c51cf0a 100644
--- a/libc/manual/Makefile
+++ b/libc/manual/Makefile
@@ -19,29 +19,25 @@
# Makefile for the GNU C Library manual.
subdir := manual
-export subdir := $(subdir)
# Allow override
INSTALL_INFO = install-info
-.PHONY: all dvi pdf info html
-all: dvi
-dvi: libc.dvi
-pdf: libc.pdf
+.PHONY: dvi pdf info html
# Get glibc's configuration info.
include ../Makeconfig
+dvi: $(objpfx)libc.dvi
+pdf: $(objpfx)libc.pdf
+
TEXI2DVI = texi2dvi
TEXI2PDF = texi2dvi --pdf
ifneq ($(strip $(MAKEINFO)),:)
-all: info
-info: libc.info
+info: $(objpfx)libc.info
endif
-mkinstalldirs = $(..)scripts/mkinstalldirs
-
chapters = $(addsuffix .texi, \
intro errno memory ctype string charset locale \
message search pattern io stdio llio filesys \
@@ -62,34 +58,45 @@ nonexamples = $(filter-out $(add-chapters) %.c.texi, $(texis))
examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \
$(filter %.c.texi, $(texis)))
+# Generated files directly included from libc.texinfo.
+libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \
+ libm-err.texi version.texi pkgvers.texi
+
+# Add path to build dir for generated files
+texis-path := $(filter-out $(libc-texi-generated) summary.texi $(examples), \
+ $(texis)) \
+ $(addprefix $(objpfx),$(filter $(libc-texi-generated) summary.texi \
+ $(examples), $(texis)))
+
# Kludge: implicit rule so Make knows the one command does it all.
-chapters.% top-menu.%: libc-texinfo.sh $(texis) Makefile
- AWK=$(AWK) $(SHELL) $< '$(chapters)' \
+chapters.% top-menu.%: libc-texinfo.sh $(texis-path) Makefile
+ AWK=$(AWK) $(SHELL) $< $(objpfx) \
+ '$(chapters)' \
'$(add-chapters)' \
'$(appendices) $(licenses)'
-# Generated files directly included from libc.texinfo.
-libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \
- libm-err.texi version.texi pkgvers.texi
-libc.dvi libc.pdf libc.info: $(libc-texi-generated)
-libc.dvi libc.pdf: texinfo.tex
+$(objpfx)libc.dvi $(objpfx)libc.pdf $(objpfx)libc.info: \
+ $(addprefix $(objpfx),$(libc-texi-generated))
+$(objpfx)libc.dvi $(objpfx)libc.pdf: texinfo.tex
-html: libc/index.html
-libc/index.html: $(libc-texi-generated)
- $(MAKEINFO) --html libc.texinfo
+html: $(objpfx)libc/index.html
+$(objpfx)libc/index.html: $(addprefix $(objpfx),$(libc-texi-generated))
+ $(MAKEINFO) -P $(objpfx) -o $(objpfx)libc --html libc.texinfo
# Generate the summary from the Texinfo source files for each chapter.
-summary.texi: stamp-summary ;
-stamp-summary: summary.awk $(filter-out summary.texi, $(texis))
- $(AWK) -f $^ | sort -t' ' -df -k 1,1 | tr '\014' '\012' > summary-tmp
- $(move-if-change) summary-tmp summary.texi
+$(objpfx)summary.texi: $(objpfx)stamp-summary ;
+$(objpfx)stamp-summary: summary.awk $(filter-out $(objpfx)summary.texi, \
+ $(texis-path))
+ $(AWK) -f $^ | sort -t' ' -df -k 1,1 | tr '\014' '\012' \
+ > $(objpfx)summary-tmp
+ $(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi
touch $@
# Generate a file which can be added to the `dir' content to provide direct
# access to the documentation of the function, variables, and other
# definitions.
-dir-add.texi: xtract-typefun.awk $(texis)
+$(objpfx)dir-add.texi: xtract-typefun.awk $(texis-path)
(echo "@dircategory GNU C library functions and macros"; \
echo "@direntry"; \
$(AWK) -f $^ | sort; \
@@ -97,31 +104,31 @@ dir-add.texi: xtract-typefun.awk $(texis)
mv -f $@.new $@
# The table with the math errors is generated.
-libm-err.texi: stamp-libm-err
-stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
+$(objpfx)libm-err.texi: $(objpfx)stamp-libm-err
+$(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
$(dir)/libm-test-ulps))
pwd=`pwd`; \
- $(PERL) $< $$pwd/.. > libm-err-tmp
- $(move-if-change) libm-err-tmp libm-err.texi
+ $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp
+ $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi
touch $@
# Package version and bug reporting URL.
-pkgvers.texi: stamp-pkgvers
-stamp-pkgvers:
- echo "@set PKGVERSION $(PKGVERSION_TEXI)" > pkgvers-tmp
- echo "@set REPORT_BUGS_TO $(REPORT_BUGS_TEXI)" >> pkgvers-tmp
- $(move-if-change) pkgvers-tmp pkgvers.texi
+$(objpfx)pkgvers.texi: $(objpfx)stamp-pkgvers
+$(objpfx)stamp-pkgvers:
+ echo "@set PKGVERSION $(PKGVERSION_TEXI)" > $(objpfx)pkgvers-tmp
+ echo "@set REPORT_BUGS_TO $(REPORT_BUGS_TEXI)" >> $(objpfx)pkgvers-tmp
+ $(move-if-change) $(objpfx)pkgvers-tmp $(objpfx)pkgvers.texi
touch $@
# Generate a file with the version number.
-version.texi: stamp-version ;
-stamp-version: $(common-objpfx)config.make
- echo "@set VERSION $(version)" > version-tmp
- $(move-if-change) version-tmp version.texi
+$(objpfx)version.texi: $(objpfx)stamp-version ;
+$(objpfx)stamp-version: $(common-objpfx)config.make
+ echo "@set VERSION $(version)" > $(objpfx)version-tmp
+ $(move-if-change) $(objpfx)version-tmp $(objpfx)version.texi
touch $@
# Generate Texinfo files from the C source for the example programs.
-%.c.texi: examples/%.c
+$(objpfx)%.c.texi: examples/%.c
sed -e '1,/^\*\/$$/d' \
-e 's,[{}],@&,g' \
-e 's,/\*\(@.*\)\*/,\1,g' \
@@ -130,14 +137,17 @@ stamp-version: $(common-objpfx)config.make
$< | expand > $@.new
mv -f $@.new $@
-%.info: %.texinfo
- LANGUAGE=C LC_ALL=C $(MAKEINFO) $<
+$(objpfx)%.info: %.texinfo
+ LANGUAGE=C LC_ALL=C $(MAKEINFO) -P $(objpfx) --output=$@ $<
-%.dvi: %.texinfo
- $(TEXI2DVI) $<
+$(objpfx)%.dvi: %.texinfo
+ cd $(objpfx);$(TEXI2DVI) -I $(shell cd $(<D) && pwd) --output=$@ \
+ $(shell cd $(<D) && pwd)/$<
+
+$(objpfx)%.pdf: %.texinfo
+ cd $(objpfx);$(TEXI2PDF) -I $(shell cd $(<D) && pwd) --output=$@ \
+ $(shell cd $(<D) && pwd)/$<
-%.pdf: %.texinfo
- $(TEXI2PDF) $<
# Distribution.
minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \
@@ -145,21 +155,19 @@ minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \
$(filter-out summary.texi, $(nonexamples)) \
$(patsubst %.c.texi,examples/%.c, $(examples))
-.PHONY: mostlyclean distclean realclean clean
-mostlyclean:
- -rm -f libc.dvi libc.pdf libc.tmp libc.info*
- -rm -f $(objpfx)stubs
- -rm -f $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
-clean: mostlyclean
-distclean: clean
indices = cp fn pg tp vr ky
-realclean: distclean
- -rm -f texis summary.texi stamp-summary *.c.texi
- -rm -f $(foreach index,$(indices),libc.$(index) libc.$(index)s)
- -rm -f libc.log libc.aux libc.toc
- -rm -f $(libc-texi-generated)
-
-.PHONY: install subdir_install installdirs install-data
+generated-dirs := libc
+generated = libc.dvi libc.pdf libc.tmp libc.info* \
+ stubs \
+ texis summary.texi stamp-summary *.c.texi \
+ $(foreach index,$(indices),libc.$(index) libc.$(index)s) \
+ libc.log libc.aux libc.toc \
+ $(libc-texi-generated) \
+ stamp-libm-err stamp-version
+
+include ../Rules
+
+.PHONY: install subdir_install install-data
install-data subdir_install: install
ifneq ($(strip $(MAKEINFO)),:)
install: $(inst_infodir)/libc.info
@@ -171,58 +179,11 @@ endif
# Catchall implicit rule for other installation targets from the parent.
install-%: ;
-$(inst_infodir)/libc.info: libc.info installdirs
+$(inst_infodir)/libc.info: $(objpfx)libc.info
+ $(make-target-directory)
for file in $<*; do \
- $(INSTALL_DATA) $$file $(@D)/$$file; \
+ $(INSTALL_DATA) $$file $(@D)/; \
done
-installdirs:
- $(mkinstalldirs) $(inst_infodir)
-
TAGS: $(minimal-dist)
$(ETAGS) -o $@ $^
-
-# The parent makefile sometimes invokes us with targets `subdir_REAL-TARGET'.
-subdir_%: % ;
-# For targets we don't define, do nothing.
-subdir_%: ;
-
-# These are targets that each glibc subdirectory is expected to understand.
-# ../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
-.PHONY: $(glibc-targets)
-$(glibc-targets):
-
-# Create stamp files if they don't exist, so the parent makefile's rules for
-# updating the library archives are happy with us, and never think we have
-# changed the library.
-lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
-ifdef objpfx
-.PHONY: stubs
-stubs: $(objpfx)stubs
-endif
-$(objpfx)stubs ../po/manual.pot:
- $(make-target-directory)
- touch $@
-$(objpfx)stamp%:
- $(make-target-directory)
- touch $@
-
-# Make the target directory if it doesn't exist, using the `mkinstalldirs'
-# script that does `mkdir -p' even if `mkdir' doesn't support that flag.
-define make-target-directory
-$(addprefix $(mkinstalldirs) ,\
- $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%)))
-endef
-
-# The top-level glibc Makefile expects subdir_install to update the stubs file.
-subdir_install: stubs
-
-# Get rid of these variables if they came from the parent.
-routines =
-aux =
-sources =
-objects =
-headers =
diff --git a/libc/manual/contrib.texi b/libc/manual/contrib.texi
index ed1065659..4d16f4e6e 100644
--- a/libc/manual/contrib.texi
+++ b/libc/manual/contrib.texi
@@ -2,175 +2,301 @@
@c %MENU% Who wrote what parts of the GNU C Library
@appendix Contributors to @theglibc{}
-@Theglibc{} was written originally by Roland McGrath, and is
-currently maintained by Ulrich Drepper. Some parts of the library were
-contributed or worked on by other people.
+@Theglibc{} project would like to thank its many contributors.
+Without them the project would not have been nearly as successful as
+it has been. Any omissions in this list are accidental. Feel free to
+file a bug in bugzilla if you have been left out or some of your
+contributions are not listed. Please keep this list in alphabetical
+order.
@itemize @bullet
+
@item
-The @code{getopt} function and related code was written by
-Richard Stallman, @w{David J.} MacKenzie, and @w{Roland McGrath}.
+Ryan S. Arnold for his improvements for Linux on PowerPC.
@item
-The merge sort function @code{qsort} was written by Michael J. Haertel.
+Miles Bader for writing the @code{argp} argument-parsing package, and the
+@code{argz}/@code{envz} interfaces.
@item
-The quick sort function used as a fallback by @code{qsort} was written
-by Douglas C. Schmidt.
+Jeff Bailey for his maintainership of the HPPA architecture.
@item
-The memory allocation functions @code{malloc}, @code{realloc} and
-@code{free} and related code were written by Michael J. Haertel,
-@w{Wolfram Gloger}, and @w{Doug Lea}.
+Petr Baudis for bug fixes and testing.
@item
-Fast implementations of many of the string functions (@code{memcpy},
-@code{strlen}, etc.) were written by Torbj@"orn Granlund.
+Stephen R. van den Berg for contributing a highly-optimized
+@code{strstr} function.
@item
-The @file{tar.h} header file was written by David J. MacKenzie.
+Eric Blake for adding O(n) implementations of @code{memmem},
+@code{strstr} and @code{strcasestr}.
@item
-The port to the MIPS DECStation running Ultrix 4
-(@code{mips-dec-ultrix4})
-was contributed by Brendan Kehoe and Ian Lance Taylor.
+Philip Blundell for the ports to Linux/ARM
+(@code{arm-@var{ANYTHING}-linuxaout}) and ARM standalone
+(@code{arm-@var{ANYTHING}-none}), as well as for parts of the IPv6
+support code.
@item
-The DES encryption function @code{crypt} and related functions were
-contributed by Michael Glad.
+Per Bothner for the implementation of the @code{libio} library which
+is used to implement @code{stdio} functions.
@item
-The @code{ftw} and @code{nftw} functions were contributed by Ulrich Drepper.
+Mark Brown for his direction as part of @theglibc{} steering
+committee.
@item
-The startup code to support SunOS shared libraries was contributed by
-Tom Quinn.
+Thomas Bushnell for his contributions to Hurd.
@item
-The @code{mktime} function was contributed by Paul Eggert.
+Liubov Dmitrieva for optimzed string functions on x86-64 and x86.
@item
-The port to the Sequent Symmetry running Dynix version 3
-(@code{i386-sequent-bsd}) was contributed by Jason Merrill.
+Ulrich Drepper for his many contributions in almost all parts of
+@theglibc{}, including:
+@itemize @bullet
+@item internationalization support, including the @code{locale} and
+@code{localedef} utilities.
+@item Linux i386/ELF support
+@item the @code{hsearch} and @code{drand48} families of functions,
+reentrant @samp{@dots{}@code{_r}} versions of the @code{random}
+family; System V shared memory and IPC support code
+@item several highly-optimized string functions for i@var{x}86
+processors
+@item many math functions
+@item the character conversion functions (@code{iconv})
+@item the @code{ftw} and @code{nftw} functions
+@item the floating-point printing function used by @code{printf} and friends
+and the floating-point reading function used by @code{scanf},
+@code{strtod} and friends
+@item the @code{catgets} support and the entire suite of multi-byte
+and wide-character support functions (@file{wctype.h}, @file{wchar.h}, etc.).
+@item versioning of objects on the symbol level
+@end itemize
@item
-The timezone support code is derived from the public-domain timezone
-package by Arthur David Olson and his many contributors.
+Paul Eggert for the @code{mktime} function and for his direction as
+part of @theglibc{} steering committee.
@item
-The port to the DEC Alpha running OSF/1 (@code{alpha-dec-osf1}) was
-contributed by Brendan Kehoe, using some code written by Roland McGrath.
+Mike Frysinger for his maintaining of the IA64 architecture and for
+testing and bug fixing.
@item
-The port to SGI machines running Irix 4 (@code{mips-sgi-irix4}) was
-contributed by Tom Quinn.
+Michael Glad for the DES encryption function @code{crypt} and related
+functions.
@item
-The port of the Mach and Hurd code to the MIPS architecture
-(@code{mips-@var{anything}-gnu}) was contributed by Kazumoto Kojima.
+Wolfram Gloger for contributing the memory allocation functions
+functions @code{malloc}, @code{realloc} and @code{free} and related
+code.
@item
-The floating-point printing function used by @code{printf} and friends
-and the floating-point reading function used by @code{scanf},
-@code{strtod} and friends were written by Ulrich Drepper. The
-multi-precision integer functions used in those functions are taken from
-GNU MP, which was contributed by Torbj@"orn Granlund.
+Torbj@"orn Granlund for fast implementations of many of the string
+functions (@code{memcpy}, @code{strlen}, etc.).
@item
-The internationalization support in the library, and the support
-programs @code{locale} and @code{localedef}, were written by Ulrich
-Drepper. Ulrich Drepper adapted the support code for message catalogs
-(@file{libintl.h}, etc.) from the GNU @code{gettext} package, which he
-also wrote. He also contributed the @code{catgets} support and the
-entire suite of multi-byte and wide-character support functions
-(@file{wctype.h}, @file{wchar.h}, etc.).
+Michael J. Haertel for writing the merge sort function @code{qsort}
+and malloc checking functions like @code{mcheck}.
@item
-The implementations of the @file{nsswitch.conf} mechanism and the files
-and DNS backends for it were designed and written by Ulrich Drepper and
-Roland McGrath, based on a backend interface defined by Peter Eriksson.
+Bruno Haible for his improvements to the @code{iconv} and locale
+implementations.
@item
-The port to Linux i386/ELF (@code{i386-@var{anything}-linux}) was
-contributed by Ulrich Drepper, based in large part on work done in
-Hongjiu Lu's Linux version of @theglibc{}.
+Richard Henderson for the port to Linux on Alpha
+(@code{alpha-@var{anything}-linux}).
@item
-The port to Linux/m68k (@code{m68k-@var{anything}-linux}) was
-contributed by Andreas Schwab.
+Daniel Jacobowitz for various fixes and enhancements.
@item
-The ports to Linux/ARM (@code{arm-@var{ANYTHING}-linuxaout}) and ARM
-standalone (@code{arm-@var{ANYTHING}-none}), as well as parts of the
-IPv6 support code, were contributed by Philip Blundell.
+Andreas Jaeger for the port to Linux on x86-64
+(@code{x86_64-@var{anything}-linux} and his work on Linux for MIPS
+(@code{mips-@var{anything}-linux}), implementing the @file{ldconfig}
+program, providing a test suite for the math library and for his
+direction as part of @theglibc{} steering committee.
@item
-Richard Henderson contributed the ELF dynamic linking code and other
-support for the Alpha processor.
+Aurelien Jarno for various fixes.
@item
-David Mosberger-Tang contributed the port to Linux/Alpha
+Jakub Jelinek for implementing a number of checking functions and for
+his direction as part of @theglibc{} steering committee.
+
+@item
+Geoffrey Keating for the port to Linux on PowerPC
+(@code{powerpc-@var{anything}-linux}).
+
+@item
+Brendan Kehoe for contributing the port to the MIPS DECStation running
+Ultrix 4 (@code{mips-dec-ultrix4}) and the port to the DEC Alpha
+running OSF/1 (@code{alpha-dec-osf1}).
+
+@item
+Mark Kettenis for implementing the @code{utmpx} interface and an utmp
+daemon, and for a Hesiod NSS module.
+
+@item
+Kazumoto Kojima for the port of the Mach and Hurd code to the MIPS
+architecture (@code{mips-@var{anything}-gnu}) and for his work on the
+SH architecture.
+
+@item
+Andreas Krebbel for his work on Linux for s390 and s390x.
+
+@item
+Thorsten Kukuk for providing an implementation for NIS (YP) and NIS+,
+securelevel 0, 1 and 2 and for the implementation for a caching daemon
+for NSS (@file{nscd}).
+
+@item
+Jeff Law for various fixes.
+
+@item
+Doug Lea for contributing the memory allocation functions
+functions @code{malloc}, @code{realloc} and @code{free} and related
+code.
+
+@item
+Hongjiu Lu for providing the support for a Linux 32-bit runtime
+environment under x86-64 (x32), for porting to Linux on IA64, for
+improved string functions and many bug fixes.
+
+@item
+Luis Machado for optimized functions on PowerPC.
+
+@item
+David J. MacKenzie for his contribution to the @code{getopt}
+function and writing the @file{tar.h} header.
+
+@item
+Greg McGary for adding runtime support for bounds checking.
+
+@item
+Roland McGrath for writing most of @theglibc{} originally, for his
+work on the Hurd port, his direction as part of @theglibc{} steering
+committee, and for many bug fixes and reviewing of contributions.
+
+@item
+Jason Merrill for the port to the Sequent Symmetry running Dynix
+version 3 (@code{i386-sequent-bsd}).
+
+@item
+Chris Metcalf for the port to Linux/Tile
+(@code{tilegx-@var{anything}-linux} and
+@code{tilepro-@var{anything}-linux}).
+
+@item
+David Miller for contributing the port to Linux/Sparc
+(@code{sparc*-@var{anything}-linux}).
+
+@item
+Alan Modra for his improvements for Linux on PowerPC.
+
+@item
+David Mosberger-Tang for contributing the port to Linux/Alpha
(@code{alpha-@var{anything}-linux}).
@item
-The port to Linux on PowerPC (@code{powerpc-@var{anything}-linux})
-was contributed by Geoffrey Keating.
+Stephen Moshier for implementing some 128-bit long double format math
+functions.
@item
-Miles Bader wrote the argp argument-parsing package, and the argz/envz
-interfaces.
+Stephen Munroe for his port to Linux on PowerPC64
+(@code{powerpc64-@var{anything}-linux}) and for adding optimized
+implementations for PowerPC.
@item
-Stephen R. van den Berg contributed a highly-optimized @code{strstr} function.
+Joseph S. Myers for numerous bug fixes for the libm functions and for
+his maintainership of the ARM and MIPS architectures.
@item
-Ulrich Drepper contributed the @code{hsearch} and @code{drand48}
-families of functions; reentrant @samp{@dots{}@code{_r}} versions of the
-@code{random} family; System V shared memory and IPC support code; and
-several highly-optimized string functions for i@var{x}86 processors.
+Carlos O'Donell for his maintainership of the HPPA architecture and
+maintaining @theglibc{} web pages.
@item
-The math functions are taken from @code{fdlibm-5.1} by Sun
-Microsystems, as modified by J.T. Conklin, Ian Lance Taylor,
-Ulrich Drepper, Andreas Schwab, and Roland McGrath.
+Alexandra Oliva for adding TLS descriptors for LD and GD on x86 and
+x86-64.
@item
-The @code{libio} library used to implement @code{stdio} functions on
-some platforms was written by Per Bothner and modified by Ulrich Drepper.
+Paul Pluzhnikov for various fixes.
@item
-Eric Youngdale and Ulrich Drepper implemented versioning of objects on
-the symbol level.
+Marek Polacek for various fixes.
@item
-Thorsten Kukuk provided an implementation for NIS (YP) and NIS+,
-securelevel 0, 1 and 2.
+Siddhesh Poyarekar for various fixes.
@item
-Andreas Jaeger provided a test suite for the math library.
+Pravin Satpute for writing sorting rules for some Indian languages.
@item
-Mark Kettenis implemented the utmpx interface and an utmp daemon.
+Martin Schwidefsky for porting to Linux on s390
+(@code{s390-@var{anything}-linux}) and s390x
+(@code{s390x-@var{anything}-linux}).
@item
-Ulrich Drepper added character conversion functions (@code{iconv}).
+Carlos Eduardo Seo for optimized functions on PowerPC.
@item
-Thorsten Kukuk provided an implementation for a caching daemon for NSS
-(nscd).
+Franz Sirl for various fixes.
@item
-Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
+Jes Sorensen for porting to Linux on IA64 (@code{ia64-@var{anything}-linux}).
@item
-Mark Kettenis provided a Hesiod NSS module.
+Richard Stallman for his contribution to the @code{getopt} function.
@item
-The Internet-related code (most of the @file{inet} subdirectory) and
-several other miscellaneous functions and header files have been
-included from 4.4 BSD with little or no modification. The copying
-permission notice for this code can be found in the file @file{LICENSES}
-in the source distribution.
+Douglas C. Schmidt for writing the quick sort function used as a
+fallback by @code{qsort}.
+
+@item
+Andreas Schwab for the port to Linux/m68k
+(@code{m68k-@var{anything}-linux}) and for his direction as part of
+@theglibc{} steering committee.
+
+@item
+Thomas Schwinge for his contribution to Hurd and the SH architecture.
+
+@item
+Alfred M. Szmidt for various fixes.
+
+@item
+Ian Lance Taylor for contributing the port to the MIPS DECStation
+running Ultrix 4 (@code{mips-dec-ultrix4}).
+
+@item
+Tom Quinn for contributing the startup code to support SunOS shared
+libraries and the port to SGI machines running Irix 4
+(@code{mips-sgi-irix4}).
+
+@item
+Tim Waugh for the implementation of the POSIX.2 @code{wordexp}
+function family.
+
+@item
+Eric Youngdale for implementing versioning of objects on the symbol level.
+
+@item
+Adhemerval Zanella for optimized functions on PowerPC.
+
+@end itemize
+
+Some code in @theglibc{} comes from other projects and might be under
+a different license:
+
+@itemize @bullet
+@item
+The timezone support code is derived from the public-domain timezone
+package by Arthur David Olson and his many contributors.
+
+@item
+Some of the support code for Mach is taken from Mach 3.0 by CMU;
+the file if_ppp.h is also copyright by CMU, but under a different license;
+see the file @file{LICENSES} for the text of the licenses.
@item
The random number generation functions @code{random}, @code{srandom},
@@ -182,6 +308,18 @@ changes to fit into @theglibc{} and to fit the @w{ISO C} standard,
but the functional code is Berkeley's.@refill
@item
+The Internet-related code (most of the @file{inet} subdirectory) and
+several other miscellaneous functions and header files have been
+included from 4.4 BSD with little or no modification. The copying
+permission notice for this code can be found in the file @file{LICENSES}
+in the source distribution.
+
+@item
+The @code{getaddrinfo} and @code{getnameinfo} functions and supporting
+code were written by Craig Metz; see the file @file{LICENSES} for
+details on their licensing.
+
+@item
The DNS resolver code is taken directly from BIND 4.9.5, which
includes copyrighted code from UC Berkeley and from Digital Equipment
Corporation. See the file @file{LICENSES} for the text of the DEC license.
@@ -192,9 +330,14 @@ The code to support Sun RPC is taken verbatim from Sun's
text of the license.
@item
-Some of the support code for Mach is taken from Mach 3.0 by CMU;
-the file if_ppp.h is also copyright by CMU, but under a different license;
-see the file @file{LICENSES} for the text of the licenses.
+The math functions are taken from @code{fdlibm-5.1} by Sun
+Microsystems, as modified by J.T. Conklin, Ian Lance Taylor,
+Ulrich Drepper, Andreas Schwab, and Roland McGrath.
+
+@item
+Many of the IEEE 64-bit double precision math functions
+(in the @file{sysdeps/ieee754/dbl-64} subdirectory) come
+from the IBM Accurate Mathematical Library, contributed by IBM.
@item
Many of the IA64 math functions are taken from a collection of
@@ -202,14 +345,4 @@ Many of the IA64 math functions are taken from a collection of
makes available under a free license; see the file @file{LICENSES} for
details.
-@item
-The @code{getaddrinfo} and @code{getnameinfo} functions and supporting
-code were written by Craig Metz; see the file @file{LICENSES} for
-details on their licensing.
-
-@item
-Many of the IEEE 64-bit double precision math functions
-(in the @file{sysdeps/ieee754/dbl-64} subdirectory) come
-from the IBM Accurate Mathematical Library, contributed by IBM.
-
@end itemize
diff --git a/libc/manual/examples/search.c b/libc/manual/examples/search.c
index e37656721..7fe05ea2d 100644
--- a/libc/manual/examples/search.c
+++ b/libc/manual/examples/search.c
@@ -53,8 +53,11 @@ int count = sizeof (muppets) / sizeof (struct critter);
/* This is the comparison function used for sorting and searching. */
int
-critter_cmp (const struct critter *c1, const struct critter *c2)
+critter_cmp (const void *v1, const void *v2)
{
+ const struct critter *c1 = v1;
+ const struct critter *c2 = v2;
+
return strcmp (c1->name, c2->name);
}
diff --git a/libc/manual/install.texi b/libc/manual/install.texi
index 655654429..2661ee04a 100644
--- a/libc/manual/install.texi
+++ b/libc/manual/install.texi
@@ -50,8 +50,8 @@ $ ../glibc-@var{version}/configure @var{args@dots{}}
@end smallexample
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.
+directory, the compilation may need to create or modify files and
+directories in the source directory.
@noindent
@code{configure} takes many options, but the only one that is usually
@@ -203,10 +203,10 @@ system such as @file{/etc/passwd}, @file{/etc/nsswitch.conf} and others.
These files must all contain correct and sensible content.
To format the @cite{GNU C Library Reference Manual} for printing, type
-@w{@code{make dvi}}. You need a working @TeX{} installation to do this.
-The distribution already includes the on-line formatted version of the
-manual, as Info files. You can regenerate those with @w{@code{make
-info}}, but it shouldn't be necessary.
+@w{@code{make dvi}}. You need a working @TeX{} installation to do
+this. The distribution builds the on-line formatted version of the
+manual, as Info files, as part of the build process. You can build
+them manually with @w{@code{make info}}.
The library has a number of special-purpose configuration parameters
which you can find in @file{Makeconfig}. These can be overwritten with
@@ -275,8 +275,8 @@ One auxiliary program, @file{/usr/libexec/pt_chown}, is installed setuid
sets the permissions on a pseudoterminal so it can be used by the
calling process. This means programs like @code{xterm} and
@code{screen} do not have to be setuid to get a pty. (There may be
-other reasons why they need privileges.) If you are using a 2.1 or
-newer Linux kernel with the @code{devptsfs} or @code{devfs} filesystems
+other reasons why they need privileges.) If you are using a
+Linux kernel with the @code{devptsfs} or @code{devfs} filesystems
providing pty slaves, you don't need this program; otherwise you do.
The source for @file{pt_chown} is in @file{login/programs/pt_chown.c}.
@@ -334,7 +334,7 @@ No other assembler or linker has the necessary functionality at the
moment.
@item
-GNU @code{texinfo} 3.12f
+GNU @code{texinfo} 4.5 or later
To correctly translate and install the Texinfo documentation you need
this version of the @code{texinfo} package. Earlier versions do not
@@ -428,11 +428,6 @@ if you configure @theglibc{} with @samp{--prefix=/usr}. If you set some other
prefix or allow it to default to @file{/usr/local}, then all the
components are installed there.
-You cannot use @code{nscd} with 2.0 kernels, due to bugs in the
-kernel-side thread support. @code{nscd} happens to hit these bugs
-particularly hard, but you might have problems with any threaded
-program.
-
@node Reporting Bugs
@appendixsec Reporting Bugs
@cindex reporting bugs
diff --git a/libc/manual/libc-texinfo.sh b/libc/manual/libc-texinfo.sh
index 79ac9773e..60e224bb8 100644
--- a/libc/manual/libc-texinfo.sh
+++ b/libc/manual/libc-texinfo.sh
@@ -1,10 +1,13 @@
#! /bin/sh
+OUTDIR=$1
+shift
+
# Create libc.texinfo from the chapter files.
-trap "rm -f *.$$; exit 1" 1 2 15
+trap "rm -f ${OUTDIR}*.$$; exit 1" 1 2 15
-exec 3>incl.$$ 4>smenu.$$ 5>lmenu.$$
+exec 3>${OUTDIR}incl.$$ 4>${OUTDIR}smenu.$$ 5>${OUTDIR}lmenu.$$
build_menu () {
while IFS=: read file node; do
@@ -51,7 +54,7 @@ collect_nodes $3 | build_menu
exec 3>&- 4>&- 5>&-
-mv -f incl.$$ chapters.texi
+mv -f ${OUTDIR}incl.$$ ${OUTDIR}chapters.texi
{
echo '@menu'
@@ -72,7 +75,7 @@ mv -f incl.$$ chapters.texi
}
!/^\*/ { print; }
- ' smenu.$$
+ ' ${OUTDIR}smenu.$$
cat <<EOF
* Free Manuals:: Free Software Needs Free Documentation.
* Copying:: The GNU Lesser General Public License says
@@ -90,8 +93,8 @@ Indices
--- The Detailed Node Listing ---
EOF
- cat lmenu.$$
- echo '@end menu'; } >top-menu.texi.$$
-mv -f top-menu.texi.$$ top-menu.texi
+ cat ${OUTDIR}lmenu.$$
+ echo '@end menu'; } >${OUTDIR}top-menu.texi.$$
+mv -f ${OUTDIR}top-menu.texi.$$ ${OUTDIR}top-menu.texi
-rm -f *.$$
+rm -f ${OUTDIR}*.$$
diff --git a/libc/manual/startup.texi b/libc/manual/startup.texi
index ed75e7bdc..0420e9328 100644
--- a/libc/manual/startup.texi
+++ b/libc/manual/startup.texi
@@ -34,8 +34,9 @@ This chapter looks at program startup from the execee's point of view. To
see the event from the execor's point of view, see @ref{Executing a File}.
@menu
-* Program Arguments:: Parsing your program's command-line arguments.
+* Program Arguments:: Parsing your program's command-line arguments
* Environment Variables:: Less direct parameters affecting your program
+* Auxiliary Vector:: Least direct parameters affecting your program
* System Calls:: Requesting service from the system
* Program Termination:: Telling the system you're done; return status
@end menu
@@ -590,6 +591,33 @@ reordering of command line arguments by @code{getopt} and
@c !!! GNU also has COREFILE, CORESERVER, EXECSERVERS
@end table
+@node Auxiliary Vector
+@section Auxiliary Vector
+@cindex auxiliary vector
+
+When a program is executed, it receives information from the operating
+system about the environment in which it is operating. The form of this
+information is a table of key-value pairs, where the keys are from the
+set of @samp{AT_} values in @file{elf.h}. Some of the data is provided
+by the kernel for libc consumption, and may be obtained by ordinary
+interfaces, such as @code{sysconf}. However, on a platform-by-platform
+basis there may be information that is not available any other way.
+
+@subsection Definition of @code{getauxval}
+@comment sys/auxv.h
+@deftypefun {unsigned long int} getauxval (unsigned long int @var{type})
+This function is used to inquire about the entries in the auxiliary
+vector. The @var{type} argument should be one of the @samp{AT_} symbols
+defined in @file{elf.h}. If a matching entry is found, the value is
+returned; if the entry is not found, zero is returned.
+@end deftypefun
+
+For some platforms, the key @code{AT_HWCAP} is the easiest way to inquire
+about any instruction set extensions available at runtime. In this case,
+there will (of necessity) be a platform-specific set of @samp{HWCAP_}
+values masked together that describe the capabilities of the cpu on which
+the program is being executed.
+
@node System Calls
@section System Calls
diff --git a/libc/manual/string.texi b/libc/manual/string.texi
index af21bccf4..831873b12 100644
--- a/libc/manual/string.texi
+++ b/libc/manual/string.texi
@@ -886,6 +886,7 @@ concat (const char *str, @dots{})
@{
char *newp;
char *wp;
+ const char *s;
va_start (ap, str);
@@ -1369,8 +1370,11 @@ efficiently using @code{strxfrm}.)
/* @r{This is the comparison function used with @code{qsort}.} */
int
-compare_elements (char **p1, char **p2)
+compare_elements (const void *v1, const void *v2)
@{
+ char * const *p1 = v1;
+ char * const *p1 = v2;
+
return strcoll (*p1, *p2);
@}
@@ -1461,8 +1465,11 @@ struct sorter @{ char *input; char *transformed; @};
@r{to sort an array of @code{struct sorter}.} */
int
-compare_elements (struct sorter *p1, struct sorter *p2)
+compare_elements (const void *v1, const void *v2)
@{
+ const struct sorter *p1 = v1;
+ const struct sorter *p2 = v2;
+
return strcmp (p1->transformed, p2->transformed);
@}