2001-06-11  Alan Modra  <amodra@bigpond.net.au>

	Merge from mainline.
	2001-06-07  H.J. Lu  <hjl@gnu.org>
	* binutils-all/readelf.ss-mips: Support stabs.
	* binutils-all/readelf.ss-tmips: Likewise.

	2001-05-25  H.J. Lu  <hjl@gnu.org>
	* binutils-all/readelf.exp (readelf_test): Set target_machine
	to tmips for traditional mips.
	* binutils-all/readelf.s: Support traditional mips.
	* binutils-all/readelf.ss-tmips: New for traditional mips.

	2001-05-25  Alan Modra  <amodra@one.net.au>
	* binutils-all/readelf.exp: Replace linuxoldld with linux*oldld
	and linuxaout with linux*aout.
	* binutils-all/objcopy.exp: Remove xfail for linuxaout.

	2001-03-30  H.J. Lu  <hjl@gnu.org>
	* binutils-all/readelf.exp: Run on more ELF targets.

	2001-02-11  H.J. Lu  <hjl@gnu.org>
	* config/default.exp: Set up gcc_gas_flag.
	* binutils-all/objcopy.exp (copy_setup): Process gcc_gas_flag
	for Linux only.
	* binutils-all/testprog.c: Include <string.h> and don't use
	exit ().

2001-06-07  Alan Modra  <amodra@bigpond.net.au>

	* (binutils-all/ar.exp, binutils-all/nm.exp,
	binutils-all/objcopy.exp, binutils-all/objdump.exp,
	binutils-all/readelf.exp, binutils-all/size.exp,
	binutils-all/hppa/objdump.exp, config/default.exp,
	lib/utils-lib.exp): Update copyright notices.

2001-01-16  Matthew Green  <mrg@redhat.com>

	* binutils-all/readelf.s-64: Match readelf -S output.

2000-12-09  Nick Clifton  <nickc@redhat.com>

	* binutils-all/objdump.exp (cpus_expected): Add tic54x and
	tms320c54x.

2000-11-28  Hans-Peter Nilsson  <hp@axis.com>

	* binutils-all/readelf.s: Adjust to readelf.c formatting changes.

2000-11-02  Chris Demetriou  <cgd@sibyte.com>

        * binutils-all/readelf.exp (regexp_diff): Add code
        from gas testsuite to treat "#..." at beginning of line
        as an indicator to skip extra non-matching lines at that
        location.
        (readelf_test): Add support for using a machine-specific
        regexp comparison file.
        (readelf -S test, readelf -s test): Remove v850*-*-* and
        mips*-*-* from list of expected failures.
        * binutils-all/readelf.s: Accomodate changes due to
        additional sections (and therefore section numbering
        differences) on v850*-*-* and mips*-*-* targets.
        * binutils-all/readelf.ss: Likewise.
        * binutils-all/readelf.ss-mips: New file, which matches
        expected output of readelf -s test for mips*-*-*.

2000-10-25  Hans-Peter Nilsson  <hp@axis.com>

	* binutils-all/readelf.exp (-wi test): Add cris-*-* to xfails.

2000-10-19  Chris Demetriou  <cgd@sibyte.com>

        * binutils-all/readelf.exp (readelf_test): Work properly
        when multiple targets expect failtures.
        (readelf -S test, readelf -s test): Expect mips*-*-*
        to fail.

2000-07-10  Alan Modra  <alan@linuxcare.com.au>

	* lib/utils-lib.exp (default_binutils_assemble): Don't do the hppa
	sed fudges for hppa-linux.

2000-07-01  Frank Ch. Eigler  <fche@redhat.com>

	* binutils-all/objdump.exp (cpus_expected, cpus_regex): Reorganize
	syntax to display more tcl nature.

2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>

	* binutils-all/objdump.exp (cpus_expected): Recognize m68hc11 and
	m68hc12.

2000-06-18  Nick Clifton  <nickc@redhat.com>

	* binutils-all/readelf.wi: Do not assume the compilation tag to be
	unit 1.

	* binutils-all/objcopy.exp: Expect all arm variants to fail the
	copying executable test.

2000-06-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* binutils-all/readelf.exp (regexp_diff): Do not break when a
	mismatching line is found.
	(readelf_find_size): New.
	(readelf_size): New global variable.
	(readelf_test): Add newline to send_log of command.
	If $srcdir/$subdir/$regexp_file-$readelf_size exists, use it
	instead of $srcdir/$subdir/$regexp_file.
	(*-*elf test): Fix typo in message.
	* binutils-all/readelf.s-64: New.
	* binutils-all/readelf.ss-64: New.

2000-05-02  Alan Modra  <alan@linuxcare.com.au>

	* binutils-all/objcopy.exp (simple copy): Clear xfail for hppa-linux.

	* binutils-all/hppa/objdump.exp: Disable test for elf.

2000-03-13  Nick Clifton  <nickc@cygnus.com>

	* binutils-all/readelf.s: Adjust to match new format of readelf
	output.
	* binutils-all/readelf.ss: Adjust to match new format of readelf
	output.

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

	* binutils-all/objcopy.exp: Expect simple objcopy test to fail
	for COFF based ARM and Thumb ports.

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 components.
	* 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@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.

