@node Contributors, Free Manuals, Platform, Top @c %MENU% Who wrote what parts of the GNU C Library @appendix Contributors to @theglibc{} @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 Ryan S. Arnold for his improvements for Linux on PowerPC. @item Miles Bader for writing the @code{argp} argument-parsing package, and the @code{argz}/@code{envz} interfaces. @item Jeff Bailey for his maintainership of the HPPA architecture. @item Petr Baudis for bug fixes and testing. @item Stephen R. van den Berg for contributing a highly-optimized @code{strstr} function. @item Eric Blake for adding O(n) implementations of @code{memmem}, @code{strstr} and @code{strcasestr}. @item 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 Per Bothner for the implementation of the @code{libio} library which is used to implement @code{stdio} functions. @item Mark Brown for his direction as part of @theglibc{} steering committee. @item Thomas Bushnell for his contributions to Hurd. @item Liubov Dmitrieva for optimzed string and math functions on x86-64 and x86. @item 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 Paul Eggert for the @code{mktime} function and for his direction as part of @theglibc{} steering committee. @item Tulio Magno Quites Machado Filho for adding a new class of installed headers for low-level platform-specific functionality and one such for PowerPC. @item Mike Frysinger for his maintaining of the IA64 architecture and for testing and bug fixing. @item Michael Glad for the DES encryption function @code{crypt} and related functions. @item Wolfram Gloger for contributing the memory allocation functions functions @code{malloc}, @code{realloc} and @code{free} and related code. @item Torbj@"orn Granlund for fast implementations of many of the string functions (@code{memcpy}, @code{strlen}, etc.). @item Michael J. Haertel for writing the merge sort function @code{qsort} and malloc checking functions like @code{mcheck}. @item Bruno Haible for his improvements to the @code{iconv} and locale implementations. @item Richard Henderson for the port to Linux on Alpha (@code{alpha-@var{anything}-linux}). @item Daniel Jacobowitz for various fixes and enhancements. @item 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 Aurelien Jarno for various fixes. @item 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 Stephen Moshier for implementing some 128-bit long double format math functions. @item Stephen Munroe for his port to Linux on PowerPC64 (@code{powerpc64-@var{anything}-linux}) and for adding optimized implementations for PowerPC. @item Joseph S. Myers for numerous bug fixes for the libm functions and for his maintainership of the ARM and MIPS architectures. @item Carlos O'Donell for his maintainership of the HPPA architecture and maintaining @theglibc{} web pages. @item Alexandra Oliva for adding TLS descriptors for LD and GD on x86 and x86-64. @item Paul Pluzhnikov for various fixes. @item Marek Polacek for various fixes. @item Siddhesh Poyarekar for various fixes. @item Pravin Satpute for writing sorting rules for some Indian languages. @item Will Schmidt for optimized string functions on PowerPC. @item Martin Schwidefsky for porting to Linux on s390 (@code{s390-@var{anything}-linux}) and s390x (@code{s390x-@var{anything}-linux}). @item Carlos Eduardo Seo for optimized functions on PowerPC. @item Franz Sirl for various fixes. @item Jes Sorensen for porting to Linux on IA64 (@code{ia64-@var{anything}-linux}). @item Richard Stallman for his contribution to the @code{getopt} function. @item 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}, @code{setstate} and @code{initstate}, which are also the basis for the @code{rand} and @code{srand} functions, were written by Earl T. Cohen for the University of California at Berkeley and are copyrighted by the Regents of the University of California. They have undergone minor 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. @item The code to support Sun RPC is taken verbatim from Sun's @w{@sc{rpcsrc-4.0}} distribution; see the file @file{LICENSES} for the text of the license. @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. @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 ``Highly Optimized Mathematical Functions for Itanium'' that Intel makes available under a free license; see the file @file{LICENSES} for details. @end itemize