Please feel free to add, edit, delete this file.
Please do not make ChangeLog entries.

COPYING, COPYING.LIB, README
	http://gnu.org.

Makefile.in, configure, configure.in
	Please notify the following of any committed patches.
		binutils@sources.redhat.com
		gdb-patches@sources.redhat.com

bfd/, binutils/, gas/, gprof/, ld/, opcodes/ & BFD's part of include/
	binutils: http://sources.redhat.com/binutils/
	Patches to binutils@sources.redhat.com.
	Please notify the following of any interface changes:
		gdb-patches@sources.redhat.com

cgen/, cgen parts of opcodes/, sim/, include/
	cgen: http://sources.redhat.com/cgen/
	Patches to cgen@sources.redhat.com
	May need separate opcodes/ or sim/ approval for
		commits of regenerated files there.

sid/, sid parts of cgen/, dejagnu/
	sid: http://sources.redhat.com/sid/
	Patches to sid@sources.redhat.com

config.guess, config.sub
	config: http://gnu.org
	Patches to config-patches@gnu.org.
	Changes need to be done in tandem with the official CONFIG
	sources or submitted to the master file maintainer and brought
	in via a merge.

libiberty/ & libiberty's part of include/ 
	gcc: http://gcc.gnu.org
	Changes need to be done in tandem with the official GCC
	sources or submitted to the master file maintainer and brought
	in via a merge.

ltconfig, ltmain.sh
	libtool: http://gnu.org
	Changes need to be done in tandem with the official LIBTOOL
	sources or submitted to the master file maintainer and brought
	in via a merge.

mkinstalldirs, move-if-change, symlink-tree
	autoconf: http://gnu.org
	Patches to autoconf-patches@gnu.org.
	Changes need to be done in tandem with the official AUTOCONF
	sources or submitted to the master file maintainer and brought
	in via a merge.

newlib/, libgloss/
	http://sources.redhat.com/newlib/
	Patches to newlib@sources.redhat.com.

gdb/, mmalloc/, readline/, sim/ & GDB's part of include/
	gdb: http://sources.redhat.com/gdb/
	Patches to gdb-patches@sources.redhat.com.
	See also gdb/MAINTAINERS, sim/MAINTAINERS, mmalloc/MAINTAINERS.

itcl/, tcl/, tix/, tk/, libgui/
	insight: http://sources.redhat.com/insight/
	Contact insight@sources.redhat.com.

winsup/
	cygwin: http://sources.redhat.com/cygwin
	Patches to cygwin-patches@sources.redhat.com.
	General discussion cygwin@sources.redhat.com.
	See also winsup/MAINTAINERS.

texinfo/texinfo.tex
	texinfo: http://ftp.gnu.org.
	Latest version can be found on ftp://ftp.gnu.org and can be
	imported at any (reasonable) time.
	Please not use GCC's texinfo.  Please do not import texinfo.

expect/, dejagnu/, config-ml.in, mpw-README, mpw-build.in,
mpw-config.in, mpw-configure, mpw-install, setup.com, missing,
makefile.vms, utils/, config/, config.if, makefile.vms, missing,
ylwrap, mkdep, etc/, install-sh, intl/
	?

modules file
	Obviously changes to this file should not go through
	overseers@sources.redhat.com.  If you understand the file
	format (or can cut-and-paste existing entries), modify it. If
	it scares you, get someone who does understand it to help you.
	Be prepared to fix it if you do break it.

/* Local variables: */
/* change-log-default-name: "/dev/null" */
/* End: */
