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