1999-03-12  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/readelf.wi: Remove FR30 specific componnts.
	* binutils-all/readelf.s: Remove RELA specific components.

1999-02-16  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/readelf.s: Do not assume section alignment is 4.
	* binutils-all/readelf.r: Do not assume rela's are being used. 
	* binutils-all/readelf.exp: disable tests for non ELF based
	targets.

1999-02-02  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/readelf.wi: Amend to match new readelf output.
	* binutils-all/readelf.r: Do not assume that RELAs will be used.

1999-01-29  Nick Clifton  <nickc@cygnus.com>

	* config/default.exp: Add definitions of READELF and READELFFLAGS.

	* binutils-all/readelf.exp: New file: Readelf tests
	* binutils-all/readelf.h: New file: Expected results for 'readelf -h'
	* binutils-all/readelf.s: New file: Expected results for 'readelf -S'
	* binutils-all/readelf.ss: New file: Expected results for 'readelf -s'
	* binutils-all/readelf.r: New file: Expected results for 'readelf -r'
	* binutils-all/readelf.wi: New file: Expected results for 'readelf -wi'

Wed Dec  9 19:11:39 1998  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objcopy.exp (copy_executable): Expect comparison
	failure for mips*-*-elf.

Fri Oct 16 22:57:12 1998  Felix Lee  <flee@cygnus.com>

	* binutils-all/objcopy.exp: fix "no symbols" message.

Tue Jul 28 15:14:04 1998  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objcopy.exp: Keep "main" and "_main" for strip with
	saving symbol tests.  Look for either "main" or "_main" in the output
	file.  Fix test for "no symbols" in the output file.

1998-07-22  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* binutils-all/objcopy.exp: Polish output about fail for objcopy
	(simple copy), strip with/without saving a symbol for object file
	and executable.

Wed Jul  1 16:27:40 1998  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/objcopy.exp: ARM simple objcopy now passes.

Wed Jun 24 09:20:21 1998  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/objdump.exp: Look for '.data' rather than 'data'
	when parsing output of objdump -h.
	* binutils-all/size.exp: Look for '.data' rather than 'data' when
	parsing output of size -A.

1998-07-20  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* objcopy.exp: Two new tests - strip object file with saving a
	symbol and strip executable file with saving a symbol.

Fri May 29 14:50:24 1998  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Don't xfail the simple objcopy test
	when cross compiling.

Thu Nov  6 14:32:37 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/utils-lib.exp: Temporary definition of target_assemble and
 	default_target_assemble so that testing can work with older
 	dejagnu versions.

Wed Sep 24 12:09:15 1997  Bob Manson  <manson@charmed.cygnus.com>

	* binutils-all/objcopy.exp(strip_executable): Make a new copy of
 	the executable being tested.

Mon Sep 15 21:25:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* binutils-all/objcopy.exp: Compile the executables to be tested
 	on the target with a status wrapper (as necessary).

	* binutils-all/ar.exp: If testing on a remote host, don't bother
 	looking on the local host for the program being tested. Use the
 	correct filenames on the remote host.

	* binutils-all/nm.exp: Ditto.

	* binutils-all/size.exp: Ditto.

	* binutils-all/objdump.exp: Ditto.
 	(cpus_expected): Add the target CPU to the regexp of CPUs to be
 	expected, if it's not already there.

Thu Aug 28 09:57:27 1997  Doug Evans  <dje@canuck.cygnus.com>

	* binutils-all/objdump.exp (cpus_expected): Add arc.

Tue Aug  5 00:03:20 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Look for nm-new and strip-new.

Tue Jun  3 17:12:54 1997  Bob Manson  <manson@charmed.cygnus.com>

	* config/default.exp: Remove expect_before statement.

	* binutils-all/objcopy.exp: Don't use global exec_output variable;
 	the output is returned from remote_load instead.

Mon May 12 22:14:20 1997  Bob Manson  <manson@charmed.cygnus.com>

	* binutils-all/objcopy.exp(strip_test): Tests that
	fail to compile are untested, not unresolved.
	(copy_setup): Ditto.

	* lib/utils-lib.exp(default_binutils_assemble): Call
	target_assemble instead of target_compile.

Wed Apr 30 20:37:51 1997  Bob Manson  <manson@charmed.cygnus.com>

	Changes to support multilib and remote hosted testing, along with
 	general cleanups and simplifications.

	* lib/utils-lib.exp(binutil_version): Use remote_exec.
	(default_binutils_run): Ditto.
	(default_binutils_assemble): Remove first argument; call
 	target_compile to actually do the assembly.
	(default_binutils_compile,default_binutils_remove,prune_warnings):
 	Delete.

	* config/default.exp: Remove AS and ASFLAGS.
	(binutils_compile,binutils_remove): Delete.
	(binutils_assemble): Remove first argument.

	* binutils-all/ar.exp: See if we're running the tests on
	a remote host, and download/upload files as appropriate.
	Replace calls to binutils_remove with remote_file. Replace
	calls to binutils_compile with target_compile. Remove initial
	argument to binutils_assemble. Use remote_load to execute
	programs on the target.
	* binutils-all/nm.exp: Ditto.
	* binutils-all/objcopy.exp:  Ditto.
	* binutils-all/objdump.exp:  Ditto.
	* binutils-all/size.exp: Ditto.

Mon Apr 14 12:36:41 1997  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/ar.exp (long_filenames): Check for a file system
	with a 14 character file name length limit.

Tue Apr  1 09:52:15 1997  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objdump.exp: Handle d10v.

Fri Feb  7 16:45:34 1997  Bob Manson  <manson@charmed.cygnus.com>

	* binutils-all/ar.exp: Use prune_warnings instead of
	prune_system_crud.
	* binutils-all/objcopy.exp: Ditto.

Wed Jan 29 00:16:43 1997  Bob Manson  <manson@charmed.cygnus.com>

	* binutils-all/nm.exp: Use / between $srcdir and $subdir.
	* binutils-all/objcopy.exp: Ditto.
	* binutils-all/objdump.exp: Ditto.
	* binutils-all/size.exp: Ditto.
	* binutils-all/hppa/objdump.exp: Ditto.
	

Wed Oct 16 22:57:59 1996  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objdump.exp: Add mn10200 and mn10300 to expected
	cpus list.

Tue Oct  1 15:06:55 1996  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (binutil_version): Fix for current version
	printing.

Sun Aug  4 22:25:40 1996  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Fix end of line matching in srec tests
	to work with TCL 7.5.

Sat Jun 29 12:51:30 1996  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Simple copy test works for i960 b.out
	targets.

Mon Jun 24 14:33:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: On OSF/1, the simple copy test will
	succeed with gas, and fail with /bin/as, so mark it as an expected
	failure only if it fails.

Tue Mar 26 16:55:08 1996  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objcopy.exp: No longer expect adjust-section-vma
	test to fail for hppa*-*-proelf*.

Mon Mar 11 08:25:14 1996  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objdump.exp: Look for "$CODE$", not just "CODE".

Wed Jan 31 11:55:13 1996  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/objcopy.exp: Expect adjust-section-vma tests to
	fail for hppa*-*-proelf* targets.

Thu Jan 25 13:53:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objdump.exp: Update for objdump -h format change.
	* binutils-all/objcopy.exp: Likewise.

Mon Jan 15 18:14:14 1996  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Use the lma, not the vma, when testing
	address adjustments.

Fri Dec 15 16:31:55 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objdump.exp: Update objdump -i test for current
	objdump output.

Mon Nov 27 15:15:09 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Correct fail calls to always use the
	same string as the pass call.

Wed Nov 22 13:18:58 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (prune_system_crud): Discard -g -O warnings
	from native compilers on OSF/1 and SunOS.

Fri Nov 17 10:36:09 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (default_binutils_compiler: Change error
	message to say compilation rather than assembly.

Wed Nov 15 18:34:42 1995  Ken Raeburn  <raeburn@cygnus.com>

	* binutils-all/objcopy.exp: Simple copy test does appear to work
	on i*86-svr4.

Wed Nov 15 12:19:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: If assembly fails, call unresolved.
	Test running objcopy and strip on a final executable.
	* binutils-all/testprog.c: New file.
	* config/default.exp (STRIP, STRIPFLAGS): Define.
	(binutils_compile): New procedure.
	* lib/utils-lib.exp (default_binutils_compile): New procedure.

Fri Nov  3 13:22:33 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (default_binutils_run): Don't use verbose
	-log, reverting part of Oct 2 change.

Wed Nov  1 15:09:57 1995  Manfred Hollstein KS/EF4A 60/1F/110 #40283  <manfred@lts.sel.alcatel.de>

	* binutils-all/objcopy.exp: Add setup_xfails for
	m68*-motorola-sysv* and m88*-motorola-sysv*.

Wed Oct  4 14:38:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/nm.exp: Add setup_xfails for XCOFF.

Mon Oct  2 12:41:48 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/ar.exp: New file.
	* binutils-all/bintest.s: Make text_symbol and data_symbol global.
	Add new static symbols static_text_symbol and static_data_symbol.
	* binutils-all/nm.exp: Adjust accordingly.
	* config/default.exp (AR): Set if not set.
	(binutils_remove): New procedure.
	* lib/utils-lib.exp (default_binutils_run): Call
	prune_system_crud on program output.  Use verbose -log instead of
	both verbose and send_log.
	(default_binutils_remove): New procedure.

	* lib/utils-lib.exp (default_binutils_assemble): Call
	prune_system_crud on assembler output.

Tue Sep 26 14:07:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfails for simple copy test
	for i386 COFF targets.

Wed Sep 13 13:20:21 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (prune_system_crud): Define if not defined.
	* binutils-all/objcopy.exp: Call prune_system_crud on cmp output.

Sat Aug 19 17:38:06 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add xfail for i*86-*-aout* for simple
	copy test.

Wed Aug 16 16:52:53 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/nm.exp: Add setup_xfail for mips*-sony-bsd* for
	tests which fail on ECOFF targets.

	* binutils-all/objcopy.exp: Change i*86-*-linux xfail for simple
	copy test to check for i*86-*-linuxaout* instead.

Tue Aug  8 17:48:37 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfail for a29k-*-vxworks*
	for simple copy test.

Tue Jul 25 11:57:12 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Change setup_xfail for simple copy
	test from i960-*-vxworks5.1 to i960-*-vxworks*.

Mon Jul 10 12:25:46 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfail for z8*-*-coff for
	simple copy test.
	* binutils-all/objdump.exp (cpus_expected): Add z8001 and z8002.

Sun May 21 20:32:53 1995  Jeff Law  (law@snake.cs.utah.edu)

	* binutils-all/hppa/objdump.exp (addendbug): Handle PA ELF targets
	too.
	* binutils-all/objcopy.exp (simple copy): Don't expect PA ELF
	targets to fail.

Tue Apr  4 14:52:08 1995  Jeff Law  (law@snake.cs.utah.edu)

	* binutils-all/hppa: Renamed from binutils-hppa.

Wed Mar 29 12:02:43 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfail for simple copy test
	for h8500-*-hms and h8500-*-coff.

Tue Mar 28 11:18:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfail for simple copy test
	for m68*-ericsson-ose and m88*-*-coff.

Mon Mar 27 11:27:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objcopy.exp: Add setup_xfail for simple copy test
	for m68*-*-vxworks*.

Fri Mar 24 11:44:25 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-hppa/objdump.exp: Correct hppa*-*-* check.

Tue Mar 21 10:48:45 1995  Jeff Law  (law@snake.cs.utah.edu)

	* binutils-hppa/addendbug.s: New testcase.
	* binutils-hppa/objdump.exp: Run it.

Mon Mar 20 11:31:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/utils-lib.exp (default_binutils_run): Quote any dollar signs
	in progargs before passing it to exec.

Fri Mar 17 16:39:31 1995  Jeff Law  (law@snake.cs.utah.edu)

	* config/hppa.sed: Sed script to transform bintest.s into proper
	PA assembly code.
	* binutils-all/nm.exp: Enable these tests on the PA.
	* binutils-all/objcopy.exp: Enable these tests on the PA.  Expect
	simple copy to fail.
	* binutils-all/objdump.exp: Enable these tests on the PA.  Handle
	"CODE" as a section name.
	* binutils-all/size.exp: Enable these tests on the PA.
	* lib/utils-lib.exp (default_binutils_assemble): For "hppa*-*-*",
	run the assembly through a sed script before passing it to the
	assembler.

Wed Mar 15 16:47:13 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/objdump.exp: Force section sizes to be interpreted
	in hex.  Change objdump -h failure mode to always use the same
	string.

Thu Jan  5 13:01:43 1995  Ian Lance Taylor  <ian@cygnus.com>

	* binutils-all/nm.exp: Just check for irix4*, rather than
	irix\[0-4\]*, to avoid DejaGnu bug.

Thu Dec 15 19:35:31 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* binutils-all/objcopy.exp: Expect simple-objcopy test to fail
	for various other targets for which gas doesn't use bfd: sh-hms,
	m68k-hpux, m68k-sunos, m68k-coff, i386-linux, a29k-udi, a29k-coff,
	i960-vxworks5.1, i960-coff, h8300-hms, h8300-coff.

Wed Dec 14 15:54:46 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* binutils-all/size.exp: Skip tests requiring bintest.o on hppa,
	since it (correctly) generates syntax errors on that platform.
	* binutils-all/objdump.exp: Ditto.
	* binutils-all/nm.exp: Ditto.
	* binutils-all/objcopy.exp: Ditto.  Also, move setup_xfail for
	sh-coff to branch where objcopy execution produced no error
	messages.  Expect failure for hp300 also.

Thu Dec  8 14:36:15 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* binutils-all/objdump.exp (cpus_expected): New variable, taken
	from objdump -i test, added ns32k and powerpc, sorted.
	(objdump -i, -f tests): Use $cpus_expected.

	* binutils-all/objcopy.exp: For simple-copy test, expect failure
	for sh-coff.

Tue Oct 25 16:00:14 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* binutils-all/objcopy.exp: Adjust --adjust-section-vma tests for
	new S-record section handling.

Tue Oct 18 11:18:21 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* binutils-all/nm.exp: nm with no arguments and nm -P do not work
	as expected on ECOFF targets; add calls to setup_xfail.

	* binutils-all/objcopy.exp: New file.
	* config/default.exp: Initialize OBJCOPY and OBJCOPYFLAGS.

Fri Oct 14 14:46:22 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	Rewrite testsuite.
	* configure.in, Makefile.in: Remove.
	* binutils-all/configure.in, binutils-all/Makefile.in: Remove.
	* binutils-all/bintest.c: Remove.
	* binutils-all/bintest.s: New file.
	* binutils-all/nm.exp, binutils-all/objdump.exp: Rewrite.
	* binutils-all/size.exp: Rewrite.
	* config/default.exp: Load utils-lib.exp.  Set AS and ASFLAGS.
	Don't go up one directory from $base_dir.  Create tmpdir.
	(binutils_run, binutils-assemble): New procedures.
	* config/unix.exp: Remove.
	* config/mt-a29k-udi, config/mt-i386-aout: Remove.
	* config/mt-i960-nindy, config/mt-lynx, config/mt-m68k: Remove.
	* config/mt-mips-ecoff, config/mt-slite: Remove.
	* config/mt-sparc-aout, config/mt-vxworks: Remove.
	* lib/utils-lib.exp (binutil_version): Don't redirect standard
	input when getting version.  Don't unset errorInfo.
	(default_binutils_run): New procedure.
	(default_binutils_assemble): New procedure.

Thu Sep 29 12:45:39 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* VMS does not permit `.' in directory names: renamed binutils.all
	to binutils-all.
	* configure.in (configdirs): Change binutils.all to binutils-all.

Fri Sep 23 16:01:14 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in: Use mt-m68k for m68k*-*-aout* and m68k*-*-coff*,
	not for m68k-*-*.

Fri Sep 23 13:54:50 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* binutils.all/objdump.exp: Added ARM to list of CPU types.

Thu Sep 22 11:04:50 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* binutils.all/objdump.exp: Update for new usage message.
	* binutils.all/size.exp: Use a double backslash in the string to
	get a single backslash to the regexp matcher.  Accept $TEXT$,
	$DATA$ and $BSS$ as well as .text, .data and .bss, for HP/UX.

Fri Sep  2 12:53:10 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* config/unix.exp: If nm.new does not exist, use [transform nm].
	* config/default.exp: Likewise.

Wed Aug 24 12:41:37 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* configure.in, binutils.all/configure.in: Change i386 to
	i[345]86.

Tue Jul 19 15:23:53 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/mt-mips-ecoff: Add -Tidp.ld option.

Thu Jun 30 12:41:55 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)

	* config/default.exp: Use nm.new, not nm, from newly built tree.

Tue May 17 14:04:05 1994  Bill Cox  (bill@rtl.cygnus.com)

	* config/default.exp, config/unix.exp: Replace error
	  proc calls with perror.

Tue May 10 11:20:54 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* configure.in (sparclite): Match on sparclite*-*-*.

Wed Apr 13 18:25:19 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* config/unix.exp: Use nm.new, not nm, from newly built tree.

	* binutils.all/objdump.exp: Add more wildcards to list of
	single-letter options in pattern for usage message.

	* binutils.all/nm.exp: Deleted debug-symbols test, since it only
	works for a.out/stabs systems.  Fixed regexps to make underscores
	optional, since some C compilers don't prepend them.  Deleted
	check for foo.o symbol, since again some systems don't generate
	it.

Mon Apr 11 10:31:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in (check): Set TCL_LIBRARY for runtest.

Mon Feb 14 19:34:03 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* Makefile.in: Use new config features of DejaGnu in site.exp
	file. "Make check" should now work for all crosses.

Fri Jan 28 18:00:29 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* binutils.all/objdump.exp: In usage message, accept
	"section-name" as well as "section_name".

Mon Jan 17 16:57:02 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* binutils.all/objdump.exp: Trim list of format names expected,
	and accept any known CPU type.

Thu Dec  2 20:50:24 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* Makefile.in: Remove some stuff from the site.exp file.
	* config/unix.exp: Add global before seeing if the variables for
	nm, objdump, and size exist.

Wed Nov  3 11:12:32 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* config/udi.exp,unix.exp: Transform tool name.
	* binutils.all/*.exp: Clear errorInfo after exec.

Fri Jul  2 12:41:20 1993  Ian Lance Taylor  (ian@cygnus.com)

	* binutils.all/*.exp: Use -- for long arguments rather than +.

Fri Jun  4 10:52:29 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* configure.in: change srctrigger to Makefile.in 

Wed May 26 17:27:46 1993  Ian Lance Taylor  (ian@cygnus.com)

	* Makefile.in (FLAGS_TO_PASS): Pass down CC and CFLAGS.

Fri May  7 13:58:44 1993  Ian Lance Taylor  (ian@cygnus.com)

	* binutils.all/objdump.exp: Update for new usage message.

Mon Apr 19 14:08:52 1993  Rob Savoye  (rob@darkstar.cygnus.com)

	* binutils.all/*.exp: Use the new util_test proc.
	* Makefile.in: Create a local site.exp file with config info.

Thu Mar 25 05:38:47 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* nm.all/configure.in (srcname): Delete extra quote.

Mon Feb 22 07:54:03 1993  Mike Werner  (mtw@poseidon.cygnus.com)

        * binutils/testsuite: made modifications to testcases, etc., to allow
        them to work properly  given the reorganization of deja-gnu and the
        relocation of the testcases from deja-gnu to a "tool" subdirectory.

Sun Feb 21 10:55:55 1993  Mike Werner  (mtw@poseidon.cygnus.com)

	* binutils/testsuite: Initial creation of binutils/testsuite.
	Migrated dejagnu testcases and support files for testing nm to
	binutils/testsuite from deja-gnu.  These files were moved "as is"
	with no modifications.  This migration is part of a major overhaul
	of dejagnu.  The modifications to these testcases, etc., which
	will allow them to work with the new version of dejagnu will be
	made in a future update.

