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

dejagnu/
	Notify http://dejagnu.sourceforge.net/ of generic changes.
	Generic patches to gdb-patches@sources.redhat.com;
	Other dependents of dejagnu include sid@, binutils@, gcc@, etc.

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

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.

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