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

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

Makefile.*; configure; configure.ac; src-release
	Any global maintainer can approve changes to these
	files, but they should be aware	that they need to
	be kept in sync with their counterparts in the GCC
	repository.  Also please notify the following of
	any committed patches:
		binutils@sourceware.org
		gdb-patches@sourceware.org

bfd/; binutils/; elfcpp/; gas/; gold/; gprof/; ld/; opcodes/; cpu/;
libctf/; BFD's and libctf's parts of include/

	binutils: http://sourceware.org/binutils/
	Patches to binutils@sourceware.org.
	Please notify the following of any interface changes:
		gdb-patches@sourceware.org

cgen/; cgen parts of opcodes/, sim/ & include/
	cgen: http://sourceware.org/cgen/
	Patches to cgen@sourceware.org
	May need separate opcodes/ or sim/ approval for
		commits of regenerated files there.

config.guess; config.sub; readline/support/config.{sub,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.  When updating any of these files, please be
	sure to update all of them.
	Please notify the following of any committed patches:
		binutils@sourceware.org
		gdb-patches@sourceware.org

depcomp; mkinstalldirs
        Send bug reports and patches to bug-automake@gnu.org.

gdb/; gnulib/; readline/; sim/; GDB's part of include/
	GDB: http://www.gnu.org/software/gdb/
	Patches to gdb-patches@sourceware.org.
	See also gdb/MAINTAINERS and sim/MAINTAINERS.

include/
	The rule is that if the file exists in the gcc tree
	then gcc owns it.  Thus you have to look at the gcc tree
	to know whether any particular file is owned by gcc.
	See also binutils/, gdb/, sid/, gcc/, libiberty/ etc.

intl/; config.rhost; libiberty/; libiberty's part of include/;
compile; depcomp; install-sh; missing; ylwrap; config/
	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 or
	intl are automatically approved in this libiberty and intl also;
	feel free to merge them yourself if needed sooner than the next
	merge.  Otherwise, changes are automatically merged, usually
	within a day.

libdecnumber/
	See libiberty.  The master copy of this directory is in the GCC
	repository.

ltconfig; ltmain.sh; ltcf-*.sh
	libtool: http://www.gnu.org/software/libtool/
	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.

move-if-change
	Send bug reports and patches to bug-gnulib@gnu.org.

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

newlib/; libgloss/
	http://sourceware.org/newlib/
	Patches to newlib@sourceware.org.

sid/; SID's part of cgen/
	sid: http://sourceware.org/sid/
	Patches to sid@sourceware.org

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://sourceware.org/insight/
	Contact insight@sourceware.org.

winsup/
	cygwin: http://sourceware.org/cygwin
	Patches to cygwin-patches@cygwin.com.
	General discussion cygwin@cygwin.com.

config-ml.in; makefile.vms; mkdep; setup.com;
etc/; utils/;
	Any global maintainer can approve changes to these
	files and directories.

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