@c Copyright (C) 1988-2017 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.

@node Contributors
@unnumbered Contributors to GCC
@cindex contributors

The GCC project would like to thank its many contributors.  Without them the
project would not have been nearly as successful as it has been.  Any omissions
in this list are accidental.  Feel free to contact
@email{law@@redhat.com} or @email{gerald@@pfeifer.com} if you have been left
out or some of your contributions are not listed.  Please keep this list in
alphabetical order.

@itemize @bullet

@item
Analog Devices helped implement the support for complex data types
and iterators.

@item
John David Anglin for threading-related fixes and improvements to
libstdc++-v3, and the HP-UX port.

@item
James van Artsdalen wrote the code that makes efficient use of
the Intel 80387 register stack.

@item
Abramo and Roberto Bagnara for the SysV68 Motorola 3300 Delta Series
port.

@item
Alasdair Baird for various bug fixes.

@item
Giovanni Bajo for analyzing lots of complicated C++ problem reports.

@item
Peter Barada for his work to improve code generation for new
ColdFire cores.

@item
Gerald Baumgartner added the signature extension to the C++ front end.

@item
Godmar Back for his Java improvements and encouragement.

@item
Scott Bambrough for help porting the Java compiler.

@item
Wolfgang Bangerth for processing tons of bug reports.

@item
Jon Beniston for his Microsoft Windows port of Java and port to Lattice Mico32.

@item
Daniel Berlin for better DWARF 2 support, faster/better optimizations,
improved alias analysis, plus migrating GCC to Bugzilla.

@item
Geoff Berry for his Java object serialization work and various patches.

@item
David Binderman tests weekly snapshots of GCC trunk against Fedora Rawhide
for several architectures.

@item
Laurynas Biveinis for memory management work and DJGPP port fixes.

@item
Uros Bizjak for the implementation of x87 math built-in functions and
for various middle end and i386 back end improvements and bug fixes.

@item
Eric Blake for helping to make GCJ and libgcj conform to the
specifications.

@item
Janne Blomqvist for contributions to GNU Fortran.

@item
Hans-J. Boehm for his garbage collector, IA-64 libffi port, and other
Java work.

@item
Segher Boessenkool for helping maintain the PowerPC port and the
instruction combiner plus various contributions to the middle end.

@item
Neil Booth for work on cpplib, lang hooks, debug hooks and other
miscellaneous clean-ups.

@item
Steven Bosscher for integrating the GNU Fortran front end into GCC and for
contributing to the tree-ssa branch.

@item
Eric Botcazou for fixing middle- and backend bugs left and right.

@item
Per Bothner for his direction via the steering committee and various
improvements to the infrastructure for supporting new languages.  Chill
front end implementation.  Initial implementations of
cpplib, fix-header, config.guess, libio, and past C++ library (libg++)
maintainer.  Dreaming up, designing and implementing much of GCJ@.

@item
Devon Bowen helped port GCC to the Tahoe.

@item
Don Bowman for mips-vxworks contributions.

@item
James Bowman for the FT32 port.

@item
Dave Brolley for work on cpplib and Chill.

@item
Paul Brook for work on the ARM architecture and maintaining GNU Fortran.

@item
Robert Brown implemented the support for Encore 32000 systems.

@item
Christian Bruel for improvements to local store elimination.

@item
Herman A.J. ten Brugge for various fixes.

@item
Joerg Brunsmann for Java compiler hacking and help with the GCJ FAQ@.

@item
Joe Buck for his direction via the steering committee from its creation
to 2013.

@item
Craig Burley for leadership of the G77 Fortran effort.

@item
Tobias Burnus for contributions to GNU Fortran.

@item
Stephan Buys for contributing Doxygen notes for libstdc++.

@item
Paolo Carlini for libstdc++ work: lots of efficiency improvements to
the C++ strings, streambufs and formatted I/O, hard detective work on
the frustrating localization issues, and keeping up with the problem reports.

@item
John Carr for his alias work, SPARC hacking, infrastructure improvements,
previous contributions to the steering committee, loop optimizations, etc.

@item
Stephane Carrez for 68HC11 and 68HC12 ports.

@item
Steve Chamberlain for support for the Renesas SH and H8 processors
and the PicoJava processor, and for GCJ config fixes.

@item
Glenn Chambers for help with the GCJ FAQ@.

@item
John-Marc Chandonia for various libgcj patches.

@item
Denis Chertykov for contributing and maintaining the AVR port, the first GCC port
for an 8-bit architecture.

@item
Kito Cheng for his work on the RISC-V port, including bringing up the test
suite and maintenance.

@item
Scott Christley for his Objective-C contributions.

@item
Eric Christopher for his Java porting help and clean-ups.

@item
Branko Cibej for more warning contributions.

@item
The @uref{http://www.gnu.org/software/classpath/,,GNU Classpath project}
for all of their merged runtime code.

@item
Nick Clifton for arm, mcore, fr30, v850, m32r, msp430 rx work,
@option{--help}, and other random hacking.

@item
Michael Cook for libstdc++ cleanup patches to reduce warnings.

@item
R. Kelley Cook for making GCC buildable from a read-only directory as
well as other miscellaneous build process and documentation clean-ups.

@item
Ralf Corsepius for SH testing and minor bug fixing.

@item
Fran@,{c}ois-Xavier Coudert for contributions to GNU Fortran.

@item
Stan Cox for care and feeding of the x86 port and lots of behind
the scenes hacking.

@item
Alex Crain provided changes for the 3b1.

@item
Ian Dall for major improvements to the NS32k port.

@item
Paul Dale for his work to add uClinux platform support to the
m68k backend.

@item
Palmer Dabbelt for his work maintaining the RISC-V port.

@item
Dario Dariol contributed the four varieties of sample programs
that print a copy of their source.

@item
Russell Davidson for fstream and stringstream fixes in libstdc++.

@item
Bud Davis for work on the G77 and GNU Fortran compilers.

@item
Mo DeJong for GCJ and libgcj bug fixes.

@item
Jerry DeLisle for contributions to GNU Fortran.

@item
DJ Delorie for the DJGPP port, build and libiberty maintenance,
various bug fixes, and the M32C, MeP, MSP430, and RL78 ports.

@item
Arnaud Desitter for helping to debug GNU Fortran.

@item
Gabriel Dos Reis for contributions to G++, contributions and
maintenance of GCC diagnostics infrastructure, libstdc++-v3,
including @code{valarray<>}, @code{complex<>}, maintaining the numerics library
(including that pesky @code{<limits>} :-) and keeping up-to-date anything
to do with numbers.

@item
Ulrich Drepper for his work on glibc, testing of GCC using glibc, ISO C99
support, CFG dumping support, etc., plus support of the C++ runtime
libraries including for all kinds of C interface issues, contributing and
maintaining @code{complex<>}, sanity checking and disbursement, configuration
architecture, libio maintenance, and early math work.

@item
Fran@,{c}ois Dumont for his work on libstdc++-v3, especially maintaining and
improving @code{debug-mode} and associative and unordered containers.

@item
Zdenek Dvorak for a new loop unroller and various fixes.

@item
Michael Eager for his work on the Xilinx MicroBlaze port.

@item
Richard Earnshaw for his ongoing work with the ARM@.

@item
David Edelsohn for his direction via the steering committee, ongoing work
with the RS6000/PowerPC port, help cleaning up Haifa loop changes,
doing the entire AIX port of libstdc++ with his bare hands, and for
ensuring GCC properly keeps working on AIX@.

@item
Kevin Ediger for the floating point formatting of num_put::do_put in
libstdc++.

@item
Phil Edwards for libstdc++ work including configuration hackery,
documentation maintainer, chief breaker of the web pages, the occasional
iostream bug fix, and work on shared library symbol versioning.

@item
Paul Eggert for random hacking all over GCC@.

@item
Mark Elbrecht for various DJGPP improvements, and for libstdc++
configuration support for locales and fstream-related fixes.

@item
Vadim Egorov for libstdc++ fixes in strings, streambufs, and iostreams.

@item
Christian Ehrhardt for dealing with bug reports.

@item
Ben Elliston for his work to move the Objective-C runtime into its
own subdirectory and for his work on autoconf.

@item
Revital Eres for work on the PowerPC 750CL port.

@item
Marc Espie for OpenBSD support.

@item
Doug Evans for much of the global optimization framework, arc, m32r,
and SPARC work.

@item
Christopher Faylor for his work on the Cygwin port and for caring and
feeding the gcc.gnu.org box and saving its users tons of spam.

@item
Fred Fish for BeOS support and Ada fixes.

@item
Ivan Fontes Garcia for the Portuguese translation of the GCJ FAQ@.

@item
Peter Gerwinski for various bug fixes and the Pascal front end.

@item
Kaveh R.@: Ghazi for his direction via the steering committee, amazing
work to make @samp{-W -Wall -W* -Werror} useful, and 
testing GCC on a plethora of platforms.  Kaveh extends his gratitude to
the CAIP Center at Rutgers University for providing him with computing
resources to work on Free Software from the late 1980s to 2010.

@item
John Gilmore for a donation to the FSF earmarked improving GNU Java.

@item
Judy Goldberg for c++ contributions.

@item
Torbjorn Granlund for various fixes and the c-torture testsuite,
multiply- and divide-by-constant optimization, improved long long
support, improved leaf function register allocation, and his direction
via the steering committee.

@item
Jonny Grant for improvements to @code{collect2's} @option{--help} documentation.

@item
Anthony Green for his @option{-Os} contributions, the moxie port, and
Java front end work.

@item
Stu Grossman for gdb hacking, allowing GCJ developers to debug Java code.

@item
Michael K. Gschwind contributed the port to the PDP-11.

@item
Richard Biener for his ongoing middle-end contributions and bug fixes
and for release management.

@item
Ron Guilmette implemented the @command{protoize} and @command{unprotoize}
tools, the support for DWARF 1 symbolic debugging information, and much of
the support for System V Release 4.  He has also worked heavily on the
Intel 386 and 860 support.

@item
Sumanth Gundapaneni for contributing the CR16 port.

@item
Mostafa Hagog for Swing Modulo Scheduling (SMS) and post reload GCSE@.

@item
Bruno Haible for improvements in the runtime overhead for EH, new
warnings and assorted bug fixes.

@item
Andrew Haley for his amazing Java compiler and library efforts.

@item
Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300.

@item
Michael Hayes for various thankless work he's done trying to get
the c30/c40 ports functional.  Lots of loop and unroll improvements and
fixes.

@item
Dara Hazeghi for wading through myriads of target-specific bug reports.

@item
Kate Hedstrom for staking the G77 folks with an initial testsuite.

@item
Richard Henderson for his ongoing SPARC, alpha, ia32, and ia64 work, loop
opts, and generally fixing lots of old problems we've ignored for
years, flow rewrite and lots of further stuff, including reviewing
tons of patches.

@item
Aldy Hernandez for working on the PowerPC port, SIMD support, and
various fixes.

@item
Nobuyuki Hikichi of Software Research Associates, Tokyo, contributed
the support for the Sony NEWS machine.

@item
Kazu Hirata for caring and feeding the Renesas H8/300 port and various fixes.

@item
Katherine Holcomb for work on GNU Fortran.

@item
Manfred Hollstein for his ongoing work to keep the m88k alive, lots
of testing and bug fixing, particularly of GCC configury code.

@item
Steve Holmgren for MachTen patches.

@item
Mat Hostetter for work on the TILE-Gx and TILEPro ports.

@item
Jan Hubicka for his x86 port improvements.

@item
Falk Hueffner for working on C and optimization bug reports.

@item
Bernardo Innocenti for his m68k work, including merging of
ColdFire improvements and uClinux support.

@item
Christian Iseli for various bug fixes.

@item
Kamil Iskra for general m68k hacking.

@item
Lee Iverson for random fixes and MIPS testing.

@item
Balaji V. Iyer for Cilk+ development and merging.

@item
Andreas Jaeger for testing and benchmarking of GCC and various bug fixes.

@item
Martin Jambor for his work on inter-procedural optimizations, the
switch conversion pass, and scalar replacement of aggregates.

@item
Jakub Jelinek for his SPARC work and sibling call optimizations as well
as lots of bug fixes and test cases, and for improving the Java build
system.

@item
Janis Johnson for ia64 testing and fixes, her quality improvement
sidetracks, and web page maintenance.

@item
Kean Johnston for SCO OpenServer support and various fixes.

@item
Tim Josling for the sample language treelang based originally on Richard
Kenner's ``toy'' language.

@item
Nicolai Josuttis for additional libstdc++ documentation.

@item
Klaus Kaempf for his ongoing work to make alpha-vms a viable target.

@item
Steven G. Kargl for work on GNU Fortran.

@item
David Kashtan of SRI adapted GCC to VMS@.

@item
Ryszard Kabatek for many, many libstdc++ bug fixes and optimizations of
strings, especially member functions, and for auto_ptr fixes.

@item
Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux
and his automatic regression tester.

@item
Brendan Kehoe for his ongoing work with G++ and for a lot of early work
in just about every part of libstdc++.

@item
Oliver M. Kellogg of Deutsche Aerospace contributed the port to the
MIL-STD-1750A@.

@item
Richard Kenner of the New York University Ultracomputer Research
Laboratory wrote the machine descriptions for the AMD 29000, the DEC
Alpha, the IBM RT PC, and the IBM RS/6000 as well as the support for
instruction attributes.  He also made changes to better support RISC
processors including changes to common subexpression elimination,
strength reduction, function calling sequence handling, and condition
code support, in addition to generalizing the code for frame pointer
elimination and delay slot scheduling.  Richard Kenner was also the
head maintainer of GCC for several years.

@item
Mumit Khan for various contributions to the Cygwin and Mingw32 ports and
maintaining binary releases for Microsoft Windows hosts, and for massive libstdc++
porting work to Cygwin/Mingw32.

@item
Robin Kirkham for cpu32 support.

@item
Mark Klein for PA improvements.

@item
Thomas Koenig for various bug fixes.

@item
Bruce Korb for the new and improved fixincludes code.

@item
Benjamin Kosnik for his G++ work and for leading the libstdc++-v3 effort.

@item
Maxim Kuvyrkov for contributions to the instruction scheduler, the Android 
and m68k/Coldfire ports, and optimizations.

@item
Charles LaBrec contributed the support for the Integrated Solutions
68020 system.

@item
Asher Langton and Mike Kumbera for contributing Cray pointer support
to GNU Fortran, and for other GNU Fortran improvements.

@item
Jeff Law for his direction via the steering committee, coordinating the
entire egcs project and GCC 2.95, rolling out snapshots and releases,
handling merges from GCC2, reviewing tons of patches that might have
fallen through the cracks else, and random but extensive hacking.

@item
Walter Lee for work on the TILE-Gx and TILEPro ports.

@item
Marc Lehmann for his direction via the steering committee and helping
with analysis and improvements of x86 performance.

@item
Victor Leikehman for work on GNU Fortran.

@item
Ted Lemon wrote parts of the RTL reader and printer.

@item
Kriang Lerdsuwanakij for C++ improvements including template as template
parameter support, and many C++ fixes.

@item
Warren Levy for tremendous work on libgcj (Java Runtime Library) and
random work on the Java front end.

@item
Alain Lichnewsky ported GCC to the MIPS CPU@.

@item
Oskar Liljeblad for hacking on AWT and his many Java bug reports and
patches.

@item
Robert Lipe for OpenServer support, new testsuites, testing, etc.

@item
Chen Liqin for various S+core related fixes/improvement, and for
maintaining the S+core port.

@item
Weiwen Liu for testing and various bug fixes.

@item
Manuel L@'opez-Ib@'a@~nez for improving @option{-Wconversion} and
many other diagnostics fixes and improvements.

@item
Dave Love for his ongoing work with the Fortran front end and
runtime libraries.

@item
Martin von L@"owis for internal consistency checking infrastructure,
various C++ improvements including namespace support, and tons of
assistance with libstdc++/compiler merges.

@item
H.J. Lu for his previous contributions to the steering committee, many x86
bug reports, prototype patches, and keeping the GNU/Linux ports working.

@item
Greg McGary for random fixes and (someday) bounded pointers.

@item
Andrew MacLeod for his ongoing work in building a real EH system,
various code generation improvements, work on the global optimizer, etc.

@item
Vladimir Makarov for hacking some ugly i960 problems, PowerPC hacking
improvements to compile-time performance, overall knowledge and
direction in the area of instruction scheduling, and design and
implementation of the automaton based instruction scheduler.

@item
Bob Manson for his behind the scenes work on dejagnu.

@item
John Marino for contributing the DragonFly BSD port.

@item
Philip Martin for lots of libstdc++ string and vector iterator fixes and
improvements, and string clean up and testsuites.

@item
Michael Matz for his work on dominance tree discovery, the x86-64 port,
link-time optimization framework and general optimization improvements.

@item
All of the Mauve project contributors for Java test code.

@item
Bryce McKinlay for numerous GCJ and libgcj fixes and improvements.

@item
Adam Megacz for his work on the Microsoft Windows port of GCJ@.

@item
Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS,
powerpc, haifa, ECOFF debug support, and other assorted hacking.

@item
Jason Merrill for his direction via the steering committee and leading
the G++ effort.

@item
Martin Michlmayr for testing GCC on several architectures using the
entire Debian archive.

@item
David Miller for his direction via the steering committee, lots of
SPARC work, improvements in jump.c and interfacing with the Linux kernel
developers.

@item
Gary Miller ported GCC to Charles River Data Systems machines.

@item
Alfred Minarik for libstdc++ string and ios bug fixes, and turning the
entire libstdc++ testsuite namespace-compatible.

@item
Mark Mitchell for his direction via the steering committee, mountains of
C++ work, load/store hoisting out of loops, alias analysis improvements,
ISO C @code{restrict} support, and serving as release manager from 2000
to 2011.

@item
Alan Modra for various GNU/Linux bits and testing.

@item
Toon Moene for his direction via the steering committee, Fortran
maintenance, and his ongoing work to make us make Fortran run fast.

@item
Jason Molenda for major help in the care and feeding of all the services
on the gcc.gnu.org (formerly egcs.cygnus.com) machine---mail, web
services, ftp services, etc etc.  Doing all this work on scrap paper and
the backs of envelopes would have been@dots{} difficult.

@item
Catherine Moore for fixing various ugly problems we have sent her
way, including the haifa bug which was killing the Alpha & PowerPC
Linux kernels.

@item
Mike Moreton for his various Java patches.

@item
David Mosberger-Tang for various Alpha improvements, and for the initial
IA-64 port.

@item
Stephen Moshier contributed the floating point emulator that assists in
cross-compilation and permits support for floating point numbers wider
than 64 bits and for ISO C99 support.

@item
Bill Moyer for his behind the scenes work on various issues.

@item
Philippe De Muyter for his work on the m68k port.

@item
Joseph S. Myers for his work on the PDP-11 port, format checking and ISO
C99 support, and continuous emphasis on (and contributions to) documentation.

@item
Nathan Myers for his work on libstdc++-v3: architecture and authorship
through the first three snapshots, including implementation of locale
infrastructure, string, shadow C headers, and the initial project
documentation (DESIGN, CHECKLIST, and so forth).  Later, more work on
MT-safe string and shadow headers.

@item
Felix Natter for documentation on porting libstdc++.

@item
Nathanael Nerode for cleaning up the configuration/build process.

@item
NeXT, Inc.@: donated the front end that supports the Objective-C
language.

@item
Hans-Peter Nilsson for the CRIS and MMIX ports, improvements to the search
engine setup, various documentation fixes and other small fixes.

@item
Geoff Noer for his work on getting cygwin native builds working.

@item
Diego Novillo for his work on Tree SSA, OpenMP, SPEC performance
tracking web pages, GIMPLE tuples, and assorted fixes.

@item
David O'Brien for the FreeBSD/alpha, FreeBSD/AMD x86-64, FreeBSD/ARM,
FreeBSD/PowerPC, and FreeBSD/SPARC64 ports and related infrastructure
improvements.

@item
Alexandre Oliva for various build infrastructure improvements, scripts and
amazing testing work, including keeping libtool issues sane and happy.

@item
Stefan Olsson for work on mt_alloc.

@item
Melissa O'Neill for various NeXT fixes.

@item
Rainer Orth for random MIPS work, including improvements to GCC's o32
ABI support, improvements to dejagnu's MIPS support, Java configuration
clean-ups and porting work, and maintaining the IRIX, Solaris 2, and
Tru64 UNIX ports.

@item
Steven Pemberton for his contribution of @file{enquire} which allowed GCC to
determine various properties of the floating point unit and generate
@file{float.h} in older versions of GCC.

@item
Hartmut Penner for work on the s390 port.

@item
Paul Petersen wrote the machine description for the Alliant FX/8.

@item
Alexandre Petit-Bianco for implementing much of the Java compiler and
continued Java maintainership.

@item
Matthias Pfaller for major improvements to the NS32k port.

@item
Gerald Pfeifer for his direction via the steering committee, pointing
out lots of problems we need to solve, maintenance of the web pages, and
taking care of documentation maintenance in general.

@item
Andrew Pinski for processing bug reports by the dozen.

@item
Ovidiu Predescu for his work on the Objective-C front end and runtime
libraries.

@item
Jerry Quinn for major performance improvements in C++ formatted I/O@.

@item
Ken Raeburn for various improvements to checker, MIPS ports and various
cleanups in the compiler.

@item
Rolf W. Rasmussen for hacking on AWT@.

@item
David Reese of Sun Microsystems contributed to the Solaris on PowerPC
port.

@item
Volker Reichelt for keeping up with the problem reports.

@item
Joern Rennecke for maintaining the sh port, loop, regmove & reload
hacking and developing and maintaining the Epiphany port.

@item
Loren J. Rittle for improvements to libstdc++-v3 including the FreeBSD
port, threading fixes, thread-related configury changes, critical
threading documentation, and solutions to really tricky I/O problems,
as well as keeping GCC properly working on FreeBSD and continuous testing.

@item
Craig Rodrigues for processing tons of bug reports.

@item
Ola R@"onnerup for work on mt_alloc.

@item
Gavin Romig-Koch for lots of behind the scenes MIPS work.

@item
David Ronis inspired and encouraged Craig to rewrite the G77
documentation in texinfo format by contributing a first pass at a
translation of the old @file{g77-0.5.16/f/DOC} file.

@item
Ken Rose for fixes to GCC's delay slot filling code.

@item
Ira Rosen for her contributions to the auto-vectorizer.

@item
Paul Rubin wrote most of the preprocessor.

@item
P@'etur Run@'olfsson for major performance improvements in C++ formatted I/O and
large file support in C++ filebuf.

@item
Chip Salzenberg for libstdc++ patches and improvements to locales, traits,
Makefiles, libio, libtool hackery, and ``long long'' support.

@item
Juha Sarlin for improvements to the H8 code generator.

@item
Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300.

@item
Roger Sayle for improvements to constant folding and GCC's RTL optimizers
as well as for fixing numerous bugs.

@item
Bradley Schatz for his work on the GCJ FAQ@.

@item
Peter Schauer wrote the code to allow debugging to work on the Alpha.

@item
William Schelter did most of the work on the Intel 80386 support.

@item
Tobias Schl@"uter for work on GNU Fortran.

@item
Bernd Schmidt for various code generation improvements and major
work in the reload pass, serving as release manager for
GCC 2.95.3, and work on the Blackfin and C6X ports.

@item
Peter Schmid for constant testing of libstdc++---especially application
testing, going above and beyond what was requested for the release
criteria---and libstdc++ header file tweaks.

@item
Jason Schroeder for jcf-dump patches.

@item
Andreas Schwab for his work on the m68k port.

@item
Lars Segerlund for work on GNU Fortran.

@item
Dodji Seketeli for numerous C++ bug fixes and debug info improvements.

@item
Tim Shen for major work on @code{<regex>}.

@item
Joel Sherrill for his direction via the steering committee, RTEMS
contributions and RTEMS testing.

@item
Nathan Sidwell for many C++ fixes/improvements.

@item
Jeffrey Siegal for helping RMS with the original design of GCC, some
code which handles the parse tree and RTL data structures, constant
folding and help with the original VAX & m68k ports.

@item
Kenny Simpson for prompting libstdc++ fixes due to defect reports from
the LWG (thereby keeping GCC in line with updates from the ISO)@.

@item
Franz Sirl for his ongoing work with making the PPC port stable
for GNU/Linux.

@item
Andrey Slepuhin for assorted AIX hacking.

@item
Trevor Smigiel for contributing the SPU port.

@item
Christopher Smith did the port for Convex machines.

@item
Danny Smith for his major efforts on the Mingw (and Cygwin) ports.
Retired from GCC maintainership August 2010, having mentored two 
new maintainers into the role.

@item
Randy Smith finished the Sun FPA support.

@item
Ed Smith-Rowland for his continuous work on libstdc++-v3, special functions,
@code{<random>}, and various improvements to C++11 features.

@item
Scott Snyder for queue, iterator, istream, and string fixes and libstdc++
testsuite entries.  Also for providing the patch to G77 to add
rudimentary support for @code{INTEGER*1}, @code{INTEGER*2}, and
@code{LOGICAL*1}.

@item
Zdenek Sojka for running automated regression testing of GCC and reporting
numerous bugs.

@item
Jayant Sonar for contributing the CR16 port.

@item
Brad Spencer for contributions to the GLIBCPP_FORCE_NEW technique.

@item
Richard Stallman, for writing the original GCC and launching the GNU project.

@item
Jan Stein of the Chalmers Computer Society provided support for
Genix, as well as part of the 32000 machine description.

@item
Nigel Stephens for various mips16 related fixes/improvements.

@item
Jonathan Stone wrote the machine description for the Pyramid computer.

@item
Graham Stott for various infrastructure improvements.

@item
John Stracke for his Java HTTP protocol fixes.

@item
Mike Stump for his Elxsi port, G++ contributions over the years and more
recently his vxworks contributions

@item
Jeff Sturm for Java porting help, bug fixes, and encouragement.

@item
Shigeya Suzuki for this fixes for the bsdi platforms.

@item
Ian Lance Taylor for the Go frontend, the initial mips16 and mips64
support, general configury hacking, fixincludes, etc.

@item
Holger Teutsch provided the support for the Clipper CPU@.

@item
Gary Thomas for his ongoing work to make the PPC work for GNU/Linux.

@item
Paul Thomas for contributions to GNU Fortran.

@item
Philipp Thomas for random bug fixes throughout the compiler

@item
Jason Thorpe for thread support in libstdc++ on NetBSD@.

@item
Kresten Krab Thorup wrote the run time support for the Objective-C
language and the fantastic Java bytecode interpreter.

@item
Michael Tiemann for random bug fixes, the first instruction scheduler,
initial C++ support, function integration, NS32k, SPARC and M88k
machine description work, delay slot scheduling.

@item
Andreas Tobler for his work porting libgcj to Darwin.

@item
Teemu Torma for thread safe exception handling support.

@item
Leonard Tower wrote parts of the parser, RTL generator, and RTL
definitions, and of the VAX machine description.

@item
Daniel Towner and Hariharan Sandanagobalane contributed and
maintain the picoChip port.

@item
Tom Tromey for internationalization support and for his many Java
contributions and libgcj maintainership.

@item
Lassi Tuura for improvements to config.guess to determine HP processor
types.

@item
Petter Urkedal for libstdc++ CXXFLAGS, math, and algorithms fixes.

@item
Andy Vaught for the design and initial implementation of the GNU Fortran
front end.

@item
Brent Verner for work with the libstdc++ cshadow files and their
associated configure steps.

@item
Todd Vierling for contributions for NetBSD ports.

@item
Andrew Waterman for contributing the RISC-V port, as well as maintaining it.

@item
Jonathan Wakely for contributing libstdc++ Doxygen notes and XHTML
guidance.

@item
Dean Wakerley for converting the install documentation from HTML to texinfo
in time for GCC 3.0.

@item
Krister Walfridsson for random bug fixes.

@item
Feng Wang for contributions to GNU Fortran.

@item
Stephen M. Webb for time and effort on making libstdc++ shadow files
work with the tricky Solaris 8+ headers, and for pushing the build-time
header tree. Also, for starting and driving the @code{<regex>} effort.

@item
John Wehle for various improvements for the x86 code generator,
related infrastructure improvements to help x86 code generation,
value range propagation and other work, WE32k port.

@item
Ulrich Weigand for work on the s390 port.

@item
Janus Weil for contributions to GNU Fortran.

@item
Zack Weinberg for major work on cpplib and various other bug fixes.

@item
Matt Welsh for help with Linux Threads support in GCJ@.

@item
Urban Widmark for help fixing java.io.

@item
Mark Wielaard for new Java library code and his work integrating with
Classpath.

@item
Dale Wiles helped port GCC to the Tahoe.

@item
Bob Wilson from Tensilica, Inc.@: for the Xtensa port.

@item
Jim Wilson for his direction via the steering committee, tackling hard
problems in various places that nobody else wanted to work on, strength
reduction and other loop optimizations.

@item
Paul Woegerer and Tal Agmon for the CRX port.

@item
Carlo Wood for various fixes.

@item
Tom Wood for work on the m88k port.

@item
Chung-Ju Wu for his work on the Andes NDS32 port.

@item
Canqun Yang for work on GNU Fortran.

@item
Masanobu Yuhara of Fujitsu Laboratories implemented the machine
description for the Tron architecture (specifically, the Gmicro).

@item
Kevin Zachmann helped port GCC to the Tahoe.

@item
Ayal Zaks for Swing Modulo Scheduling (SMS).

@item
Xiaoqiang Zhang for work on GNU Fortran.

@item
Gilles Zunino for help porting Java to Irix.

@end itemize

The following people are recognized for their contributions to GNAT,
the Ada front end of GCC:
@itemize @bullet
@item
Bernard Banner

@item
Romain Berrendonner

@item
Geert Bosch

@item
Emmanuel Briot

@item
Joel Brobecker

@item
Ben Brosgol

@item
Vincent Celier

@item
Arnaud Charlet

@item
Chien Chieng

@item
Cyrille Comar

@item
Cyrille Crozes

@item
Robert Dewar

@item
Gary Dismukes

@item
Robert Duff

@item
Ed Falis

@item
Ramon Fernandez

@item
Sam Figueroa

@item
Vasiliy Fofanov

@item
Michael Friess

@item
Franco Gasperoni

@item
Ted Giering

@item
Matthew Gingell

@item
Laurent Guerby

@item
Jerome Guitton

@item
Olivier Hainque

@item
Jerome Hugues

@item
Hristian Kirtchev

@item
Jerome Lambourg

@item
Bruno Leclerc

@item
Albert Lee

@item
Sean McNeil

@item
Javier Miranda

@item
Laurent Nana

@item
Pascal Obry

@item
Dong-Ik Oh

@item
Laurent Pautet

@item
Brett Porter

@item
Thomas Quinot

@item
Nicolas Roche

@item
Pat Rogers

@item
Jose Ruiz

@item
Douglas Rupp

@item
Sergey Rybin

@item
Gail Schenker

@item
Ed Schonberg

@item
Nicolas Setton

@item
Samuel Tardieu

@end itemize


The following people are recognized for their contributions of new
features, bug reports, testing and integration of classpath/libgcj for
GCC version 4.1:
@itemize @bullet
@item
Lillian Angel for @code{JTree} implementation and lots Free Swing
additions and bug fixes.

@item
Wolfgang Baer for @code{GapContent} bug fixes.

@item
Anthony Balkissoon for @code{JList}, Free Swing 1.5 updates and mouse event
fixes, lots of Free Swing work including @code{JTable} editing.

@item
Stuart Ballard for RMI constant fixes.

@item
Goffredo Baroncelli for @code{HTTPURLConnection} fixes.

@item
Gary Benson for @code{MessageFormat} fixes.

@item
Daniel Bonniot for @code{Serialization} fixes.

@item
Chris Burdess for lots of gnu.xml and http protocol fixes, @code{StAX}
and @code{DOM xml:id} support.

@item
Ka-Hing Cheung for @code{TreePath} and @code{TreeSelection} fixes.

@item
Archie Cobbs for build fixes, VM interface updates,
@code{URLClassLoader} updates.

@item
Kelley Cook for build fixes.

@item
Martin Cordova for Suggestions for better @code{SocketTimeoutException}.

@item
David Daney for @code{BitSet} bug fixes, @code{HttpURLConnection}
rewrite and improvements.

@item
Thomas Fitzsimmons for lots of upgrades to the gtk+ AWT and Cairo 2D
support. Lots of imageio framework additions, lots of AWT and Free
Swing bug fixes.

@item
Jeroen Frijters for @code{ClassLoader} and nio cleanups, serialization fixes,
better @code{Proxy} support, bug fixes and IKVM integration.

@item
Santiago Gala for @code{AccessControlContext} fixes.

@item
Nicolas Geoffray for @code{VMClassLoader} and @code{AccessController}
improvements.

@item
David Gilbert for @code{basic} and @code{metal} icon and plaf support
and lots of documenting, Lots of Free Swing and metal theme
additions. @code{MetalIconFactory} implementation.

@item
Anthony Green for @code{MIDI} framework, @code{ALSA} and @code{DSSI}
providers.

@item
Andrew Haley for @code{Serialization} and @code{URLClassLoader} fixes,
gcj build speedups.

@item
Kim Ho for @code{JFileChooser} implementation.

@item
Andrew John Hughes for @code{Locale} and net fixes, URI RFC2986
updates, @code{Serialization} fixes, @code{Properties} XML support and
generic branch work, VMIntegration guide update.

@item
Bastiaan Huisman for @code{TimeZone} bug fixing.

@item
Andreas Jaeger for mprec updates.

@item
Paul Jenner for better @option{-Werror} support.

@item
Ito Kazumitsu for @code{NetworkInterface} implementation and updates.

@item
Roman Kennke for @code{BoxLayout}, @code{GrayFilter} and
@code{SplitPane}, plus bug fixes all over. Lots of Free Swing work
including styled text.

@item
Simon Kitching for @code{String} cleanups and optimization suggestions.

@item
Michael Koch for configuration fixes, @code{Locale} updates, bug and
build fixes.

@item
Guilhem Lavaux for configuration, thread and channel fixes and Kaffe
integration. JCL native @code{Pointer} updates. Logger bug fixes.

@item
David Lichteblau for JCL support library global/local reference
cleanups.

@item
Aaron Luchko for JDWP updates and documentation fixes.

@item
Ziga Mahkovec for @code{Graphics2D} upgraded to Cairo 0.5 and new regex
features.

@item
Sven de Marothy for BMP imageio support, CSS and @code{TextLayout}
fixes. @code{GtkImage} rewrite, 2D, awt, free swing and date/time fixes and
implementing the Qt4 peers.

@item
Casey Marshall for crypto algorithm fixes, @code{FileChannel} lock,
@code{SystemLogger} and @code{FileHandler} rotate implementations, NIO
@code{FileChannel.map} support, security and policy updates.

@item
Bryce McKinlay for RMI work.

@item
Audrius Meskauskas for lots of Free Corba, RMI and HTML work plus
testing and documenting.

@item
Kalle Olavi Niemitalo for build fixes.

@item
Rainer Orth for build fixes.

@item
Andrew Overholt for @code{File} locking fixes.

@item
Ingo Proetel for @code{Image}, @code{Logger} and @code{URLClassLoader}
updates.

@item
Olga Rodimina for @code{MenuSelectionManager} implementation.

@item
Jan Roehrich for @code{BasicTreeUI} and @code{JTree} fixes.

@item
Julian Scheid for documentation updates and gjdoc support.

@item
Christian Schlichtherle for zip fixes and cleanups.

@item
Robert Schuster for documentation updates and beans fixes,
@code{TreeNode} enumerations and @code{ActionCommand} and various
fixes, XML and URL, AWT and Free Swing bug fixes.

@item
Keith Seitz for lots of JDWP work.

@item
Christian Thalinger for 64-bit cleanups, Configuration and VM
interface fixes and @code{CACAO} integration, @code{fdlibm} updates.

@item
Gael Thomas for @code{VMClassLoader} boot packages support suggestions.

@item
Andreas Tobler for Darwin and Solaris testing and fixing, @code{Qt4}
support for Darwin/OS X, @code{Graphics2D} support, @code{gtk+}
updates.

@item
Dalibor Topic for better @code{DEBUG} support, build cleanups and
Kaffe integration. @code{Qt4} build infrastructure, @code{SHA1PRNG}
and @code{GdkPixbugDecoder} updates.

@item
Tom Tromey for Eclipse integration, generics work, lots of bug fixes
and gcj integration including coordinating The Big Merge.

@item
Mark Wielaard for bug fixes, packaging and release management,
@code{Clipboard} implementation, system call interrupts and network
timeouts and @code{GdkPixpufDecoder} fixes.

@end itemize


In addition to the above, all of which also contributed time and energy in
testing GCC, we would like to thank the following for their contributions
to testing:

@itemize @bullet
@item
Michael Abd-El-Malek

@item
Thomas Arend

@item
Bonzo Armstrong

@item
Steven Ashe

@item
Chris Baldwin

@item
David Billinghurst

@item
Jim Blandy

@item
Stephane Bortzmeyer

@item
Horst von Brand

@item
Frank Braun

@item
Rodney Brown

@item
Sidney Cadot

@item
Bradford Castalia

@item
Robert Clark

@item
Jonathan Corbet

@item
Ralph Doncaster

@item
Richard Emberson

@item
Levente Farkas

@item
Graham Fawcett

@item
Mark Fernyhough

@item
Robert A. French

@item
J@"orgen Freyh

@item
Mark K. Gardner

@item
Charles-Antoine Gauthier

@item
Yung Shing Gene

@item
David Gilbert

@item
Simon Gornall

@item
Fred Gray

@item
John Griffin

@item
Patrik Hagglund

@item
Phil Hargett

@item
Amancio Hasty

@item
Takafumi Hayashi

@item
Bryan W. Headley

@item
Kevin B. Hendricks

@item
Joep Jansen

@item
Christian Joensson

@item
Michel Kern

@item
David Kidd

@item
Tobias Kuipers

@item
Anand Krishnaswamy

@item
A. O. V. Le Blanc

@item
llewelly

@item
Damon Love

@item
Brad Lucier

@item
Matthias Klose

@item
Martin Knoblauch

@item
Rick Lutowski

@item
Jesse Macnish

@item
Stefan Morrell

@item
Anon A. Mous

@item
Matthias Mueller

@item
Pekka Nikander

@item
Rick Niles

@item
Jon Olson

@item
Magnus Persson

@item
Chris Pollard

@item
Richard Polton

@item
Derk Reefman

@item
David Rees

@item
Paul Reilly

@item
Tom Reilly

@item
Torsten Rueger

@item
Danny Sadinoff

@item
Marc Schifer

@item
Erik Schnetter

@item
Wayne K. Schroll

@item
David Schuler

@item
Vin Shelton

@item
Tim Souder

@item
Adam Sulmicki

@item
Bill Thorson

@item
George Talbot

@item
Pedro A. M. Vazquez

@item
Gregory Warnes

@item
Ian Watson

@item
David E. Young

@item
And many others
@end itemize

And finally we'd like to thank everyone who uses the compiler, provides
feedback and generally reminds us why we're doing this work in the first
place.
