1 @node Contributors, Free Manuals, Platform, Top
2 @c %MENU% Who wrote what parts of the GNU C Library
3 @appendix Contributors to @theglibc{}
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
15 Nick Alcock for contributing fixes to allow @theglibc{} to be built with the
16 stack smashing protector enabled.
19 John David Anglin for various fixes to the hppa port.
22 Albert ARIBAUD for Y2038 related fixes.
25 Ryan S. Arnold for his improvements for Linux on PowerPC and his direction
26 as FSF Project Steward for @theglibc{}.
29 Arsen Arsenovi@'c for various fixes.
32 Miles Bader for writing the @code{argp} argument-parsing package, and the
33 @code{argz}/@code{envz} interfaces.
36 Ralf B@"achle for contributing @file{fpu_control.h},
37 @file{regdef.h}, @file{sgidefs.h}, @file{sys/asm.h}, and @file{sys/regdef.h}
38 under the @file{sysdeps/mips} directory.
41 Jeff Bailey for his maintainership of the HPPA architecture.
44 Petr Baudis for bug fixes and testing.
47 Fr@'ed@'eric B@'erat for numerous fixes and contributions.
50 Indu Bhagat for various fixes.
53 Anton Blanchard for various fixes.
56 Stephen R. van den Berg for contributing a highly-optimized
57 @code{strstr} function.
60 Ond@v{r}ej B@'ilka for contributing optimized string routines for x64 and various
64 Eric Blake for adding O(n) implementations of @code{memmem},
65 @code{strstr} and @code{strcasestr}.
68 Philip Blundell for the ports to Linux/ARM
69 (@code{arm-@var{ANYTHING}-linuxaout}) and ARM standalone
70 (@code{arm-@var{ANYTHING}-none}), as well as for parts of the IPv6
74 Mahesh Bodapati for various fixes.
77 Per Bothner for the implementation of the @code{libio} library which
78 is used to implement @code{stdio} functions.
81 Dridi Boukelmoune for various fixes.
84 Mark Brown for his direction as part of @theglibc{} steering
88 Sergey Bugaev for numerous contributions to Hurd.
91 Thomas Bushnell for his contributions to Hurd.
94 Yinyu Cai for their maintainership of the LoongArch port.
97 Rogerio Alves Cardoso for various fixes to PowerPC.
100 Daniel Cederman for fixes to the Sparc port.
103 Kito Cheng for various fixes.
106 Paul Clarke for optimized functions on PowerPC.
109 Alejandro Colomar for various fixes.
112 Martin Coufal for various fixes.
115 Mike Crowe for various fixes.
118 Flavio Cruz for contributions to Hurd.
121 Palmer Dabbelt for contributing the port to Linux/RISC-V.
124 DJ Delorie for maintenance of Linux/RISC-V, and various fixes.
127 Jianbo Deng for the work on the Loongson port.
130 Wilco Dijkstra for various fixes and work on the AArch64 port.
133 Liubov Dmitrieva for optimized string and math functions on x86-64 and
137 Michael Hudson Doyle for various fixes.
140 Ulrich Drepper for his many contributions in almost all parts of
141 @theglibc{}, including:
143 @item writing most of the POSIX Threads Library originally.
144 @item internationalization support, including the @code{locale} and
145 @code{localedef} utilities.
146 @item Linux i386/ELF support
147 @item the @code{hsearch} and @code{drand48} families of functions,
148 reentrant @samp{@dots{}@code{_r}} versions of the @code{random}
149 family; System V shared memory and IPC support code
150 @item several highly-optimized string functions for i@var{x}86
152 @item many math functions
153 @item the character conversion functions (@code{iconv})
154 @item the @code{ftw} and @code{nftw} functions
155 @item the floating-point printing function used by @code{printf} and friends
156 and the floating-point reading function used by @code{scanf},
157 @code{strtod} and friends
158 @item the @code{catgets} support and the entire suite of multi-byte
159 and wide-character support functions (@file{wctype.h}, @file{wchar.h}, etc.).
160 @item versioning of objects on the symbol level
164 Richard Earnshaw for continued support and fixes to the various ARM
168 Paul Eggert for the @code{mktime} function, for his direction as
169 part of @theglibc{} steering committee, and numerous fixes.
172 Roy Eldar for various fixes.
175 Steve Ellcey for various fixes.
178 Mike FABIAN for automating Unicode updates, for updating the locale data
179 for ISO 14651, for updating the library Unicode support, and for many
180 locale updates and fixes.
183 Tulio Magno Quites Machado Filho for adding a new class of installed
184 headers for low-level platform-specific functionality, including the
185 low-level platform-specific headers for PowerPC, for their maintainership
186 of the PowerPC port and various fixes.
189 Olaf Flebbe and Ralf B@"achle for contributing
190 @file{sysdeps/mips/fpu_control.h}.
193 Alistair Francis for Y2038 related fixes.
196 Mike Frysinger for his maintaining of the IA64 architecture and for
197 testing and bug fixing.
200 Martin Galvan for contributing gdb pretty printer support to glibc and adding
201 an initial set of pretty printers for structures in the POSIX Threads library.
204 Romain Geissler for various fixes.
207 Michael Glad for the passphrase-hashing function @code{crypt} and related
208 functions (no longer part of glibc, but we still appreciate his work).
211 Wolfram Gloger for contributing the memory allocation functions
212 functions @code{malloc}, @code{realloc} and @code{free} and related
216 Noah Goldstein for contributing extensive x86 / x86-64 optimizations.
219 Gabriel F. T. Gomes for his improvements for Linux on PowerPC and for
220 implementing the IEEE 128-bit floating point type for PowerPC.
223 Torbj@"orn Granlund for fast implementations of many of the string
224 functions (@code{memcpy}, @code{strlen}, etc.).
227 Vineet Gupta for their maintainership of the ARC port.
230 Michael J. Haertel for writing the merge sort function @code{qsort}
231 and malloc checking functions like @code{mcheck}.
234 Bruno Haible for his improvements to the @code{iconv} and locale
235 implementations and various fixes.
238 Mao Han for the C-SKY port.
241 Richard Henderson for the port to Linux on Alpha
242 (@code{alpha-@var{anything}-linux}) and software floating-point support.
245 David Holsgrove for the port to Linux on MicroBlaze.
248 Leonhard Holz for various fixes.
251 Stafford Horne for maintainership of the OpenRISC port.
254 Ying Huang for work on the MIPS port.
257 Guy-Fleury Iteriteka for contributions to Hurd support.
260 Daniel Jacobowitz for various fixes and enhancements.
263 Andreas Jaeger for the port to Linux on x86-64
264 (@code{x86_64-@var{anything}-linux} and his work on Linux for MIPS
265 (@code{mips-@var{anything}-linux}), implementing the @file{ldconfig}
266 program, providing a test suite for the math library and for his
267 direction as part of @theglibc{} steering committee.
270 Sam James for various fixes.
273 Aurelien Jarno for various fixes.
276 Rical Jasan for contributing various fixes in @theglibc{} manual.
279 Jakub Jelinek for implementing a number of checking functions,
280 software floating-point support and for
281 his direction as part of @theglibc{} steering committee.
284 Simon Josefsson for the @code{libidn} add-on.
287 Geoffrey Keating for the port to Linux on PowerPC
288 (@code{powerpc-@var{anything}-linux}).
291 Brendan Kehoe for contributing the port to the MIPS DECStation running
292 Ultrix 4 (@code{mips-dec-ultrix4}) and the port to the DEC Alpha
293 running OSF/1 (@code{alpha-dec-osf1}).
296 Mark Kettenis for implementing the @code{utmpx} interface and a utmp
297 daemon, and for a Hesiod NSS module.
300 Simon Kissane for gmon improvements.
303 Andi Kleen for implementing pthreads lock elision with TSX.
306 Kazumoto Kojima for the port of the Mach and Hurd code to the MIPS
307 architecture (@code{mips-@var{anything}-gnu}) and for his work on the
311 Pavel Kozlov for maintainership of the ARC port.
314 Maxim Kuvyrkov for various fixes.
317 Andreas Krebbel for his work on Linux for s390 and s390x.
320 Thorsten Kukuk for providing an implementation for NIS (YP) and NIS+,
321 securelevel 0, 1 and 2 and for the implementation for a caching daemon
322 for NSS (@file{nscd}).
325 Akhilesh Kumar for various fixes to locales.
328 Jeff Law for various fixes.
331 Doug Lea for contributing the memory allocation functions
332 @code{malloc}, @code{realloc} and @code{free} and related
336 Chris Leonard for various fixes and enhancements to localedata.
339 Ilya Leoshkevich for various fixes.
342 Dmitry V. Levin for various fixes.
345 Stefan Liebler for numerous fixes and the work on the S390 port.
348 Hongjiu Lu for providing the support for a Linux 32-bit runtime
349 environment under x86-64 (x32), for porting to Linux on IA64, for
350 improved string functions, a framework for testing IFUNC
351 implementations, for implementing Intel Control-Flow Enforcement
352 Technology, and many bug fixes.
355 Rafa@l{} Lu@dotaccent{z}y@'nski
356 for contributing support for two grammatical forms of month
357 names, and for various fixes to locales.
360 Maxim Kuvyrkov for various fixes.
363 Luis Machado for optimized functions on PowerPC.
366 David J. MacKenzie for his contribution to the @code{getopt}
367 function and writing the @file{tar.h} header.
370 Lukasz Majewski for Y2038 related fixes.
373 Greg McGary for adding runtime support for bounds checking.
376 Roland McGrath for writing most of @theglibc{} originally, for his
377 work on the Hurd port, his direction as part of @theglibc{} steering
378 committee and as FSF Project Steward for @theglibc{}, and for many bug
379 fixes and reviewing of contributions.
382 Allan McRae for various fixes.
385 Jason Merrill for the port to the Sequent Symmetry running Dynix
386 version 3 (@code{i386-sequent-bsd}).
389 Chris Metcalf for the port to Linux/Tile
390 (@code{tilegx-@var{anything}-linux} and
391 @code{tilepro-@var{anything}-linux}) and support for the generic Linux
392 kernel syscall interface used by several newer ports.
395 Jim Meyering for various fixes.
398 David Miller for contributing the port to Linux/Sparc
399 (@code{sparc*-@var{anything}-linux}).
402 Cupertino Miranda for various fixes.
405 Alan Modra for his improvements for Linux on PowerPC.
408 Sachin Monga for various fixes.
411 David Mosberger-Tang for contributing the port to Linux/Alpha
412 (@code{alpha-@var{anything}-linux}).
415 Wainer dos Santos Moschetta for various fixes to powerpc.
418 Stephen Moshier for implementing some 128-bit long double format math
422 Stephen Munroe for his port to Linux on PowerPC64
423 (@code{powerpc64-@var{anything}-linux}) and for adding optimized
424 implementations for PowerPC.
427 Paul E. Murphy for various fixes on PowerPC and for implementing the IEEE
428 128-bit floating point type for PowerPC.
431 Joseph S. Myers for numerous bug fixes for the libm functions, for
432 his maintainership of the ARM and MIPS architectures and the math
433 component, improving cross-compilation and cross-testing of
434 @theglibc{}, expanded coverage of conformtest, merging the ports/
435 subdirectory into the @glibcadj{} main repository, C23 support,
436 and his direction as FSF Project Steward for @theglibc{}.
439 Marko Myllynen for various fixes.
442 Szabolcs Nagy for various fixes and contributions to AArch64.
445 Nab for various fixes.
448 Will Newton for contributing some optimized string functions and pointer
449 encryption support for ARM and various fixes.
452 Carlos O'Donell for his maintainership of the HPPA architecture, for
453 maintaining @theglibc{} web pages and wiki, for his direction as FSF
454 Project Steward for @theglibc{} and various bug fixes.
457 Alexandre Oliva for adding TLS descriptors for LD and GD on x86 and
458 x86-64, for the am33 port, for completing the MIPS n64/n32/o32 multilib
459 port, for thread-safety, async-signal safety and async-cancellation
460 safety documentation in the manual, for his direction as FSF Project
461 Maintainer and for various fixes.
464 Sunil K. Pandey for various fixes.
467 Ronan Pigott for various fixes.
470 Paul Pluzhnikov for various fixes.
473 Marek Polacek for various fixes.
476 Siddhesh Poyarekar for various fixes, an implementation of a framework for
477 performance benchmarking of functions and implementing the tunables
481 Tom Quinn for contributing the startup code to support SunOS shared
482 libraries and the port to SGI machines running Irix 4
483 (@code{mips-sgi-irix4}).
486 Joe Ramsay for contributing to the AArch64 port, in particular the
490 Torvald Riegel for the implementation of new algorithms for semaphores,
491 pthread_rwlock and condition variables.
494 Maciej W. Rozycki for MIPS fixes, support for ABSOLUTE symbols,
498 Leonardo Sandoval for various fixes.
501 Pravin Satpute for writing sorting rules for some Indian languages.
504 Douglas C. Schmidt for writing the quick sort function used as a
505 fallback by @code{qsort}.
508 Will Schmidt for optimized string functions on PowerPC.
511 Andreas Schwab for the port to Linux/m68k
512 (@code{m68k-@var{anything}-linux}), for his direction as part of
513 @theglibc{} steering committee, and for various bug fixes.
516 Martin Schwidefsky for porting to Linux on s390
517 (@code{s390-@var{anything}-linux}) and s390x
518 (@code{s390x-@var{anything}-linux}).
521 Thomas Schwinge for his contribution to Hurd and the SH architecture.
524 Martin Sebor for various fixes.
527 Andrew Senkevich for contributing vector math function implementations for x86.
530 Carlos Eduardo Seo for optimized functions on PowerPC.
533 Arjun Shankar for testing and bug fixing.
536 Marcus Shawcroft for contributing the AArch64 port.
539 TAMUKI Shoichi for various fixes.
542 Joe Simmons-Talbott for various fixes.
545 Franz Sirl for various fixes.
548 Gavin Smith for various fixes.
551 Jes Sorensen for porting to Linux on IA64 (@code{ia64-@var{anything}-linux}).
554 Julian Squires for various fixes.
557 Rajalakshmi Srinivasaraghavan for various fixes and optimizations on PowerPC,
558 for implementing the IEEE 128-bit floating point type for PowerPC., and for
559 their maintainership of the PowerPC port.
562 Richard Stallman for his contribution to the @code{getopt} function.
565 Alfred M. Szmidt for various fixes.
568 Chung-Lin Tang for contributing the Nios II port.
571 Ian Lance Taylor for contributing the port to the MIPS DECStation
572 running Ultrix 4 (@code{mips-dec-ultrix4}).
575 Samuel Thibault for numerous improvements to the Hurd port.
578 Pino Toscano for various fixes.
581 Matt Turner for various fixes to the Alpha port.
584 Valery Ushakov for locale fixes.
587 Hsiangkai Wang for various fixes.
590 Tim Waugh for the implementation of the POSIX.2 @code{wordexp}
594 Ulrich Weigand for various fixes to the PowerPC64 and Arm ports.
597 Florian Weimer for his maintainership of the network component, for handling
598 of security issues, and for numerous fixes and contributions.
601 Zack Weinberg for the @code{explicit_bzero} implementation and for various
605 Mark Wielaard for various fixes.
608 Xi Ruoyao for various fixes.
611 Qixing ksyx Xue for various fixes.
614 Adam Yi for various fixes.
617 Eric Youngdale for implementing versioning of objects on the symbol level.
620 Adhemerval Zanella for optimized functions on PowerPC, ISO C threads support,
621 the work on tunables, and numerous contributions and fixes.
624 Xuelei Zhang for optimized functions on AArch64.
628 Some code in @theglibc{} comes from other projects and might be under
633 The timezone support code is derived from the public-domain timezone
634 package by Arthur David Olson and his many contributors.
637 Some of the support code for Mach is taken from Mach 3.0 by CMU;
638 the file @file{if_ppp.h} is also copyright by CMU, but under a different license;
639 see the file @file{LICENSES} for the text of the licenses.
642 The random number generation functions @code{random}, @code{srandom},
643 @code{setstate} and @code{initstate}, which are also the basis for the
644 @code{rand} and @code{srand} functions, were written by Earl T. Cohen
645 for the University of California at Berkeley and are copyrighted by the
646 Regents of the University of California. They have undergone minor
647 changes to fit into @theglibc{} and to fit the @w{ISO C} standard,
648 but the functional code is Berkeley's.
651 The Internet-related code (most of the @file{inet} subdirectory) and
652 several other miscellaneous functions and header files have been
653 included from 4.4 BSD with little or no modification. The copying
654 permission notice for this code can be found in the file @file{LICENSES}
655 in the source distribution.
658 The @code{getaddrinfo} and @code{getnameinfo} functions and supporting
659 code were written by Craig Metz; see the file @file{LICENSES} for
660 details on their licensing.
663 The DNS resolver code is taken directly from BIND 8.2.3-T5B, which
664 includes copyrighted code from UC Berkeley and from Digital Equipment
665 Corporation. See the file @file{LICENSES} for the text of the DEC license.
668 The code to support Sun RPC is taken verbatim from Sun's
669 @w{@sc{rpcsrc-4.0}} distribution; see the file @file{LICENSES} for the
673 The math functions are taken from @code{fdlibm-5.1} by Sun
674 Microsystems, as modified by J.T. Conklin, Ian Lance Taylor,
675 Ulrich Drepper, Andreas Schwab, and Roland McGrath.
678 Many of the IEEE 64-bit double precision math functions
679 (in the @file{sysdeps/ieee754/dbl-64} subdirectory) come
680 from the IBM Accurate Mathematical Library, contributed by IBM.
683 Many of the IA64 math functions are taken from a collection of
684 ``Highly Optimized Mathematical Functions for Itanium'' that Intel
685 makes available under a free license; see the file @file{LICENSES} for