<html lang="en">
<head>
<title>Contributors - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="prev" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" title="GNU Free Documentation License">
<link rel="next" href="Option-Index.html#Option-Index" title="Option Index">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Contributors"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Option-Index.html#Option-Index">Option Index</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr>
</div>

<h2 class="unnumbered">Contributors to GCC</h2>

<p><a name="index-contributors-3268"></a>
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
<a href="mailto:law@redhat.com">law@redhat.com</a> or <a href="mailto:gerald@pfeifer.com">gerald@pfeifer.com</a> if you have been left
out or some of your contributions are not listed.  Please keep this list in
alphabetical order.

     <ul>
<li>Analog Devices helped implement the support for complex data types
and iterators.

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

     <li>James van Artsdalen wrote the code that makes efficient use of
the Intel 80387 register stack.

     <li>Abramo and Roberto Bagnara for the SysV68 Motorola 3300 Delta Series
port.

     <li>Alasdair Baird for various bug fixes.

     <li>Giovanni Bajo for analyzing lots of complicated C++ problem reports.

     <li>Peter Barada for his work to improve code generation for new
ColdFire cores.

     <li>Gerald Baumgartner added the signature extension to the C++ front end.

     <li>Godmar Back for his Java improvements and encouragement.

     <li>Scott Bambrough for help porting the Java compiler.

     <li>Wolfgang Bangerth for processing tons of bug reports.

     <li>Jon Beniston for his Microsoft Windows port of Java and port to Lattice Mico32.

     <li>Daniel Berlin for better DWARF2 support, faster/better optimizations,
improved alias analysis, plus migrating GCC to Bugzilla.

     <li>Geoff Berry for his Java object serialization work and various patches.

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

     <li>Eric Blake for helping to make GCJ and libgcj conform to the
specifications.

     <li>Janne Blomqvist for contributions to GNU Fortran.

     <li>Segher Boessenkool for various fixes.

     <li>Hans-J. Boehm for his <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">garbage collector</a>, IA-64 libffi port, and other Java work.

     <li>Neil Booth for work on cpplib, lang hooks, debug hooks and other
miscellaneous clean-ups.

     <li>Steven Bosscher for integrating the GNU Fortran front end into GCC and for
contributing to the tree-ssa branch.

     <li>Eric Botcazou for fixing middle- and backend bugs left and right.

     <li>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.

     <li>Devon Bowen helped port GCC to the Tahoe.

     <li>Don Bowman for mips-vxworks contributions.

     <li>Dave Brolley for work on cpplib and Chill.

     <li>Paul Brook for work on the ARM architecture and maintaining GNU Fortran.

     <li>Robert Brown implemented the support for Encore 32000 systems.

     <li>Christian Bruel for improvements to local store elimination.

     <li>Herman A.J. ten Brugge for various fixes.

     <li>Joerg Brunsmann for Java compiler hacking and help with the GCJ FAQ.

     <li>Joe Buck for his direction via the steering committee.

     <li>Craig Burley for leadership of the G77 Fortran effort.

     <li>Stephan Buys for contributing Doxygen notes for libstdc++.

     <li>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.

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

     <li>Stephane Carrez for 68HC11 and 68HC12 ports.

     <li>Steve Chamberlain for support for the Renesas SH and H8 processors
and the PicoJava processor, and for GCJ config fixes.

     <li>Glenn Chambers for help with the GCJ FAQ.

     <li>John-Marc Chandonia for various libgcj patches.

     <li>Denis Chertykov for contributing and maintaining the AVR port, the first GCC port
for an 8-bit architecture.

     <li>Scott Christley for his Objective-C contributions.

     <li>Eric Christopher for his Java porting help and clean-ups.

     <li>Branko Cibej for more warning contributions.

     <li>The <a href="http://www.gnu.org/software/classpath/">GNU Classpath project</a>
for all of their merged runtime code.

     <li>Nick Clifton for arm, mcore, fr30, v850, m32r, rx work,
<samp><span class="option">--help</span></samp>, and other random hacking.

     <li>Michael Cook for libstdc++ cleanup patches to reduce warnings.

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

     <li>Ralf Corsepius for SH testing and minor bug fixing.

     <li>Stan Cox for care and feeding of the x86 port and lots of behind
the scenes hacking.

     <li>Alex Crain provided changes for the 3b1.

     <li>Ian Dall for major improvements to the NS32k port.

     <li>Paul Dale for his work to add uClinux platform support to the
m68k backend.

     <li>Dario Dariol contributed the four varieties of sample programs
that print a copy of their source.

     <li>Russell Davidson for fstream and stringstream fixes in libstdc++.

     <li>Bud Davis for work on the G77 and GNU Fortran compilers.

     <li>Mo DeJong for GCJ and libgcj bug fixes.

     <li>DJ Delorie for the DJGPP port, build and libiberty maintenance,
various bug fixes, and the M32C and MeP ports.

     <li>Arnaud Desitter for helping to debug GNU Fortran.

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

     <li>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&lt;&gt;</code>, sanity checking and disbursement, configuration
architecture, libio maintenance, and early math work.

     <li>Zdenek Dvorak for a new loop unroller and various fixes.

     <li>Richard Earnshaw for his ongoing work with the ARM.

     <li>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.

     <li>Kevin Ediger for the floating point formatting of num_put::do_put in
libstdc++.

     <li>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.

     <li>Paul Eggert for random hacking all over GCC.

     <li>Mark Elbrecht for various DJGPP improvements, and for libstdc++
configuration support for locales and fstream-related fixes.

     <li>Vadim Egorov for libstdc++ fixes in strings, streambufs, and iostreams.

     <li>Christian Ehrhardt for dealing with bug reports.

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

     <li>Revital Eres for work on the PowerPC 750CL port.

     <li>Marc Espie for OpenBSD support.

     <li>Doug Evans for much of the global optimization framework, arc, m32r,
and SPARC work.

     <li>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.

     <li>Fred Fish for BeOS support and Ada fixes.

     <li>Ivan Fontes Garcia for the Portuguese translation of the GCJ FAQ.

     <li>Peter Gerwinski for various bug fixes and the Pascal front end.

     <li>Kaveh R. Ghazi for his direction via the steering committee, amazing
work to make &lsquo;<samp><span class="samp">-W -Wall -W* -Werror</span></samp>&rsquo; useful, and continuously
testing GCC on a plethora of platforms.  Kaveh extends his gratitude to
the <a href="http://www.caip.rutgers.edu">CAIP Center</a> at Rutgers
University for providing him with computing resources to work on Free
Software since the late 1980s.

     <li>John Gilmore for a donation to the FSF earmarked improving GNU Java.

     <li>Judy Goldberg for c++ contributions.

     <li>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.

     <li>Anthony Green for his <samp><span class="option">-Os</span></samp> contributions, the moxie port, and
Java front end work.

     <li>Stu Grossman for gdb hacking, allowing GCJ developers to debug Java code.

     <li>Michael K. Gschwind contributed the port to the PDP-11.

     <li>Richard Guenther for his ongoing middle-end contributions and bug fixes
and for release management.

     <li>Ron Guilmette implemented the <samp><span class="command">protoize</span></samp> and <samp><span class="command">unprotoize</span></samp>
tools, the support for Dwarf 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.

     <li>Mostafa Hagog for Swing Modulo Scheduling (SMS) and post reload GCSE.

     <li>Bruno Haible for improvements in the runtime overhead for EH, new
warnings and assorted bug fixes.

     <li>Andrew Haley for his amazing Java compiler and library efforts.

     <li>Chris Hanson assisted in making GCC work on HP-UX for the 9000 series 300.

     <li>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.

     <li>Dara Hazeghi for wading through myriads of target-specific bug reports.

     <li>Kate Hedstrom for staking the G77 folks with an initial testsuite.

     <li>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.

     <li>Aldy Hernandez for working on the PowerPC port, SIMD support, and
various fixes.

     <li>Nobuyuki Hikichi of Software Research Associates, Tokyo, contributed
the support for the Sony NEWS machine.

     <li>Kazu Hirata for caring and feeding the Renesas H8/300 port and various fixes.

     <li>Katherine Holcomb for work on GNU Fortran.

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

     <li>Steve Holmgren for MachTen patches.

     <li>Jan Hubicka for his x86 port improvements.

     <li>Falk Hueffner for working on C and optimization bug reports.

     <li>Bernardo Innocenti for his m68k work, including merging of
ColdFire improvements and uClinux support.

     <li>Christian Iseli for various bug fixes.

     <li>Kamil Iskra for general m68k hacking.

     <li>Lee Iverson for random fixes and MIPS testing.

     <li>Andreas Jaeger for testing and benchmarking of GCC and various bug fixes.

     <li>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.

     <li>Janis Johnson for ia64 testing and fixes, her quality improvement
sidetracks, and web page maintenance.

     <li>Kean Johnston for SCO OpenServer support and various fixes.

     <li>Tim Josling for the sample language treelang based originally on Richard
Kenner's &ldquo;toy&rdquo; language.

     <li>Nicolai Josuttis for additional libstdc++ documentation.

     <li>Klaus Kaempf for his ongoing work to make alpha-vms a viable target.

     <li>Steven G. Kargl for work on GNU Fortran.

     <li>David Kashtan of SRI adapted GCC to VMS.

     <li>Ryszard Kabatek for many, many libstdc++ bug fixes and optimizations of
strings, especially member functions, and for auto_ptr fixes.

     <li>Geoffrey Keating for his ongoing work to make the PPC work for GNU/Linux
and his automatic regression tester.

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

     <li>Oliver M. Kellogg of Deutsche Aerospace contributed the port to the
MIL-STD-1750A.

     <li>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.

     <li>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.

     <li>Robin Kirkham for cpu32 support.

     <li>Mark Klein for PA improvements.

     <li>Thomas Koenig for various bug fixes.

     <li>Bruce Korb for the new and improved fixincludes code.

     <li>Benjamin Kosnik for his G++ work and for leading the libstdc++-v3 effort.

     <li>Charles LaBrec contributed the support for the Integrated Solutions
68020 system.

     <li>Asher Langton and Mike Kumbera for contributing Cray pointer support
to GNU Fortran, and for other GNU Fortran improvements.

     <li>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.

     <li>Marc Lehmann for his direction via the steering committee and helping
with analysis and improvements of x86 performance.

     <li>Victor Leikehman for work on GNU Fortran.

     <li>Ted Lemon wrote parts of the RTL reader and printer.

     <li>Kriang Lerdsuwanakij for C++ improvements including template as template
parameter support, and many C++ fixes.

     <li>Warren Levy for tremendous work on libgcj (Java Runtime Library) and
random work on the Java front end.

     <li>Alain Lichnewsky ported GCC to the MIPS CPU.

     <li>Oskar Liljeblad for hacking on AWT and his many Java bug reports and
patches.

     <li>Robert Lipe for OpenServer support, new testsuites, testing, etc.

     <li>Chen Liqin for various S+core related fixes/improvement, and for
maintaining the S+core port.

     <li>Weiwen Liu for testing and various bug fixes.

     <li>Manuel L&oacute;pez-Ib&aacute;&ntilde;ez for improving <samp><span class="option">-Wconversion</span></samp> and
many other diagnostics fixes and improvements.

     <li>Dave Love for his ongoing work with the Fortran front end and
runtime libraries.

     <li>Martin von L&ouml;wis for internal consistency checking infrastructure,
various C++ improvements including namespace support, and tons of
assistance with libstdc++/compiler merges.

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

     <li>Greg McGary for random fixes and (someday) bounded pointers.

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

     <li>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.

     <li>Bob Manson for his behind the scenes work on dejagnu.

     <li>Philip Martin for lots of libstdc++ string and vector iterator fixes and
improvements, and string clean up and testsuites.

     <li>All of the Mauve project
<a href="http://sourceware.org/cgi-bin/cvsweb.cgi/~checkout~/mauve/THANKS?rev=1.2&amp;cvsroot=mauve&amp;only_with_tag=HEAD">contributors</a>,
for Java test code.

     <li>Bryce McKinlay for numerous GCJ and libgcj fixes and improvements.

     <li>Adam Megacz for his work on the Microsoft Windows port of GCJ.

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

     <li>Jason Merrill for his direction via the steering committee and leading
the G++ effort.

     <li>Martin Michlmayr for testing GCC on several architectures using the
entire Debian archive.

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

     <li>Gary Miller ported GCC to Charles River Data Systems machines.

     <li>Alfred Minarik for libstdc++ string and ios bug fixes, and turning the
entire libstdc++ testsuite namespace-compatible.

     <li>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</code> support, and serving as release manager for GCC 3.x.

     <li>Alan Modra for various GNU/Linux bits and testing.

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

     <li>Jason Molenda for major help in the care and feeding of all the services
on the gcc.gnu.org (formerly egcs.cygnus.com) machine&mdash;mail, web
services, ftp services, etc etc.  Doing all this work on scrap paper and
the backs of envelopes would have been<small class="dots">...</small> difficult.

     <li>Catherine Moore for fixing various ugly problems we have sent her
way, including the haifa bug which was killing the Alpha &amp; PowerPC
Linux kernels.

     <li>Mike Moreton for his various Java patches.

     <li>David Mosberger-Tang for various Alpha improvements, and for the initial
IA-64 port.

     <li>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.

     <li>Bill Moyer for his behind the scenes work on various issues.

     <li>Philippe De Muyter for his work on the m68k port.

     <li>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.

     <li>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.

     <li>Felix Natter for documentation on porting libstdc++.

     <li>Nathanael Nerode for cleaning up the configuration/build process.

     <li>NeXT, Inc. donated the front end that supports the Objective-C
language.

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

     <li>Geoff Noer for his work on getting cygwin native builds working.

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

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

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

     <li>Stefan Olsson for work on mt_alloc.

     <li>Melissa O'Neill for various NeXT fixes.

     <li>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.

     <li>Hartmut Penner for work on the s390 port.

     <li>Paul Petersen wrote the machine description for the Alliant FX/8.

     <li>Alexandre Petit-Bianco for implementing much of the Java compiler and
continued Java maintainership.

     <li>Matthias Pfaller for major improvements to the NS32k port.

     <li>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.

     <li>Andrew Pinski for processing bug reports by the dozen.

     <li>Ovidiu Predescu for his work on the Objective-C front end and runtime
libraries.

     <li>Jerry Quinn for major performance improvements in C++ formatted I/O.

     <li>Ken Raeburn for various improvements to checker, MIPS ports and various
cleanups in the compiler.

     <li>Rolf W. Rasmussen for hacking on AWT.

     <li>David Reese of Sun Microsystems contributed to the Solaris on PowerPC
port.

     <li>Volker Reichelt for keeping up with the problem reports.

     <li>Joern Rennecke for maintaining the sh port, loop, regmove &amp; reload
hacking.

     <li>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.

     <li>Craig Rodrigues for processing tons of bug reports.

     <li>Ola R&ouml;nnerup for work on mt_alloc.

     <li>Gavin Romig-Koch for lots of behind the scenes MIPS work.

     <li>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 <samp><span class="file">g77-0.5.16/f/DOC</span></samp> file.

     <li>Ken Rose for fixes to GCC's delay slot filling code.

     <li>Paul Rubin wrote most of the preprocessor.

     <li>P&eacute;tur Run&oacute;lfsson for major performance improvements in C++ formatted I/O and
large file support in C++ filebuf.

     <li>Chip Salzenberg for libstdc++ patches and improvements to locales, traits,
Makefiles, libio, libtool hackery, and &ldquo;long long&rdquo; support.

     <li>Juha Sarlin for improvements to the H8 code generator.

     <li>Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300.

     <li>Roger Sayle for improvements to constant folding and GCC's RTL optimizers
as well as for fixing numerous bugs.

     <li>Bradley Schatz for his work on the GCJ FAQ.

     <li>Peter Schauer wrote the code to allow debugging to work on the Alpha.

     <li>William Schelter did most of the work on the Intel 80386 support.

     <li>Tobias Schl&uuml;ter for work on GNU Fortran.

     <li>Bernd Schmidt for various code generation improvements and major
work in the reload pass as well a serving as release manager for
GCC 2.95.3.

     <li>Peter Schmid for constant testing of libstdc++&mdash;especially application
testing, going above and beyond what was requested for the release
criteria&mdash;and libstdc++ header file tweaks.

     <li>Jason Schroeder for jcf-dump patches.

     <li>Andreas Schwab for his work on the m68k port.

     <li>Lars Segerlund for work on GNU Fortran.

     <li>Joel Sherrill for his direction via the steering committee, RTEMS
contributions and RTEMS testing.

     <li>Nathan Sidwell for many C++ fixes/improvements.

     <li>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 &amp; m68k ports.

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

     <li>Franz Sirl for his ongoing work with making the PPC port stable
for GNU/Linux.

     <li>Andrey Slepuhin for assorted AIX hacking.

     <li>Trevor Smigiel for contributing the SPU port.

     <li>Christopher Smith did the port for Convex machines.

     <li>Danny Smith for his major efforts on the Mingw (and Cygwin) ports.

     <li>Randy Smith finished the Sun FPA support.

     <li>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>, <code>INTEGER*2</code>, and
<code>LOGICAL*1</code>.

     <li>Brad Spencer for contributions to the GLIBCPP_FORCE_NEW technique.

     <li>Richard Stallman, for writing the original GCC and launching the GNU project.

     <li>Jan Stein of the Chalmers Computer Society provided support for
Genix, as well as part of the 32000 machine description.

     <li>Nigel Stephens for various mips16 related fixes/improvements.

     <li>Jonathan Stone wrote the machine description for the Pyramid computer.

     <li>Graham Stott for various infrastructure improvements.

     <li>John Stracke for his Java HTTP protocol fixes.

     <li>Mike Stump for his Elxsi port, G++ contributions over the years and more
recently his vxworks contributions

     <li>Jeff Sturm for Java porting help, bug fixes, and encouragement.

     <li>Shigeya Suzuki for this fixes for the bsdi platforms.

     <li>Ian Lance Taylor for his mips16 work, general configury hacking,
fixincludes, etc.

     <li>Holger Teutsch provided the support for the Clipper CPU.

     <li>Gary Thomas for his ongoing work to make the PPC work for GNU/Linux.

     <li>Philipp Thomas for random bug fixes throughout the compiler

     <li>Jason Thorpe for thread support in libstdc++ on NetBSD.

     <li>Kresten Krab Thorup wrote the run time support for the Objective-C
language and the fantastic Java bytecode interpreter.

     <li>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.

     <li>Andreas Tobler for his work porting libgcj to Darwin.

     <li>Teemu Torma for thread safe exception handling support.

     <li>Leonard Tower wrote parts of the parser, RTL generator, and RTL
definitions, and of the VAX machine description.

     <li>Daniel Towner and Hariharan Sandanagobalane contributed and
maintain the picoChip port.

     <li>Tom Tromey for internationalization support and for his many Java
contributions and libgcj maintainership.

     <li>Lassi Tuura for improvements to config.guess to determine HP processor
types.

     <li>Petter Urkedal for libstdc++ CXXFLAGS, math, and algorithms fixes.

     <li>Andy Vaught for the design and initial implementation of the GNU Fortran
front end.

     <li>Brent Verner for work with the libstdc++ cshadow files and their
associated configure steps.

     <li>Todd Vierling for contributions for NetBSD ports.

     <li>Jonathan Wakely for contributing libstdc++ Doxygen notes and XHTML
guidance.

     <li>Dean Wakerley for converting the install documentation from HTML to texinfo
in time for GCC 3.0.

     <li>Krister Walfridsson for random bug fixes.

     <li>Feng Wang for contributions to GNU Fortran.

     <li>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.

     <li>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.

     <li>Ulrich Weigand for work on the s390 port.

     <li>Zack Weinberg for major work on cpplib and various other bug fixes.

     <li>Matt Welsh for help with Linux Threads support in GCJ.

     <li>Urban Widmark for help fixing java.io.

     <li>Mark Wielaard for new Java library code and his work integrating with
Classpath.

     <li>Dale Wiles helped port GCC to the Tahoe.

     <li>Bob Wilson from Tensilica, Inc. for the Xtensa port.

     <li>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.

     <li>Paul Woegerer and Tal Agmon for the CRX port.

     <li>Carlo Wood for various fixes.

     <li>Tom Wood for work on the m88k port.

     <li>Canqun Yang for work on GNU Fortran.

     <li>Masanobu Yuhara of Fujitsu Laboratories implemented the machine
description for the Tron architecture (specifically, the Gmicro).

     <li>Kevin Zachmann helped port GCC to the Tahoe.

     <li>Ayal Zaks for Swing Modulo Scheduling (SMS).

     <li>Xiaoqiang Zhang for work on GNU Fortran.

     <li>Gilles Zunino for help porting Java to Irix.

 </ul>

 <p>The following people are recognized for their contributions to GNAT,
the Ada front end of GCC:
     <ul>
<li>Bernard Banner

     <li>Romain Berrendonner

     <li>Geert Bosch

     <li>Emmanuel Briot

     <li>Joel Brobecker

     <li>Ben Brosgol

     <li>Vincent Celier

     <li>Arnaud Charlet

     <li>Chien Chieng

     <li>Cyrille Comar

     <li>Cyrille Crozes

     <li>Robert Dewar

     <li>Gary Dismukes

     <li>Robert Duff

     <li>Ed Falis

     <li>Ramon Fernandez

     <li>Sam Figueroa

     <li>Vasiliy Fofanov

     <li>Michael Friess

     <li>Franco Gasperoni

     <li>Ted Giering

     <li>Matthew Gingell

     <li>Laurent Guerby

     <li>Jerome Guitton

     <li>Olivier Hainque

     <li>Jerome Hugues

     <li>Hristian Kirtchev

     <li>Jerome Lambourg

     <li>Bruno Leclerc

     <li>Albert Lee

     <li>Sean McNeil

     <li>Javier Miranda

     <li>Laurent Nana

     <li>Pascal Obry

     <li>Dong-Ik Oh

     <li>Laurent Pautet

     <li>Brett Porter

     <li>Thomas Quinot

     <li>Nicolas Roche

     <li>Pat Rogers

     <li>Jose Ruiz

     <li>Douglas Rupp

     <li>Sergey Rybin

     <li>Gail Schenker

     <li>Ed Schonberg

     <li>Nicolas Setton

     <li>Samuel Tardieu

 </ul>

 <p>The following people are recognized for their contributions of new
features, bug reports, testing and integration of classpath/libgcj for
GCC version 4.1:
     <ul>
<li>Lillian Angel for <code>JTree</code> implementation and lots Free Swing
additions and bug fixes.

     <li>Wolfgang Baer for <code>GapContent</code> bug fixes.

     <li>Anthony Balkissoon for <code>JList</code>, Free Swing 1.5 updates and mouse event
fixes, lots of Free Swing work including <code>JTable</code> editing.

     <li>Stuart Ballard for RMI constant fixes.

     <li>Goffredo Baroncelli for <code>HTTPURLConnection</code> fixes.

     <li>Gary Benson for <code>MessageFormat</code> fixes.

     <li>Daniel Bonniot for <code>Serialization</code> fixes.

     <li>Chris Burdess for lots of gnu.xml and http protocol fixes, <code>StAX</code>
and <code>DOM xml:id</code> support.

     <li>Ka-Hing Cheung for <code>TreePath</code> and <code>TreeSelection</code> fixes.

     <li>Archie Cobbs for build fixes, VM interface updates,
<code>URLClassLoader</code> updates.

     <li>Kelley Cook for build fixes.

     <li>Martin Cordova for Suggestions for better <code>SocketTimeoutException</code>.

     <li>David Daney for <code>BitSet</code> bug fixes, <code>HttpURLConnection</code>
rewrite and improvements.

     <li>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.

     <li>Jeroen Frijters for <code>ClassLoader</code> and nio cleanups, serialization fixes,
better <code>Proxy</code> support, bug fixes and IKVM integration.

     <li>Santiago Gala for <code>AccessControlContext</code> fixes.

     <li>Nicolas Geoffray for <code>VMClassLoader</code> and <code>AccessController</code>
improvements.

     <li>David Gilbert for <code>basic</code> and <code>metal</code> icon and plaf support
and lots of documenting, Lots of Free Swing and metal theme
additions. <code>MetalIconFactory</code> implementation.

     <li>Anthony Green for <code>MIDI</code> framework, <code>ALSA</code> and <code>DSSI</code>
providers.

     <li>Andrew Haley for <code>Serialization</code> and <code>URLClassLoader</code> fixes,
gcj build speedups.

     <li>Kim Ho for <code>JFileChooser</code> implementation.

     <li>Andrew John Hughes for <code>Locale</code> and net fixes, URI RFC2986
updates, <code>Serialization</code> fixes, <code>Properties</code> XML support and
generic branch work, VMIntegration guide update.

     <li>Bastiaan Huisman for <code>TimeZone</code> bug fixing.

     <li>Andreas Jaeger for mprec updates.

     <li>Paul Jenner for better <samp><span class="option">-Werror</span></samp> support.

     <li>Ito Kazumitsu for <code>NetworkInterface</code> implementation and updates.

     <li>Roman Kennke for <code>BoxLayout</code>, <code>GrayFilter</code> and
<code>SplitPane</code>, plus bug fixes all over. Lots of Free Swing work
including styled text.

     <li>Simon Kitching for <code>String</code> cleanups and optimization suggestions.

     <li>Michael Koch for configuration fixes, <code>Locale</code> updates, bug and
build fixes.

     <li>Guilhem Lavaux for configuration, thread and channel fixes and Kaffe
integration. JCL native <code>Pointer</code> updates. Logger bug fixes.

     <li>David Lichteblau for JCL support library global/local reference
cleanups.

     <li>Aaron Luchko for JDWP updates and documentation fixes.

     <li>Ziga Mahkovec for <code>Graphics2D</code> upgraded to Cairo 0.5 and new regex
features.

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

     <li>Casey Marshall for crypto algorithm fixes, <code>FileChannel</code> lock,
<code>SystemLogger</code> and <code>FileHandler</code> rotate implementations, NIO
<code>FileChannel.map</code> support, security and policy updates.

     <li>Bryce McKinlay for RMI work.

     <li>Audrius Meskauskas for lots of Free Corba, RMI and HTML work plus
testing and documenting.

     <li>Kalle Olavi Niemitalo for build fixes.

     <li>Rainer Orth for build fixes.

     <li>Andrew Overholt for <code>File</code> locking fixes.

     <li>Ingo Proetel for <code>Image</code>, <code>Logger</code> and <code>URLClassLoader</code>
updates.

     <li>Olga Rodimina for <code>MenuSelectionManager</code> implementation.

     <li>Jan Roehrich for <code>BasicTreeUI</code> and <code>JTree</code> fixes.

     <li>Julian Scheid for documentation updates and gjdoc support.

     <li>Christian Schlichtherle for zip fixes and cleanups.

     <li>Robert Schuster for documentation updates and beans fixes,
<code>TreeNode</code> enumerations and <code>ActionCommand</code> and various
fixes, XML and URL, AWT and Free Swing bug fixes.

     <li>Keith Seitz for lots of JDWP work.

     <li>Christian Thalinger for 64-bit cleanups, Configuration and VM
interface fixes and <code>CACAO</code> integration, <code>fdlibm</code> updates.

     <li>Gael Thomas for <code>VMClassLoader</code> boot packages support suggestions.

     <li>Andreas Tobler for Darwin and Solaris testing and fixing, <code>Qt4</code>
support for Darwin/OS X, <code>Graphics2D</code> support, <code>gtk+</code>
updates.

     <li>Dalibor Topic for better <code>DEBUG</code> support, build cleanups and
Kaffe integration. <code>Qt4</code> build infrastructure, <code>SHA1PRNG</code>
and <code>GdkPixbugDecoder</code> updates.

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

     <li>Mark Wielaard for bug fixes, packaging and release management,
<code>Clipboard</code> implementation, system call interrupts and network
timeouts and <code>GdkPixpufDecoder</code> fixes.

 </ul>

 <p>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:

     <ul>
<li>Michael Abd-El-Malek

     <li>Thomas Arend

     <li>Bonzo Armstrong

     <li>Steven Ashe

     <li>Chris Baldwin

     <li>David Billinghurst

     <li>Jim Blandy

     <li>Stephane Bortzmeyer

     <li>Horst von Brand

     <li>Frank Braun

     <li>Rodney Brown

     <li>Sidney Cadot

     <li>Bradford Castalia

     <li>Robert Clark

     <li>Jonathan Corbet

     <li>Ralph Doncaster

     <li>Richard Emberson

     <li>Levente Farkas

     <li>Graham Fawcett

     <li>Mark Fernyhough

     <li>Robert A. French

     <li>J&ouml;rgen Freyh

     <li>Mark K. Gardner

     <li>Charles-Antoine Gauthier

     <li>Yung Shing Gene

     <li>David Gilbert

     <li>Simon Gornall

     <li>Fred Gray

     <li>John Griffin

     <li>Patrik Hagglund

     <li>Phil Hargett

     <li>Amancio Hasty

     <li>Takafumi Hayashi

     <li>Bryan W. Headley

     <li>Kevin B. Hendricks

     <li>Joep Jansen

     <li>Christian Joensson

     <li>Michel Kern

     <li>David Kidd

     <li>Tobias Kuipers

     <li>Anand Krishnaswamy

     <li>A. O. V. Le Blanc

     <li>llewelly

     <li>Damon Love

     <li>Brad Lucier

     <li>Matthias Klose

     <li>Martin Knoblauch

     <li>Rick Lutowski

     <li>Jesse Macnish

     <li>Stefan Morrell

     <li>Anon A. Mous

     <li>Matthias Mueller

     <li>Pekka Nikander

     <li>Rick Niles

     <li>Jon Olson

     <li>Magnus Persson

     <li>Chris Pollard

     <li>Richard Polton

     <li>Derk Reefman

     <li>David Rees

     <li>Paul Reilly

     <li>Tom Reilly

     <li>Torsten Rueger

     <li>Danny Sadinoff

     <li>Marc Schifer

     <li>Erik Schnetter

     <li>Wayne K. Schroll

     <li>David Schuler

     <li>Vin Shelton

     <li>Tim Souder

     <li>Adam Sulmicki

     <li>Bill Thorson

     <li>George Talbot

     <li>Pedro A. M. Vazquez

     <li>Gregory Warnes

     <li>Ian Watson

     <li>David E. Young

     <li>And many others
</ul>

 <p>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.

<!--  -->
<!-- Indexes -->
<!--  -->
 </body></html>

