contrib.texi 15 KB

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