| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | @node Contributors, Free Manuals, Platform, Top | 
|  | 2 | @c %MENU% Who wrote what parts of the GNU C Library | 
|  | 3 | @appendix Contributors to @theglibc{} | 
|  | 4 |  | 
|  | 5 | @Theglibc{} project would like to thank its many contributors. | 
|  | 6 | Without them the project would not have been nearly as successful as | 
|  | 7 | it has been.  Any omissions in this list are accidental.  Feel free to | 
|  | 8 | file a bug in bugzilla if you have been left out or some of your | 
|  | 9 | contributions are not listed.  Please keep this list in alphabetical | 
|  | 10 | order. | 
|  | 11 |  | 
|  | 12 | @itemize @bullet | 
|  | 13 |  | 
|  | 14 | @item | 
|  | 15 | Ryan S. Arnold for his improvements for Linux on PowerPC and his direction | 
|  | 16 | as FSF Project Steward for @theglibc{}. | 
|  | 17 |  | 
|  | 18 | @item | 
|  | 19 | Miles Bader for writing the @code{argp} argument-parsing package, and the | 
|  | 20 | @code{argz}/@code{envz} interfaces. | 
|  | 21 |  | 
|  | 22 | @item | 
|  | 23 | Jeff Bailey for his maintainership of the HPPA architecture. | 
|  | 24 |  | 
|  | 25 | @item | 
|  | 26 | Petr Baudis for bug fixes and testing. | 
|  | 27 |  | 
|  | 28 | @item | 
|  | 29 | Stephen R. van den Berg for contributing a highly-optimized | 
|  | 30 | @code{strstr} function. | 
|  | 31 |  | 
|  | 32 | @item | 
|  | 33 | Ondrej Bilka for contributing optimized string routines for x64 and various | 
|  | 34 | fixes. | 
|  | 35 |  | 
|  | 36 | @item | 
|  | 37 | Eric Blake for adding O(n) implementations of @code{memmem}, | 
|  | 38 | @code{strstr} and @code{strcasestr}. | 
|  | 39 |  | 
|  | 40 | @item | 
|  | 41 | Philip Blundell for the ports to Linux/ARM | 
|  | 42 | (@code{arm-@var{ANYTHING}-linuxaout}) and ARM standalone | 
|  | 43 | (@code{arm-@var{ANYTHING}-none}), as well as for parts of the IPv6 | 
|  | 44 | support code. | 
|  | 45 |  | 
|  | 46 | @item | 
|  | 47 | Per Bothner for the implementation of the @code{libio} library which | 
|  | 48 | is used to implement @code{stdio} functions. | 
|  | 49 |  | 
|  | 50 | @item | 
|  | 51 | Mark Brown for his direction as part of @theglibc{} steering | 
|  | 52 | committee. | 
|  | 53 |  | 
|  | 54 | @item | 
|  | 55 | Thomas Bushnell for his contributions to Hurd. | 
|  | 56 |  | 
|  | 57 | @item | 
|  | 58 | Wilco Dijkstra for various fixes. | 
|  | 59 |  | 
|  | 60 | @item | 
|  | 61 | Liubov Dmitrieva for optimzed string and math functions on x86-64 and | 
|  | 62 | x86. | 
|  | 63 |  | 
|  | 64 | @item | 
|  | 65 | Ulrich Drepper for his many contributions in almost all parts of | 
|  | 66 | @theglibc{}, including: | 
|  | 67 | @itemize @bullet | 
|  | 68 | @item internationalization support, including the @code{locale} and | 
|  | 69 | @code{localedef} utilities. | 
|  | 70 | @item Linux i386/ELF support | 
|  | 71 | @item the @code{hsearch} and @code{drand48} families of functions, | 
|  | 72 | reentrant @samp{@dots{}@code{_r}} versions of the @code{random} | 
|  | 73 | family; System V shared memory and IPC support code | 
|  | 74 | @item several highly-optimized string functions for i@var{x}86 | 
|  | 75 | processors | 
|  | 76 | @item many math functions | 
|  | 77 | @item the character conversion functions (@code{iconv}) | 
|  | 78 | @item the @code{ftw} and @code{nftw} functions | 
|  | 79 | @item the floating-point printing function used by @code{printf} and friends | 
|  | 80 | and the floating-point reading function used by @code{scanf}, | 
|  | 81 | @code{strtod} and friends | 
|  | 82 | @item the @code{catgets} support and the entire suite of multi-byte | 
|  | 83 | and wide-character support functions (@file{wctype.h}, @file{wchar.h}, etc.). | 
|  | 84 | @item versioning of objects on the symbol level | 
|  | 85 | @end itemize | 
|  | 86 |  | 
|  | 87 | @item | 
|  | 88 | Richard Earnshaw for continued support and fixes to the various ARM | 
|  | 89 | machine files. | 
|  | 90 |  | 
|  | 91 | @item | 
|  | 92 | Paul Eggert for the @code{mktime} function and for his direction as | 
|  | 93 | part of @theglibc{} steering committee. | 
|  | 94 |  | 
|  | 95 | @item | 
|  | 96 | Steve Ellcey for various fixes. | 
|  | 97 |  | 
|  | 98 | @item | 
|  | 99 | Tulio Magno Quites Machado Filho for adding a new class of installed | 
|  | 100 | headers for low-level platform-specific functionality and one such for | 
|  | 101 | PowerPC. | 
|  | 102 |  | 
|  | 103 | @item | 
|  | 104 | Mike Frysinger for his maintaining of the IA64 architecture and for | 
|  | 105 | testing and bug fixing. | 
|  | 106 |  | 
|  | 107 | @item | 
|  | 108 | Michael Glad for the DES encryption function @code{crypt} and related | 
|  | 109 | functions. | 
|  | 110 |  | 
|  | 111 | @item | 
|  | 112 | Wolfram Gloger for contributing the memory allocation functions | 
|  | 113 | functions @code{malloc}, @code{realloc} and @code{free} and related | 
|  | 114 | code. | 
|  | 115 |  | 
|  | 116 | @item | 
|  | 117 | Torbj@"orn Granlund for fast implementations of many of the string | 
|  | 118 | functions (@code{memcpy}, @code{strlen}, etc.). | 
|  | 119 |  | 
|  | 120 | @item | 
|  | 121 | Michael J. Haertel for writing the merge sort function @code{qsort} | 
|  | 122 | and malloc checking functions like @code{mcheck}. | 
|  | 123 |  | 
|  | 124 | @item | 
|  | 125 | Bruno Haible for his improvements to the @code{iconv} and locale | 
|  | 126 | implementations. | 
|  | 127 |  | 
|  | 128 | @item | 
|  | 129 | Richard Henderson for the port to Linux on Alpha | 
|  | 130 | (@code{alpha-@var{anything}-linux}). | 
|  | 131 |  | 
|  | 132 | @item | 
|  | 133 | David Holsgrove for the port to Linux on MicroBlaze. | 
|  | 134 |  | 
|  | 135 | @item | 
|  | 136 | Daniel Jacobowitz for various fixes and enhancements. | 
|  | 137 |  | 
|  | 138 | @item | 
|  | 139 | Andreas Jaeger for the port to Linux on x86-64 | 
|  | 140 | (@code{x86_64-@var{anything}-linux} and his work on Linux for MIPS | 
|  | 141 | (@code{mips-@var{anything}-linux}), implementing the @file{ldconfig} | 
|  | 142 | program, providing a test suite for the math library and for his | 
|  | 143 | direction as part of @theglibc{} steering committee. | 
|  | 144 |  | 
|  | 145 | @item | 
|  | 146 | Aurelien Jarno for various fixes. | 
|  | 147 |  | 
|  | 148 | @item | 
|  | 149 | Jakub Jelinek for implementing a number of checking functions and for | 
|  | 150 | his direction as part of @theglibc{} steering committee. | 
|  | 151 |  | 
|  | 152 | @item | 
|  | 153 | Geoffrey Keating for the port to Linux on PowerPC | 
|  | 154 | (@code{powerpc-@var{anything}-linux}). | 
|  | 155 |  | 
|  | 156 | @item | 
|  | 157 | Brendan Kehoe for contributing the port to the MIPS DECStation running | 
|  | 158 | Ultrix 4 (@code{mips-dec-ultrix4}) and the port to the DEC Alpha | 
|  | 159 | running OSF/1 (@code{alpha-dec-osf1}). | 
|  | 160 |  | 
|  | 161 | @item | 
|  | 162 | Mark Kettenis for implementing the @code{utmpx} interface and an utmp | 
|  | 163 | daemon, and for a Hesiod NSS module. | 
|  | 164 |  | 
|  | 165 | @item | 
|  | 166 | Andi Kleen for implementing pthreads lock elision with TSX. | 
|  | 167 |  | 
|  | 168 | @item | 
|  | 169 | Kazumoto Kojima for the port of the Mach and Hurd code to the MIPS | 
|  | 170 | architecture (@code{mips-@var{anything}-gnu}) and for his work on the | 
|  | 171 | SH architecture. | 
|  | 172 |  | 
|  | 173 | @item | 
|  | 174 | Andreas Krebbel for his work on Linux for s390 and s390x. | 
|  | 175 |  | 
|  | 176 | @item | 
|  | 177 | Thorsten Kukuk for providing an implementation for NIS (YP) and NIS+, | 
|  | 178 | securelevel 0, 1 and 2 and for the implementation for a caching daemon | 
|  | 179 | for NSS (@file{nscd}). | 
|  | 180 |  | 
|  | 181 | @item | 
|  | 182 | Jeff Law for various fixes. | 
|  | 183 |  | 
|  | 184 | @item | 
|  | 185 | Doug Lea for contributing the memory allocation functions | 
|  | 186 | functions @code{malloc}, @code{realloc} and @code{free} and related | 
|  | 187 | code. | 
|  | 188 |  | 
|  | 189 | @item | 
|  | 190 | Chris Leonard for various fixes and enhancements to localedata. | 
|  | 191 |  | 
|  | 192 | @item | 
|  | 193 | Stefan Liebler for various fixes. | 
|  | 194 |  | 
|  | 195 | @item | 
|  | 196 | Hongjiu Lu for providing the support for a Linux 32-bit runtime | 
|  | 197 | environment under x86-64 (x32), for porting to Linux on IA64, for | 
|  | 198 | improved string functions, a framework for testing IFUNC | 
|  | 199 | implementations, and many bug fixes. | 
|  | 200 |  | 
|  | 201 | @item | 
|  | 202 | Luis Machado for optimized functions on PowerPC. | 
|  | 203 |  | 
|  | 204 | @item | 
|  | 205 | David J. MacKenzie for his contribution to the @code{getopt} | 
|  | 206 | function and writing the @file{tar.h} header. | 
|  | 207 |  | 
|  | 208 | @item | 
|  | 209 | Greg McGary for adding runtime support for bounds checking. | 
|  | 210 |  | 
|  | 211 | @item | 
|  | 212 | Roland McGrath for writing most of @theglibc{} originally, for his | 
|  | 213 | work on the Hurd port, his direction as part of @theglibc{} steering | 
|  | 214 | committee and as FSF Project Steward for @theglibc{}, and for many bug | 
|  | 215 | fixes and reviewing of contributions. | 
|  | 216 |  | 
|  | 217 | @item | 
|  | 218 | Allan McRae for various fixes. | 
|  | 219 |  | 
|  | 220 | @item | 
|  | 221 | Jason Merrill for the port to the Sequent Symmetry running Dynix | 
|  | 222 | version 3 (@code{i386-sequent-bsd}). | 
|  | 223 |  | 
|  | 224 | @item | 
|  | 225 | Chris Metcalf for the port to Linux/Tile | 
|  | 226 | (@code{tilegx-@var{anything}-linux} and | 
|  | 227 | @code{tilepro-@var{anything}-linux}). | 
|  | 228 |  | 
|  | 229 | @item | 
|  | 230 | David Miller for contributing the port to Linux/Sparc | 
|  | 231 | (@code{sparc*-@var{anything}-linux}). | 
|  | 232 |  | 
|  | 233 | @item | 
|  | 234 | Alan Modra for his improvements for Linux on PowerPC. | 
|  | 235 |  | 
|  | 236 | @item | 
|  | 237 | David Mosberger-Tang for contributing the port to Linux/Alpha | 
|  | 238 | (@code{alpha-@var{anything}-linux}). | 
|  | 239 |  | 
|  | 240 | @item | 
|  | 241 | Stephen Moshier for implementing some 128-bit long double format math | 
|  | 242 | functions. | 
|  | 243 |  | 
|  | 244 | @item | 
|  | 245 | Stephen Munroe for his port to Linux on PowerPC64 | 
|  | 246 | (@code{powerpc64-@var{anything}-linux}) and for adding optimized | 
|  | 247 | implementations for PowerPC. | 
|  | 248 |  | 
|  | 249 | @item | 
|  | 250 | Joseph S. Myers for numerous bug fixes for the libm functions, for | 
|  | 251 | his maintainership of the ARM and MIPS architectures, improving | 
|  | 252 | cross-compilation and cross-testing of @theglibc{}, expanded | 
|  | 253 | coverage of conformtest, merging the ports/ subdirectory | 
|  | 254 | into the @glibcadj{} main repository and his direction as FSF Project | 
|  | 255 | Steward for @theglibc{}. | 
|  | 256 |  | 
|  | 257 | @item | 
|  | 258 | Will Newton for contributing some optimized string functions and pointer | 
|  | 259 | encryption support for ARM and various fixes. | 
|  | 260 |  | 
|  | 261 | @item | 
|  | 262 | Carlos O'Donell for his maintainership of the HPPA architecture, for | 
|  | 263 | maintaining @theglibc{} web pages and wiki, for his direction as FSF | 
|  | 264 | Project Steward for @theglibc{} and various bug fixes. | 
|  | 265 |  | 
|  | 266 | @item | 
|  | 267 | Alexandre Oliva for adding TLS descriptors for LD and GD on x86 and | 
|  | 268 | x86-64, for the am33 port, for completing the MIPS n64/n32/o32 multilib | 
|  | 269 | port, for thread-safety, async-signal safety and async-cancellation | 
|  | 270 | safety documentation in the manual, for his direction as FSF Project | 
|  | 271 | Maintainer and for various fixes. | 
|  | 272 |  | 
|  | 273 | @item | 
|  | 274 | Paul Pluzhnikov for various fixes. | 
|  | 275 |  | 
|  | 276 | @item | 
|  | 277 | Marek Polacek for various fixes. | 
|  | 278 |  | 
|  | 279 | @item | 
|  | 280 | Siddhesh Poyarekar for various fixes and an implementation of a | 
|  | 281 | framework for performance benchmarking of functions. | 
|  | 282 |  | 
|  | 283 | @item | 
|  | 284 | Tom Quinn for contributing the startup code to support SunOS shared | 
|  | 285 | libraries and the port to SGI machines running Irix 4 | 
|  | 286 | (@code{mips-sgi-irix4}). | 
|  | 287 |  | 
|  | 288 | @item | 
|  | 289 | Torvald Riegel for the implementation of a new semaphore algorithm. | 
|  | 290 |  | 
|  | 291 | @item | 
|  | 292 | Pravin Satpute for writing sorting rules for some Indian languages. | 
|  | 293 |  | 
|  | 294 | @item | 
|  | 295 | Douglas C. Schmidt for writing the quick sort function used as a | 
|  | 296 | fallback by @code{qsort}. | 
|  | 297 |  | 
|  | 298 | @item | 
|  | 299 | Will Schmidt for optimized string functions on PowerPC. | 
|  | 300 |  | 
|  | 301 | @item | 
|  | 302 | Andreas Schwab for the port to Linux/m68k | 
|  | 303 | (@code{m68k-@var{anything}-linux}) and for his direction as part of | 
|  | 304 | @theglibc{} steering committee. | 
|  | 305 |  | 
|  | 306 | @item | 
|  | 307 | Martin Schwidefsky for porting to Linux on s390 | 
|  | 308 | (@code{s390-@var{anything}-linux}) and s390x | 
|  | 309 | (@code{s390x-@var{anything}-linux}). | 
|  | 310 |  | 
|  | 311 | @item | 
|  | 312 | Thomas Schwinge for his contribution to Hurd and the SH architecture. | 
|  | 313 |  | 
|  | 314 | @item | 
|  | 315 | Carlos Eduardo Seo for optimized functions on PowerPC. | 
|  | 316 |  | 
|  | 317 | @item | 
|  | 318 | Marcus Shawcroft for contributing the AArch64 port. | 
|  | 319 |  | 
|  | 320 | @item | 
|  | 321 | Franz Sirl for various fixes. | 
|  | 322 |  | 
|  | 323 | @item | 
|  | 324 | Jes Sorensen for porting to Linux on IA64 (@code{ia64-@var{anything}-linux}). | 
|  | 325 |  | 
|  | 326 | @item | 
|  | 327 | Richard Stallman for his contribution to the @code{getopt} function. | 
|  | 328 |  | 
|  | 329 | @item | 
|  | 330 | Alfred M. Szmidt for various fixes. | 
|  | 331 |  | 
|  | 332 | @item | 
|  | 333 | Ian Lance Taylor for contributing the port to the MIPS DECStation | 
|  | 334 | running Ultrix 4 (@code{mips-dec-ultrix4}). | 
|  | 335 |  | 
|  | 336 | @item | 
|  | 337 | Samuel Thibault for improving the Hurd port. | 
|  | 338 |  | 
|  | 339 | @item | 
|  | 340 | Tim Waugh for the implementation of the POSIX.2 @code{wordexp} | 
|  | 341 | function family. | 
|  | 342 |  | 
|  | 343 | @item | 
|  | 344 | Eric Youngdale for implementing versioning of objects on the symbol level. | 
|  | 345 |  | 
|  | 346 | @item | 
|  | 347 | Adhemerval Zanella for optimized functions on PowerPC. | 
|  | 348 |  | 
|  | 349 | @end itemize | 
|  | 350 |  | 
|  | 351 | Some code in @theglibc{} comes from other projects and might be under | 
|  | 352 | a different license: | 
|  | 353 |  | 
|  | 354 | @itemize @bullet | 
|  | 355 | @item | 
|  | 356 | The timezone support code is derived from the public-domain timezone | 
|  | 357 | package by Arthur David Olson and his many contributors. | 
|  | 358 |  | 
|  | 359 | @item | 
|  | 360 | Some of the support code for Mach is taken from Mach 3.0 by CMU; | 
|  | 361 | the file if_ppp.h is also copyright by CMU, but under a different license; | 
|  | 362 | see the file @file{LICENSES} for the text of the licenses. | 
|  | 363 |  | 
|  | 364 | @item | 
|  | 365 | The random number generation functions @code{random}, @code{srandom}, | 
|  | 366 | @code{setstate} and @code{initstate}, which are also the basis for the | 
|  | 367 | @code{rand} and @code{srand} functions, were written by Earl T. Cohen | 
|  | 368 | for the University of California at Berkeley and are copyrighted by the | 
|  | 369 | Regents of the University of California.  They have undergone minor | 
|  | 370 | changes to fit into @theglibc{} and to fit the @w{ISO C} standard, | 
|  | 371 | but the functional code is Berkeley's.@refill | 
|  | 372 |  | 
|  | 373 | @item | 
|  | 374 | The Internet-related code (most of the @file{inet} subdirectory) and | 
|  | 375 | several other miscellaneous functions and header files have been | 
|  | 376 | included from 4.4 BSD with little or no modification.  The copying | 
|  | 377 | permission notice for this code can be found in the file @file{LICENSES} | 
|  | 378 | in the source distribution. | 
|  | 379 |  | 
|  | 380 | @item | 
|  | 381 | The @code{getaddrinfo} and @code{getnameinfo} functions and supporting | 
|  | 382 | code were written by Craig Metz; see the file @file{LICENSES} for | 
|  | 383 | details on their licensing. | 
|  | 384 |  | 
|  | 385 | @item | 
|  | 386 | The DNS resolver code is taken directly from BIND 4.9.5, which | 
|  | 387 | includes copyrighted code from UC Berkeley and from Digital Equipment | 
|  | 388 | Corporation.  See the file @file{LICENSES} for the text of the DEC license. | 
|  | 389 |  | 
|  | 390 | @item | 
|  | 391 | The code to support Sun RPC is taken verbatim from Sun's | 
|  | 392 | @w{@sc{rpcsrc-4.0}} distribution; see the file @file{LICENSES} for the | 
|  | 393 | text of the license. | 
|  | 394 |  | 
|  | 395 | @item | 
|  | 396 | The math functions are taken from @code{fdlibm-5.1} by Sun | 
|  | 397 | Microsystems, as modified by J.T. Conklin, Ian Lance Taylor, | 
|  | 398 | Ulrich Drepper, Andreas Schwab, and Roland McGrath. | 
|  | 399 |  | 
|  | 400 | @item | 
|  | 401 | Many of the IEEE 64-bit double precision math functions | 
|  | 402 | (in the @file{sysdeps/ieee754/dbl-64} subdirectory) come | 
|  | 403 | from the IBM Accurate Mathematical Library, contributed by IBM. | 
|  | 404 |  | 
|  | 405 | @item | 
|  | 406 | Many of the IA64 math functions are taken from a collection of | 
|  | 407 | ``Highly Optimized Mathematical Functions for Itanium'' that Intel | 
|  | 408 | makes available under a free license; see the file @file{LICENSES} for | 
|  | 409 | details. | 
|  | 410 |  | 
|  | 411 | @end itemize |