diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-05-26 17:46:57 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-05-26 17:46:57 +0000 |
commit | d8d5895e420d4976fca22b9bd9e1edc3094ebf30 (patch) | |
tree | f96c015c14ac0428150153ba98f7a681ff021931 /libc/manual | |
parent | 62eb53f68d92687a028f3c515489b30e3df1d979 (diff) | |
download | eglibc2-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/.gitignore | 30 | ||||
-rw-r--r-- | libc/manual/Makefile | 177 | ||||
-rw-r--r-- | libc/manual/contrib.texi | 337 | ||||
-rw-r--r-- | libc/manual/examples/search.c | 5 | ||||
-rw-r--r-- | libc/manual/install.texi | 23 | ||||
-rw-r--r-- | libc/manual/libc-texinfo.sh | 19 | ||||
-rw-r--r-- | libc/manual/startup.texi | 30 | ||||
-rw-r--r-- | libc/manual/string.texi | 11 |
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); @} |