@c Copyright (C) 1988-2026 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{jlaw@@ventanamicro.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
Richard Biener for his ongoing middle-end contributions and bug fixes
and for release management.

@item
David Binderman for testing GCC trunk against Fedora Rawhide
and csmith.

@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
Iain Buclaw for the D frontend.

@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{https://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
Robert J. Dubner for his work on the COBOL front end, mating the
parser output to the GENERIC tree.

@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
Oleg Endo for continued development and maintenance of the SuperH back-end.

@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
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
Kazumoto Kojima for continued development and maintenance of the SuperH back-end.

@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
Martin Liska for his work on identical code folding, the sanitizers,
HSA, general bug fixing and for running automated regression testing of GCC
and reporting numerous bugs.

@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
James K. Lowden for his work on the COBOL front end, mainly the parser
and CDF.

@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, design and
implementation of the automaton based instruction scheduler and
design and implementation of the integrated and local register allocators.

@item
David Malcolm for his work on improving GCC diagnostics, JIT, self-tests
and unit testing.

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

@item
Jose E. Marchesi for contributing the eBPF backend and his ongoing
work maintaining it.

@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
Dhruv Matani for work on libstdc++ allocators.

@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.cc 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
Vegard Nossum for running automated regression testing of GCC and reporting
numerous bugs.

@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
Patrick Palka for contributions to the C++ library and front end.

@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
Marek Polacek for his work on the C front end, the sanitizers and general
bug fixing.

@item
Andrew Pinski for processing bug reports by the dozen, maintenance of the
Objective-C runtime libraries, and many scalar optimizations.

@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
John Regehr for running automated regression testing of GCC and reporting
numerous bugs.

@item
Volker Reichelt for running automated regression testing of GCC and reporting
numerous bugs and 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
Arseny Solokha 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
Gerhard Steinmetz for running automated regression testing of GCC and reporting
numerous bugs.

@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
Zhendong Su for running automated regression testing of GCC and reporting
numerous bugs.

@item
Chengnian Sun for running automated regression testing of GCC and reporting
numerous bugs.

@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 to and maintaining libstdc++.

@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
Qirun Zhang for running automated regression testing of GCC and reporting
numerous bugs.

@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 / macOS, @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.
