
1: @node Contributors, Free Manuals, Maintenance, Top 2: @c %MENU% Who wrote what parts of the GNU C library 3: @appendix Contributors to the GNU C Library 4: 5: The GNU C library was written originally by Roland McGrath, and is 6: currently maintained by Ulrich Drepper. Some parts of the library were 7: contributed or worked on by other people. 8: 9: @itemize @bullet 10: @item 11: The @code{getopt} function and related code was written by 12: Richard Stallman, @w{David J.} MacKenzie, and @w{Roland McGrath}. 13: 14: @item 15: The merge sort function @code{qsort} was written by Michael J. Haertel. 16: 17: @item 18: The quick sort function used as a fallback by @code{qsort} was written 19: by Douglas C. Schmidt. 20: 21: @item 22: The memory allocation functions @code{malloc}, @code{realloc} and 23: @code{free} and related code were written by Michael J. Haertel, 24: @w{Wolfram Gloger}, and @w{Doug Lea}. 25: 26: @item 27: Fast implementations of many of the string functions (@code{memcpy}, 28: @code{strlen}, etc.) were written by Torbj@"orn Granlund. 29: 30: @item 31: The @file{tar.h} header file was written by David J. MacKenzie. 32: 33: @item 34: The port to the MIPS DECStation running Ultrix 4 35: (@code{mips-dec-ultrix4}) 36: was contributed by Brendan Kehoe and Ian Lance Taylor. 37: 38: @item 39: The DES encryption function @code{crypt} and related functions were 40: contributed by Michael Glad. 41: 42: @item 43: The @code{ftw} and @code{nftw} functions were contributed by Ulrich Drepper. 44: 45: @item 46: The startup code to support SunOS shared libraries was contributed by 47: Tom Quinn. 48: 49: @item 50: The @code{mktime} function was contributed by Paul Eggert. 51: 52: @item 53: The port to the Sequent Symmetry running Dynix version 3 54: (@code{i386-sequent-bsd}) was contributed by Jason Merrill. 55: 56: @item 57: The timezone support code is derived from the public-domain timezone 58: package by Arthur David Olson and his many contributors. 59: 60: @item 61: The port to the DEC Alpha running OSF/1 (@code{alpha-dec-osf1}) was 62: contributed by Brendan Kehoe, using some code written by Roland McGrath. 63: 64: @item 65: The port to SGI machines running Irix 4 (@code{mips-sgi-irix4}) was 66: contributed by Tom Quinn. 67: 68: @item 69: The port of the Mach and Hurd code to the MIPS architecture 70: (@code{mips-@var{anything}-gnu}) was contributed by Kazumoto Kojima. 71: 72: @item 73: The floating-point printing function used by @code{printf} and friends 74: and the floating-point reading function used by @code{scanf}, 75: @code{strtod} and friends were written by Ulrich Drepper. The 76: multi-precision integer functions used in those functions are taken from 77: GNU MP, which was contributed by Torbj@"orn Granlund. 78: 79: @item 80: The internationalization support in the library, and the support 81: programs @code{locale} and @code{localedef}, were written by Ulrich 82: Drepper. Ulrich Drepper adapted the support code for message catalogs 83: (@file{libintl.h}, etc.) from the GNU @code{gettext} package, which he 84: also wrote. He also contributed the @code{catgets} support and the 85: entire suite of multi-byte and wide-character support functions 86: (@file{wctype.h}, @file{wchar.h}, etc.). 87: 88: @item 89: The implementations of the @file{nsswitch.conf} mechanism and the files 90: and DNS backends for it were designed and written by Ulrich Drepper and 91: Roland McGrath, based on a backend interface defined by Peter Eriksson. 92: 93: @item 94: The port to Linux i386/ELF (@code{i386-@var{anything}-linux}) was 95: contributed by Ulrich Drepper, based in large part on work done in 96: Hongjiu Lu's Linux version of the GNU C Library. 97: 98: @item 99: The port to Linux/m68k (@code{m68k-@var{anything}-linux}) was 100: contributed by Andreas Schwab. 101: 102: @item 103: The ports to Linux/ARM (@code{arm-@var{ANYTHING}-linuxaout}) and ARM 104: standalone (@code{arm-@var{ANYTHING}-none}), as well as parts of the 105: IPv6 support code, were contributed by Philip Blundell. 106: 107: @item 108: Richard Henderson contributed the ELF dynamic linking code and other 109: support for the Alpha processor. 110: 111: @item 112: David Mosberger-Tang contributed the port to Linux/Alpha 113: (@code{alpha-@var{anything}-linux}). 114: 115: @item 116: The port to Linux on PowerPC (@code{powerpc-@var{anything}-linux}) 117: was contributed by Geoffrey Keating. 118: 119: @item 120: Miles Bader wrote the argp argument-parsing package, and the argz/envz 121: interfaces. 122: 123: @item 124: Stephen R. van den Berg contributed a highly-optimized @code{strstr} function. 125: 126: @item 127: Ulrich Drepper contributed the @code{hsearch} and @code{drand48} 128: families of functions; reentrant @samp{@dots{}@code{_r}} versions of the 129: @code{random} family; System V shared memory and IPC support code; and 130: several highly-optimized string functions for i@var{x}86 processors. 131: 132: @item 133: The math functions are taken from @code{fdlibm-5.1} by Sun 134: Microsystems, as modified by J.T. Conklin, Ian Lance Taylor, 135: Ulrich Drepper, Andreas Schwab, and Roland McGrath. 136: 137: @item 138: The @code{libio} library used to implement @code{stdio} functions on 139: some platforms was written by Per Bothner and modified by Ulrich Drepper. 140: 141: @item 142: Eric Youngdale and Ulrich Drepper implemented versioning of objects on 143: the symbol level. 144: 145: @item 146: Thorsten Kukuk provided an implementation for NIS (YP) and NIS+, 147: securelevel 0, 1 and 2. 148: 149: @item 150: Andreas Jaeger provided a test suite for the math library. 151: 152: @item 153: Mark Kettenis implemented the utmpx interface and an utmp daemon. 154: 155: @item 156: Ulrich Drepper added character conversion functions (@code{iconv}). 157: 158: @item 159: Thorsten Kukuk provided an implementation for a caching daemon for NSS 160: (nscd). 161: 162: @item 163: Tim Waugh provided an implementation of the POSIX.2 wordexp function family. 164: 165: @item 166: Mark Kettenis provided a Hesiod NSS module. 167: 168: @item 169: The Internet-related code (most of the @file{inet} subdirectory) and 170: several other miscellaneous functions and header files have been 171: included from 4.4 BSD with little or no modification. The copying 172: permission notice for this code can be found in the file @file{LICENSES} 173: in the source distribution. 174: 175: @item 176: The random number generation functions @code{random}, @code{srandom}, 177: @code{setstate} and @code{initstate}, which are also the basis for the 178: @code{rand} and @code{srand} functions, were written by Earl T. Cohen 179: for the University of California at Berkeley and are copyrighted by the 180: Regents of the University of California. They have undergone minor 181: changes to fit into the GNU C library and to fit the @w{ISO C} standard, 182: but the functional code is Berkeley's.@refill 183: 184: @item 185: The DNS resolver code is taken directly from BIND 4.9.5, which 186: includes copyrighted code from UC Berkeley and from Digital Equipment 187: Corporation. See the file @file{LICENSES} for the text of the DEC license. 188: 189: @item 190: The code to support Sun RPC is taken verbatim from Sun's 191: @w{@sc{rpcsrc-4.0}} distribution; see the file @file{LICENSES} for the 192: text of the license. 193: 194: @item 195: Some of the support code for Mach is taken from Mach 3.0 by CMU; 196: the file if_ppp.h is also copyright by CMU, but under a different license; 197: see the file @file{LICENSES} for the text of the licenses. 198: 199: @item 200: Many of the IA64 math functions are taken from a collection of 201: ``Highly Optimized Mathematical Functions for Itanium'' that Intel 202: makes available under a free license; see the file @file{LICENSES} for 203: details. 204: 205: @item 206: The @code{getaddrinfo} and @code{getnameinfo} functions and supporting 207: code were written by Craig Metz; see the file @file{LICENSES} for 208: details on their licensing. 209: 210: @item 211: Many of the IEEE 64-bit double precision math functions 212: (in the @file{sysdeps/ieee754/dbl-64} subdirectory) come 213: from the IBM Accurate Mathematical Library, contributed by IBM. 214: 215: @end itemize