Tue Sep 14 00:28:17 1999  Jeffrey A Law  (law@cygnus.com)

	* binutils-all/hppa/objdump.exp: Do not run for PA64.

1999-09-04  Steve Chamberlain  <sac@pobox.com>

	* binutils-all/objdump.exp: Add pj to cpus_expected.

Sat Aug 28 00:24:27 1999  Jerry Quinn <jquinn@nortelnetworks.com>

	* binutils-all/hppa/freg.s:  New file.
	* binutils-all/hppa/objdump.exp:  Add freg.s test.

1999-08-09  Ian Lance Taylor  <ian@zembu.com>

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

1999-07-21  H.J. Lu  <hjl@gnu.org>

	* binutils-all/testprog.c: Include <stdio.h>.

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

	* binutils-all/objdump.exp: Add fr30 and MCore to expected cpus
	list. 

	* binutils-all/readelf.r: Do not assume a fixed number of spaces
	in the output.

1999-06-10  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/readelf.wi: Update to match latest output.
	* binutils-all/readelf.h: Update to match latest output.

Wed Jun  9 11:59:22 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* binutils-all/objdump.exp: Tighten regexp to match `objdump -i'
	output to avoid massive exponential behaviour.

1999-05-28  Ian Lance Taylor  <ian@zembu.com>

	* binutils-all/readelf.h: Update for changes of 1999-04-08.

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.

