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 |