		GDB Maintainers
		===============


		   Overview
		   --------

This file describes different groups of people who are, together, the
maintainers and developers of the GDB project.  Don't worry - it sounds
more complicated than it really is.

There are four groups of GDB developers, covering the patch development and
review process:

  - The Global Maintainers.

    These are the developers in charge of most daily development.  They
    have wide authority to apply and reject patches, but defer to the
    Responsible Maintainers (see below) within their spheres of
    responsibility.

  - The Responsible Maintainers.

    These are developers who have expertise and interest in a particular
    area of GDB, who are generally available to review patches, and who
    prefer to enforce a single vision within their areas.

  - The Authorized Committers.

    These are developers who are trusted to make changes within a specific
    area of GDB without additional oversight.

  - The Write After Approval Maintainers.

    These are developers who have write access to the GDB source tree.  They
    can check in their own changes once a developer with the appropriate
    authority has approved the changes; they can also apply the Obvious
    Fix Rule (below).

All maintainers are encouraged to post major patches to the gdb-patches
mailing list for comments, even if they have the authority to commit the
patch without review from another maintainer.  This especially includes
patches which change internal interfaces (e.g. global functions, data
structures) or external interfaces (e.g. user, remote, MI, et cetera).

The term "review" is used in this file to describe several kinds of feedback
from a maintainer: approval, rejection, and requests for changes or
clarification with the intention of approving a revised version.  Review is
a privilege and/or responsibility of various positions among the GDB
Maintainers.  Of course, anyone - whether they hold a position but not the
relevant one for a particular patch, or are just following along on the
mailing lists for fun, or anything in between - may suggest changes or
ask questions about a patch!

There's also a couple of other people who play special roles in the GDB
community, separately from the patch process:

  - The GDB Steering Committee.

    These are the official (FSF-appointed) maintainers of GDB.  They have
    final and overriding authority for all GDB-related decisions, including
    anything described in this file.  The committee is not generally
    involved in day-to-day development (although its members may be, as
    individuals).

  - The Release Manager.

    This developer is in charge of making new releases of GDB.

  - The Patch Champions.

    These volunteers make sure that no contribution is overlooked or
    forgotten.

Most changes to the list of maintainers in this file are handled by
consensus among the global maintainers and any other involved parties.
In cases where consensus can not be reached, the global maintainers may
ask the Steering Committee for a final decision.


			The Obvious Fix Rule
			--------------------

All maintainers listed in this file, including the Write After Approval
developers, are allowed to check in obvious fixes.

An "obvious fix" means that there is no possibility that anyone will
disagree with the change.

A good mental test is "will the person who hates my work the most be
able to find fault with the change" - if so, then it's not obvious and
needs to be posted first. :-)

Something like changing or bypassing an interface is _not_ an obvious
fix, since such a change without discussion will result in
instantaneous and loud complaints.

For documentation changes, about the only kind of fix that is obvious
is correction of a typo or bad English usage.


	     GDB Steering Committee
	     ----------------------

The members of the GDB Steering Committee are the FSF-appointed
maintainers of the GDB project.

The Steering Committee has final authority for all GDB-related topics;
they may make whatever changes that they deem necessary, or that the FSF
requests.  However, they are generally not involved in day-to-day
development.

The current members of the steering committee are listed below, in
alphabetical order.  Their affiliations are provided for reference only -
their membership on the Steering Committee is individual and not through
their affiliation, and they act on behalf of the GNU project.

	Andrew Cagney (Red Hat)
	Robert Dewar (AdaCore, NYU)
	Klee Dienes (Apple)
	Paul Hilfinger (UC Berkeley)
	Dan Jacobowitz (Google)
	Stan Shebs (CodeSourcery)
	Richard Stallman (FSF)
	Ian Lance Taylor (Google)
	Todd Whitesel


		  Global Maintainers
		  ------------------

The global maintainers may review and commit any change to GDB, except in
areas with a Responsible Maintainer available.  For major changes, or
changes to areas with other active developers, global maintainers are
strongly encouraged to post their own patches for feedback before
committing.

The global maintainers are responsible for reviewing patches to any area
for which no Responsible Maintainer is listed.

Global maintainers also have the authority to revert patches which should
not have been applied, e.g. patches which were not approved, controversial
patches committed under the Obvious Fix Rule, patches with important bugs
that can't be immediately fixed, or patches which go against an accepted and
documented roadmap for GDB development.  Any global maintainer may request
the reversion of a patch.  If no global maintainer, or responsible
maintainer in the affected areas, supports the patch (except for the
maintainer who originally committed it), then after 48 hours the maintainer
who called for the reversion may revert the patch.

No one may reapply a reverted patch without the agreement of the maintainer
who reverted it, or bringing the issue to the GDB Steering Committee for
discussion.

At the moment there are no documented roadmaps for GDB development; in the
future, if there are, a reference to the list will be included here.

The current global maintainers are (in alphabetical order):

Pedro Alves                     pedro@codesourcery.com
Joel Brobecker			brobecker@adacore.com
Kevin Buettner			kevinb@redhat.com
Andrew Cagney			cagney@gnu.org
Doug Evans			dje@google.com
Daniel Jacobowitz		drow@false.org
Mark Kettenis           	kettenis@gnu.org
Jan Kratochvil			jan.kratochvil@redhat.com
Stan Shebs			stan@codesourcery.com
Tom Tromey			tromey@redhat.com
Ulrich Weigand			Ulrich.Weigand@de.ibm.com
Elena Zannoni			elena.zannoni@oracle.com
Eli Zaretskii			eliz@gnu.org


			Release Manager
			---------------

The current release manager is: Joel Brobecker  <brobecker@adacore.com>

His responsibilities are:

    * organizing, scheduling, and managing releases of GDB.

    * deciding the approval and commit policies for release branches,
      and can change them as needed.



			Patch Champions
			---------------

These volunteers track all patches submitted to the gdb-patches list.  They
endeavor to prevent any posted patch from being overlooked; work with
contributors to meet GDB's coding style and general requirements, along with
FSF copyright assignments; remind (ping) responsible maintainers to review
patches; and ensure that contributors are given credit.

Current patch champions (in alphabetical order):

	Randolph Chung     <tausq@debian.org>



			Responsible Maintainers
			-----------------------

These developers have agreed to review patches in specific areas of GDB, in
which they have knowledge and experience.  These areas are generally broad;
the role of a responsible maintainer is to provide coherent and cohesive
structure within their area of GDB, to assure that patches from many
different contributors all work together for the best results.

Global maintainers will defer to responsible maintainers within their areas,
as long as the responsible maintainer is active.  Active means that
responsible maintainers agree to review submitted patches in their area
promptly; patches and followups should generally be answered within a week.
If a responsible maintainer is interested in reviewing a patch but will not
have time within a week of posting, the maintainer should send an
acknowledgement of the patch to the gdb-patches mailing list, and
plan to follow up with a review within a month.  These deadlines are for
initial responses to a patch - if the maintainer has suggestions
or questions, it may take an extended discussion before the patch
is ready to commit.  There are no written requirements for discussion,
but maintainers are asked to be responsive.

If a responsible maintainer misses these deadlines occasionally (e.g.
vacation or unexpected workload), it's not a disaster - any global
maintainer may step in to review the patch.  But sometimes life intervenes
more permanently, and a maintainer may no longer have time for these duties.
When this happens, he or she should step down (either into the Authorized
Committers section if still interested in the area, or simply removed from
the list of Responsible Maintainers if not).

If a responsible maintainer is unresponsive for an extended period of time
without stepping down, please contact the Global Maintainers; they will try
to contact the maintainer directly and fix the problem - potentially by
removing that maintainer from their listed position.

If there are several maintainers for a given domain then any one of them
may review a submitted patch.

Target Instruction Set Architectures:

The *-tdep.c files.  ISA (Instruction Set Architecture) and OS-ABI
(Operating System / Application Binary Interface) issues including CPU
variants.

The Target/Architecture maintainer works with the host maintainer when
resolving build issues.  The Target/Architecture maintainer works with
the native maintainer when resolving ABI issues.

	alpha		--target=alpha-elf ,-Werror

	arm		--target=arm-elf ,-Werror

	avr		--target=avr ,-Werror
			Tristan Gingold		gingold@adacore.com

	cris		--target=cris-elf ,-Werror ,
			(sim does not build with -Werror)

	frv		--target=frv-elf ,-Werror

	h8300		--target=h8300-elf ,-Werror

	i386		--target=i386-elf ,-Werror
			Mark Kettenis           kettenis@gnu.org

	ia64		--target=ia64-linux-gnu ,-Werror
			(--target=ia64-elf broken)
			Jan Kratochvil		jan.kratochvil@redhat.com

	lm32		--target=lm32-elf ,-Werror

	m32c		--target=m32c-elf ,-Werror

	m32r		--target=m32r-elf ,-Werror

	m68hc11		--target=m68hc11-elf ,-Werror ,
			Stephane Carrez		stcarrez@nerim.fr

	m68k		--target=m68k-elf ,-Werror

	m88k		--target=m88k-openbsd ,-Werror
			Mark Kettenis		kettenis@gnu.org

	mcore		Deleted

	mep		--target=mep-elf ,-Werror
			Kevin Buettner		kevinb@redhat.com

	microblaze	--target=microblaze-xilinx-elf ,-Werror
			--target=microblaze-linux-gnu ,-Werror
			Michael Eager		eager@eagercon.com

	mips		--target=mips-elf ,-Werror

	mn10300		--target=mn10300-elf broken
			(sim/ dies with make -j)

	moxie		--target=moxie-elf ,-Werror
			Anthony Green		green@moxielogic.com

	ms1		--target=ms1-elf ,-Werror
			Kevin Buettner		kevinb@redhat.com

	ns32k		Deleted

	pa		--target=hppa-elf ,-Werror

	powerpc		--target=powerpc-eabi ,-Werror

	s390		--target=s390-linux-gnu ,-Werror

	score	--target=score-elf
			Qinwei		qinwei@sunnorth.com.cn

	sh		--target=sh-elf ,-Werror
			--target=sh64-elf ,-Werror

	sparc		--target=sparc64-solaris2.10 ,-Werror
			(--target=sparc-elf broken)

	spu		--target=spu-elf ,-Werror
			Ulrich Weigand		uweigand@de.ibm.com

	tic6x		--target=tic6x-elf ,-Werror
			Yao Qi			yao@codesourcery.com

	v850		--target=v850-elf ,-Werror

	vax		--target=vax-netbsd ,-Werror

	x86-64		--target=x86_64-linux-gnu ,-Werror

	xstormy16	--target=xstormy16-elf
			Corinna Vinschen	vinschen@redhat.com

	xtensa		--target=xtensa-elf
			Maxim Grigoriev		maxim2405@gmail.com

All developers recognized by this file can make arbitrary changes to
OBSOLETE targets.

The Bourne shell script gdb_mbuild.sh can be used to rebuild all the
above targets.


Host/Native:

The Native maintainer is responsible for target specific native
support - typically shared libraries and quirks to procfs/ptrace/...
The Native maintainer works with the Arch and Core maintainers when
resolving more generic problems.

The host maintainer ensures that gdb can be built as a cross debugger on
their platform.

AIX			Joel Brobecker		brobecker@adacore.com
Darwin			Tristan Gingold		gingold@adacore.com
djgpp native		Eli Zaretskii		eliz@gnu.org
GNU Hurd		Alfred M. Szmidt	ams@gnu.org
MS Windows (NT, '00, 9x, Me, XP) host & native
			Chris Faylor		cgf@alum.bu.edu
GNU/Linux/x86 native & host
			Mark Kettenis		kettenis@gnu.org
GNU/Linux MIPS native & host
			Daniel Jacobowitz	drow@false.org
GNU/Linux m68k		Andreas Schwab		schwab@linux-m68k.org
FreeBSD native & host	Mark Kettenis		kettenis@gnu.org



Core: Generic components used by all of GDB

threads			Mark Kettenis		kettenis@gnu.org

language support
  Ada			Joel Brobecker		brobecker@adacore.com
			Paul Hilfinger		hilfinger@gnat.com
  C++			Daniel Jacobowitz	drow@false.org
  Objective C support   Adam Fedor		fedor@gnu.org
shared libs		Kevin Buettner		kevinb@redhat.com
MI interface		Vladimir Prus		vladimir@codesourcery.com

documentation		Eli Zaretskii		eliz@gnu.org
  (including NEWS)
testsuite
  gdbtk (gdb.gdbtk)     Keith Seitz             keiths@redhat.com


UI: External (user) interfaces.

gdbtk (c & tcl)		Fernando Nasser         fnasser@redhat.com
			Keith Seitz		keiths@redhat.com
libgui (w/foundry, sn)	Keith Seitz		keiths@redhat.com


Misc:

gdb/gdbserver		Daniel Jacobowitz	drow@false.org

Makefile.in, configure*	ALL

mmalloc/		ALL Host maintainers

sim/			See sim/MAINTAINERS

readline/		Master version: ftp://ftp.cwru.edu/pub/bash/
			ALL
			Host maintainers (host dependant parts)
			(but get your changes into the master version)

tcl/ tk/ itcl/		ALL


		Authorized Committers
		---------------------

These are developers working on particular areas of GDB, who are trusted to
commit their own (or other developers') patches in those areas without
further review from a Global Maintainer or Responsible Maintainer.  They are
under no obligation to review posted patches - but, of course, are invited
to do so!

PowerPC			Andrew Cagney		cagney@gnu.org
ARM			Richard Earnshaw	rearnsha@arm.com
CRIS			Hans-Peter Nilsson	hp@axis.com
IA64			Jeff Johnston		jjohnstn@redhat.com
MIPS			Joel Brobecker		brobecker@adacore.com
m32r			Kei Sakamoto		sakamoto.kei@renesas.com
PowerPC			Kevin Buettner		kevinb@redhat.com
CRIS			Orjan Friberg		orjanf@axis.com
HPPA			Randolph Chung		tausq@debian.org
S390			Ulrich Weigand		uweigand@de.ibm.com
djgpp			DJ Delorie		dj@delorie.com
			[Please use this address to contact DJ about DJGPP]
tui			Stephane Carrez		stcarrez@nerim.fr
ia64			Kevin Buettner		kevinb@redhat.com
AIX			Kevin Buettner		kevinb@redhat.com
GNU/Linux PPC native	Kevin Buettner		kevinb@redhat.com
gdb.java tests		Anthony Green		green@redhat.com
FreeBSD native & host	David O'Brien		obrien@freebsd.org
event loop		Elena Zannoni		elena.zannoni@oracle.com
generic symtabs		Elena Zannoni		elena.zannoni@oracle.com
dwarf readers		Elena Zannoni		elena.zannoni@oracle.com
elf reader		Elena Zannoni		elena.zannoni@oracle.com
stabs reader		Elena Zannoni		elena.zannoni@oracle.com
readline/		Elena Zannoni		elena.zannoni@oracle.com
NetBSD native & host	Jason Thorpe		thorpej@netbsd.org
Pascal support		Pierre Muller		muller@sourceware.org
avr			Theodore A. Roth	troth@openavr.org
Modula-2 support	Gaius Mulley		gaius@glam.ac.uk


			Write After Approval
			   (alphabetic)

To get recommended for the Write After Approval list you need a valid
FSF assignment and have submitted one good patch.

Pedro Alves					pedro_alves@portugalmail.pt
David Anderson					davea@sgi.com
John David Anglin				dave.anglin@nrc-cnrc.gc.ca
Shrinivas Atre					shrinivasa@kpitcummins.com
Sterling Augustine				saugustine@google.com
Scott Bambrough					scottb@netwinder.org
Thiago Jung Bauermann				bauerman@br.ibm.com
Jon Beniston					jon@beniston.com
Gary Benson					gbenson@redhat.com
Jan Beulich					jbeulich@novell.com
Jim Blandy					jimb@codesourcery.com
Philip Blundell					philb@gnu.org
Eric Botcazou					ebotcazou@libertysurf.fr
Per Bothner					per@bothner.com
Joel Brobecker					brobecker@adacore.com
Dave Brolley					brolley@redhat.com
Paul Brook					paul@codesourcery.com
Julian Brown					julian@codesourcery.com
Kevin Buettner					kevinb@redhat.com
Andrew Burgess					aburgess@broadcom.com
Andrew Cagney					cagney@gnu.org
David Carlton					carlton@bactrian.org
Stephane Carrez					stcarrez@nerim.fr
Michael Chastain				mec.gnu@mindspring.com
Renquan Cheng					crq@gcc.gnu.org
Eric Christopher				echristo@apple.com
Randolph Chung					tausq@debian.org
Nick Clifton					nickc@redhat.com
J.T. Conklin					jtc@acorntoolworks.com
Brendan Conoboy					blc@redhat.com
Ludovic Courtès					ludo@gnu.org
Sanjoy Das					sanjoy@playingwithpointers.com
Jean-Charles Delay				delay@adacore.com
DJ Delorie					dj@redhat.com
Chris Demetriou					cgd@google.com
Philippe De Muyter				phdm@macqel.be
Dhananjay Deshpande				dhananjayd@kpitcummins.com
Markus Deuling					deuling@de.ibm.com
Klee Dienes					kdienes@apple.com
Gabriel Dos Reis                                gdr@integrable-solutions.net
Sergio Durigan Junior				sergiodj@linux.vnet.ibm.com
Michael Eager					eager@eagercon.com
Richard Earnshaw				rearnsha@arm.com
Steve Ellcey					sje@cup.hp.com
Frank Ch. Eigler				fche@redhat.com
Ben Elliston					bje@gnu.org
Doug Evans					dje@google.com
Adam Fedor					fedor@gnu.org
Brian Ford					ford@vss.fsi.com
Orjan Friberg					orjanf@axis.com
Nathan Froyd					froydnj@codesourcery.com
Gary Funck					gary@intrepid.com
Paul Gilliam					pgilliam@us.ibm.com
Tristan Gingold					gingold@adacore.com
Raoul Gough					RaoulGough@yahoo.co.uk
Anthony Green			 		green@redhat.com
Matthew Green					mrg@eterna.com.au
Matthew Gretton-Dann				matthew.gretton-dann@arm.com
Maxim Grigoriev					maxim2405@gmail.com
Jerome Guitton					guitton@act-europe.fr
Ben Harris					bjh21@netbsd.org
Richard Henderson				rth@redhat.com
Aldy Hernandez					aldyh@redhat.com
Paul Hilfinger					hilfinger@gnat.com
Matt Hiller					hiller@redhat.com
Kazu Hirata					kazu@cs.umass.edu
Jeff Holcomb					jeffh@redhat.com
Don Howard					dhoward@redhat.com
Nick Hudson					nick.hudson@dsl.pipex.com
Martin Hunt					hunt@redhat.com
Meador Inge					meadori@codesourcery.com
Jim Ingham					jingham@apple.com
Baurzhan Ismagulov				ibr@radix50.net
Manoj Iyer					manjo@austin.ibm.com
Daniel Jacobowitz				drow@false.org
Andreas Jaeger					aj@suse.de
Janis Johnson					janisjo@codesourcery.com
Jeff Johnston					jjohnstn@redhat.com
Geoff Keating					geoffk@redhat.com
Mark Kettenis					kettenis@gnu.org
Marc Khouzam					marc.khouzam@ericsson.com
Jim Kingdon					kingdon@panix.com
Paul Koning					paul_koning@dell.com
Jan Kratochvil					jan.kratochvil@redhat.com
Jonathan Larmour				jifl@ecoscentric.com
Jeff Law					law@redhat.com
Justin Lebar					justin.lebar@gmail.com
David Lecomber					david@streamline-computing.com
Don Lee						don.lee@sunplusct.com
Robert Lipe					rjl@sco.com
Sandra Loosemore				sandra@codesourcery.com
H.J. Lu						hjl.tools@gmail.com
Michal Ludvig                                   mludvig@suse.cz
Edjunior B. Machado				emachado@linux.vnet.ibm.com
Luis Machado					lgustavo@codesourcery.com
Glen McCready					gkm@redhat.com
Greg McGary					greg@mcgary.org
Roland McGrath					roland@redhat.com
Bryce McKinlay					mckinlay@redhat.com
Jason Merrill					jason@redhat.com
David S. Miller					davem@redhat.com
Mark Mitchell					mark@codesourcery.com
Marko Mlinar                                    markom@opencores.org
Alan Modra					amodra@gmail.com
Fawzi Mohamed					fawzi.mohamed@nokia.com
Jason Molenda					jmolenda@apple.com
Chris Moller					cmoller@redhat.com
Phil Muldoon					pmuldoon@redhat.com
Pierre Muller					muller@sourceware.org
Gaius Mulley                                    gaius@glam.ac.uk
Masaki Muranaka					monaka@monami-software.com
Joseph Myers					joseph@codesourcery.com
Fernando Nasser					fnasser@redhat.com
Adam Nemet					anemet@caviumnetworks.com
Nathanael Nerode				neroden@gcc.gnu.org
Hans-Peter Nilsson				hp@bitrange.com
David O'Brien					obrien@freebsd.org
Alexandre Oliva					aoliva@redhat.com
Karen Osmond					karen.osmond@gmail.com
Denis Pilat					denis.pilat@st.com
Kevin Pouget					kevin.pouget@st.com
Paul Pluzhnikov					ppluzhnikov@google.com
Marek Polacek					mpolacek@redhat.com
Vladimir Prus                                   vladimir@codesourcery.com
Yao Qi						yao@codesourcery.com
Qinwei						qinwei@sunnorth.com.cn
Matt Rice					ratmice@gmail.com
Frederic Riss					frederic.riss@st.com
Aleksandar Ristovski				aristovski@qnx.com
Tom Rix						trix@redhat.com
Nick Roberts					nickrob@snap.net.nz
Bob Rossi 					bob_rossi@cox.net
Theodore A. Roth				troth@openavr.org
Ian Roxborough					irox@redhat.com
Maciej W. Rozycki				macro@linux-mips.org
Grace Sainsbury					graces@redhat.com
Kei Sakamoto					sakamoto.kei@renesas.com
Mark Salter					msalter@redhat.com
Richard Sandiford				richard@codesourcery.com
Peter Schauer					Peter.Schauer@mytum.de
Andreas Schwab					schwab@linux-m68k.org
Thomas Schwinge					tschwinge@gnu.org
Keith Seitz					keiths@redhat.com
Carlos Eduardo Seo				cseo@linux.vnet.ibm.com
Ozkan Sezer					sezeroz@gmail.com
Stan Shebs					stan@codesourcery.com
Joel Sherrill					joel.sherrill@oarcorp.com
Mark Shinwell					shinwell@codesourcery.com
Craig Silverstein				csilvers@google.com
Aidan Skinner					aidan@velvet.net
Jiri Smid					smid@suse.cz
Andrey Smirnov					andrew.smirnov@gmail.com
David Smith					dsmith@redhat.com
Stephen P. Smith				ischis2@cox.net
Jackie Smith Cashion				jsmith@redhat.com
Petr Sorfa					petrs@caldera.com
Andrew Stubbs					ams@codesourcery.com
Emi Suzuki					emi-suzuki@tjsys.co.jp
Ian Lance Taylor				ian@airs.com
Gary Thomas					gthomas@redhat.com
Jason Thorpe					thorpej@netbsd.org
Caroline Tice					ctice@apple.com
Kai Tietz					ktietz@redhat.com
Andreas Tobler					andreast@fgznet.ch
Tom Tromey					tromey@redhat.com
David Ung					davidu@mips.com
D Venkatasubramanian				dvenkat@noida.hcltech.com
Corinna Vinschen				vinschen@redhat.com
Sami Wagiaalla					swagiaal@redhat.com
Keith Walker					keith.walker@arm.com
Kris Warkentin					kewarken@qnx.com
Philippe Waroquiers				philippe.waroquiers@skynet.be
Ulrich Weigand					uweigand@de.ibm.com
Ken Werner					ken.werner@de.ibm.com
Nathan Williams					nathanw@wasabisystems.com
Bob Wilson					bob.wilson@acm.org
Jim Wilson					wilson@tuliptree.org
Kwok Cheung Yeung				kcy@codesourcery.com
Elena Zannoni					elena.zannoni@oracle.com
Eli Zaretskii					eliz@gnu.org
Jie Zhang					jzhang918@gmail.com
Wu Zhou						woodzltc@cn.ibm.com
Yoshinori Sato					ysato@users.sourceforge.jp
Hui Zhu						teawater@gmail.com


			Past Maintainers

Whenever removing yourself, or someone else, from this file, consider
listing their areas of development here for posterity.

Jimmy Guo (gdb.hp, tui)				guo at cup dot hp dot com
Jeff Law (hppa)					law at cygnus dot com
Daniel Berlin (C++ support)			dan at cgsoftware dot com
Nick Duffek (powerpc, SCO, Sol/x86)		nick at duffek dot com
David Taylor (d10v, sparc, utils, defs,
  expression evaluator, language support)	taylor at candd dot org
J.T. Conklin (dcache, NetBSD, remote, global)	jtc at acorntoolworks dot com
Frank Ch. Eigler (sim)				fche at redhat dot com
Per Bothner (Java)				per at bothner dot com
Anthony Green (Java)				green at redhat dot com
Fernando Nasser (testsuite/, mi, cli, KOD)      fnasser at redhat dot com
Mark Salter (testsuite/lib+config)		msalter at redhat dot com
Jim Kingdon (web pages)				kingdon at panix dot com
Jim Ingham (gdbtk, libgui)			jingham at apple dot com
Mark Kettenis (hurd native)			kettenis at gnu dot org
Ian Roxborough (in-tree tcl, tk, itcl)		irox at redhat dot com
Robert Lipe (SCO/Unixware)			rjl at sco dot com
Peter Schauer (global, AIX, xcoffsolib,
  Solaris/x86)					Peter.Schauer at mytum dot de
Scott Bambrough (ARM)				scottb at netwinder dot org
Philippe De Muyter (coff)			phdm at macqel dot be
Michael Chastain (testsuite)			mec.gnu at mindspring dot com
Fred Fish (global)
Jim Blandy (global)				jimb@red-bean.com
Michael Snyder (global)


Folks that have been caught up in a paper trail:

David Carlton					carlton@bactrian.org
Ramana Radhakrishnan 				ramana.r@gmail.com

;; Local Variables:
;; coding: utf-8
;; End:
