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.

config.guess; config.sub; dejagnu/config.guess;
readline/support/config.sub; readline/support/config.guess
	config: http://savannah.gnu.org/projects/config
	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.
	Please notify the following of any committed patches:
		binutils@sources.redhat.com
		gdb-patches@sources.redhat.com

dejagnu/
	Send all patches to:
	http://www.gnu.org/software/dejagnu/
	mail:bug-dejagnu@gnu.org
	For changes to the local repostory, send them to
	gdb-patches@sources.redhat.com when generic; and sid@,
	binutils@, gcc@, etc. for sub-components.

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

include/
	See binutils/, gdb/, sid/, gcc/, libiberty/ etc.

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.  Note: approved patches in gcc's libiberty
	are automatically approved in this libiberty also; feel free
	to merge them yourself if needed sooner than the next merge.
	Otherwise, changes are automatically merged, usually within
	a day.

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

symlink-tree
	gcc: http://gcc.gnu.org
	See libiberty.

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

sid/; SID's part of cgen/ & dejagnu/
	sid: http://sources.redhat.com/sid/
	Patches to sid@sources.redhat.com

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.

tcl/; tix/; itcl/; 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.

expect/; 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/
	Ask DJ Delorie <dj@redhat.com> after reading the libiberty entry.

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: */
