@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 and his direction as FSF Project Steward for @theglibc{}. @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 Ondrej Bilka for contributing optimized string routines for x64 and various fixes. @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 Wilco Dijkstra for various fixes. @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 Richard Earnshaw for continued support and fixes to the various ARM machine files. @item Paul Eggert for the @code{mktime} function and for his direction as part of @theglibc{} steering committee. @item Steve Ellcey for various fixes. @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 David Holsgrove for the port to Linux on MicroBlaze. @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 Andi Kleen for implementing pthreads lock elision with TSX. @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 Chris Leonard for various fixes and enhancements to localedata. @item Stefan Liebler for various fixes. @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, a framework for testing IFUNC implementations, 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 as FSF Project Steward for @theglibc{}, and for many bug fixes and reviewing of contributions. @item Allan McRae for various fixes. @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, for his maintainership of the ARM and MIPS architectures, improving cross-compilation and cross-testing of @theglibc{}, expanded coverage of conformtest, merging the ports/ subdirectory into the @glibcadj{} main repository and his direction as FSF Project Steward for @theglibc{}. @item Will Newton for contributing some optimized string functions and pointer encryption support for ARM and various fixes. @item Carlos O'Donell for his maintainership of the HPPA architecture, for maintaining @theglibc{} web pages and wiki, for his direction as FSF Project Steward for @theglibc{} and various bug fixes. @item Alexandre Oliva for adding TLS descriptors for LD and GD on x86 and x86-64, for the am33 port, for completing the MIPS n64/n32/o32 multilib port, for thread-safety, async-signal safety and async-cancellation safety documentation in the manual, for his direction as FSF Project Maintainer and for various fixes. @item Paul Pluzhnikov for various fixes. @item Marek Polacek for various fixes. @item Siddhesh Poyarekar for various fixes and an implementation of a framework for performance benchmarking of functions. @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 Torvald Riegel for the implementation of a new semaphore algorithm. @item Pravin Satpute for writing sorting rules for some Indian languages. @item Douglas C. Schmidt for writing the quick sort function used as a fallback by @code{qsort}. @item Will Schmidt for optimized string functions on PowerPC. @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 Martin Schwidefsky for porting to Linux on s390 (@code{s390-@var{anything}-linux}) and s390x (@code{s390x-@var{anything}-linux}). @item Thomas Schwinge for his contribution to Hurd and the SH architecture. @item Carlos Eduardo Seo for optimized functions on PowerPC. @item Marcus Shawcroft for contributing the AArch64 port. @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 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 Samuel Thibault for improving the Hurd port. @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