1999-06-13  Ian Lance Taylor  <ian@zembu.com>

	* ld-checks/asm.s: Use a symbol name for .lcomm.
	* ld-checks/checks.exp: Use different names for the two tests.
	Don't add extra text when invoking fail.

1999-06-12  Ian Lance Taylor  <ian@zembu.com>

	* ld-scripts/phdrs.exp: Change target check from "*-*-linuxaout*"
	to "*-*-linux*aout*".
	* ld-scripts/weak.exp: Likewise.
	* ld-shared/shared.exp: Likewise.  Simplify condition a bit.

Wed Jun  9 12:02:33 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* ld-cdtest/cdtest-main.cc: Avoid `implicit int' warning.
	* ld-shared/sh1.c: Fix typo.

1999-06-04  H.J. Lu  <hjl@gnu.org>

	* lib/ld-lib.exp (default_ld_nm): Clear nm_output first if
	necessary.

1999-05-17  Nick Clifton  <nickc@cygnus.com>

	* ld-undefined/undefined.exp: Add xfail for mcore-elf.

1999-05-11  DJ Delorie  <dj@cygnus.com>

	* ld-srec/srec.exp: Do not run tests for PE based ports.

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

	* ld-selective/selective.exp: Do not run tests for COFF or PE
	based ports.

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

	* ld-undefined/undefined.exp: Add expected failures for StrongARM
	targets.

	* ld-srec/srec.exp: Add expected failures for StrongARM targets.

	* ld-selective/selective.exp: Add expected failure for ARM-COFF
	targets. 

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

	* ld-checks/asm.s: Use .long instead of .word.
	Replace custom section names with .text, .data and .bss.
	* ld-checks/script: Replace custom section names with .text, .data
	and .bss. 
	* ld-checks/checks.exp: Replace custom section names with .text,
	.data and .bss. 

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

	* ld-checks: New directory:  Tests for the linker's
	--check-sections option.
	* ld-checks/checks.exp: New file.
	* ld-checks/script: Bogus linker script.
	* ld-checks/asm.s: Simple test assembler file.

Tue Feb  2 19:15:02 1999  Catherine Moore  <clm@cygnus.com>

        * ld-selective/selective.exp:  Disable test for unsupported
        targets.  Change tests to check for absence of symbols instead
        of address zero.

Mon Jan 18 03:44:52 1999  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp (get_link_files): Quote target_triplet and CC
	when invoking shell.
	(get_target_emul): Likewise.

1999-01-03  Ken Raeburn  <raeburn@cygnus.com>

	* config/default.exp (get_link_files, get_target_emul): New procs;
	run shell commands to extract information from configure.host and
	configure.tgt in the source tree.
	(top level): Use them to get information needed to run tests, if
	not otherwise provided.

	* ld-shared/elf-offset.ld: New file.  Builds a shared library, but
	gives non-zero addresses for memory region.
	* ld-shared/shared.exp: Run the non-PIC non-AIX test again using
	the new linker script.

Tue Dec  8 22:56:05 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* ld-srec/srec.exp: Delete xfails for PPC Linux targets,
	newer glibc lets link succeed.

Sun Dec  6 12:59:37 1998  H.J. Lu  <hjl@gnu.org>

	* ld-elfvers/vers1.c: Add missing return types and values.
	* ld-elfvers/vers2.c: Likewise.
	* ld-elfvers/vers3.c: Likewise.
	* ld-elfvers/vers4.c: Likewise.
	* ld-elfvers/vers5.c: Likewise.
	* ld-elfvers/vers6.c: Likewise.
	* ld-elfvers/vers7.c: Likewise.
	* ld-elfvers/vers9.c: Likewise.
	* ld-elfvers/vers15.c: Likewise.

Fri Oct 23 16:28:29 1998 Catherine Moore  <clm@cygnus.com>

       * ld-selective:  New directory with new files to test
       selective linking.

       * lib/ld-lib.exp (ld_nm):  Strip leading underscore from $name.
     
Sun Oct  4 22:17:05 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers16.dsym: Work correctly on a system without
	versioned system libraries.

Mon Sep 28 21:31:12 1998  Richard Henderson  <rth@cygnus.com>

	* ld-elfvers/vers.exp: Run tests on alpha-linux.
	* ld-elfvers/*.sym, ld-elfvers/*.dsym: Adjust patters to match
	Alpha's use of st_other.

1998-09-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* ld-elfvers/vers.exp (vers16, vers16a): New tests.
	* ld-elfvers/{vers16.*, vers16a.*}: New files.

Thu Sep 17 17:18:19 1998  Nick Clifton  <nickc@cygnus.com>

	* ld-undefined/undefined.exp: Make undefined line test be an xfail
	for arm/thunb elf toolchains.

Wed Sep  9 14:10:15 1998  Nick Clifton  <nickc@cygnus.com>

	* ld-undefined/undefined.exp: change test for elf/dwarf2 targets.

	* ld-srec/srec.exp: Arm-elf now passes this test.

Wed Aug 19 11:59:19 1998  Nick Clifton  <nickc@cygnus.com>

	* ld-srec/srec.exp: Add arm/thumb-elf expected failures.
	
Thu Aug 13 12:41:58 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-bootstrap/bootstrap.exp: Don't run the --static bootstrap
	test if we don't have a static libbfd.a.

Wed Aug 12 15:19:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	Based on patch from H.J. Lu <hjl@gnu.org>:
	* ld-srec/srec.exp: Add xfails for Alpha ELF targets.

Mon Aug 10 15:42:20 1998  Richard Henderson  <rth@cygnus.com>

	* ld-scripts/weak.t (.text, .data): Focus data to be used.
	(/DISCARD/): All the rest.
	* ld-scripts/weak1.s, ld-scripts/weak2.s: Put stuff in .data.

Fri Jul 24 18:37:17 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Create tmpdir/gas subdirectory, add a
	symlink to as-new, and set gcc_gas_flag variable.
	* lib/ld-lib.exp (default_ld_compile): If the compiler appears to
	be gcc, use gcc_gas_flag when compiling.

Thu Jul 23 12:23:29 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers.exp: Just check for i?86 rather than checking
	for i386, i486, and i586.
	(objdump_versionstuff): If we can't find the line, dump the file.

Fri Jul  3 00:27:41 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/phdrs.exp: Run test on *-*-eabi*.
	* ld-scripts/weak.exp: Likewise.

Wed Jul  1 10:51:46 1998  Nick Clifton  <nickc@cygnus.com>

	* ld-srec/srec.exp: Add xfail for v850.

	* ld-undefined/undefined.exp: arm and thumb PE toolchains now pass
	these tests.

Fri Jun 19 17:12:52 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/weak.exp: New test.
	* ld-scripts/weak.t: New file.
	* ld-scripts/weak1.s: New file.
	* ld-scripts/weak2.s: New file.

Tue Jun 16 12:40:38 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* ld-elfvers/vers.exp: Run tests on powerpc ELF targets.
	* ld-shared/shared.exp: Likewise.
	* ld-elfvers/vers1.dsym: Allow for .sdata.
	* ld-srec/srec.exp: Add setup_xfails for PowerPC Linux.

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

	* ld-srec/srec.exp: Add xfails for powerpc*-*-eabi.
 	(run_srec_test): On mn10200, define __truncsipsi2_do_d2.
	* ld-srec/sr1.c (__main): Change return type to void.
	* ld-srec/sr3.cc (__main): Likewise.
	(__builtin_delete, __builtin_new): Likewise.
	(__get_dynamic_handler_chain): Return 0.
	(__get_eh_context): Likewise.

Thu May 21 15:21:33 1998  Nick Clifton  <nickc@cygnus.com>

	* ld-undefined/undefined.exp: Add support for thumb-pe target.
	* ld-srec/srec.exp: Add support for arm-pe and thumb-pe targets.

Mon May  4 17:54:20 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* ld-shared/shared.exp: Remove setup_xfails for m68k-linux.

Mon May  4 17:12:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-shared/main.c (shlib_overriddencall2): New function.
	(main): Call shlib_shlibcall2.
	* ld-shared/sh1.c (shlib_shlibcall2): New function.
	(shlib_overriddencall2): New function.
	* ld-shared/shared.dat: Add output line for new test.
	* ld-shared/sun4.dat: Likewise.

	* ld-srec/sr3.cc (__get_eh_context): New function.

Tue Apr  7 12:50:17 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* ld-cdtest/cdtest-foo.h (class Foo): Declare len to be static to
	avoid compiler warning.
	* ld-srec/sr3.cc (class Foo): Likewise.

Tue Feb 10 16:42:40 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/sr3.cc (__get_dynamic_handler_chain): New function.

Mon Feb  2 14:17:48 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/phdrs.exp: Adjust phdrs_regexp for a 64 bit target.

Thu Dec 18 11:13:28 1997  Nick Clifton  <nickc@cygnus.com>

	* ld-srec/srec.exp: Duplicated Arm patch for Thumb targets.

Tue Dec  2 09:50:19 1997  Nick Clifton  <nickc@cygnus.com>

	* ld-srec/srec.exp: Applied patch from Tony.Thompson@arm.com which
	fixes ARM tests.

Mon Dec  1 16:12:05 1997  Nick Clifton  <nickc@cygnus.com>

	* ld-srec/srec.exp: Add expected failures of tests 1 and 2 for ARM
	coff targets.

Wed Nov 12 14:18:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-cdtest/cdtest-foo.h (class Foo): Declare len to be int to
	avoid compiler warning.
	* ld-srec/sr3.cc (class Foo): Likewise.

Mon Nov 10 14:25:43 1997  Ian Lance Taylor  <ian@cygnus.com>

	* lib/ld-lib.exp (default_ld_simple_link): Permit the linker to
	have any name when looking for entry symbol warnings.

	* ld-srec/sr3.cc (__eh_pc): Define.

Mon Oct 20 14:36:39 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/sr3.cc: Add definitions for terminate, __terminate, and
 	__throw, since the current g++ expects them to be defined.

Fri Oct  3 12:24:03 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers.exp (objdump_emptyverstuff): Accept the output
	file if the string libc appears in it.
	(objdump_versionstuff): Accept unexpected lines in the output
	file.  Compare lines using string match.
	* ld-elfvers/vers6.ver: Permit any value in the vna_other field.

Tue Aug 12 16:01:22 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/crossref.exp: Correct string quoting.

Sat Aug  9 00:56:03 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Change ld, as, nm and strip from .new to
	-new.  Load ld-lib.exp rather than ld.exp.
	* ld-bootstrap/bootstrap.exp: Use ld-new rather than ld.new.
	* lib/ld-lib.exp: Rename from lib/ld.exp, for the benefit of
	DejaGnu changes.

Thu Jun 26 12:07:03 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers.exp: Use egrep rather than grep when looking for
	an alternation.  From Greg Margo <gmargo@dl.com>.

Wed Jun 25 12:47:22 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* ld-shared/shared.exp: Add setup_xfail for m68k-linux on tests
	with non PIC shared libraries.

Fri Jun  6 17:35:47 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers6.ver: Update for recent elflink.h patch to
	version handling.

Wed Jun  4 12:06:48 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Define ___get_dynamic_handler_chain as well.

Fri May 30 12:21:39 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Define __get_dynamic_handler_chain when
	linking.

Mon May 12 11:17:55 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Use $base_dir rather than $objdir when
	setting ld.  From John David Anglin <dave@hiauly1.hia.nrc.ca>.

Fri Apr 25 09:07:00 1997  Jeffrey A Law  (law@cygnus.com)

	* ld-srec/srec.exp: Define various out of line prologue/epilogue
	functions for the mn10200 to avoid needing libgcc.a.

Wed Mar 26 13:56:10 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Don't expect failures on mips*-*-elf*.

Mon Mar 17 19:27:13 1997  Ian Lance Taylor  <ian@cygnus.com>

	* ld-elfvers/vers.exp: Don't run on SunOS or AIX.

Wed Mar 12 21:44:19 1997  Eric Youngdale  <eric@andante.jic.com>

	* ld-elfvers/vers.exp, *: New tests for symbol versioning.
	* config/default.exp: Set ar and strip.

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

	* ld-bootstrap/bootstrap.exp: Use prune_warnings instead of
	prune_system_crud.
	* ld-cdtest/cdtest.exp: Ditto.
	* ld-scripts/crossref.exp: Ditto.
	* ld-sh/sh.exp: Ditto.
	* ld-shared/shared.exp: Ditto.
	* ld-srec/srec.exp: Ditto.
	* lib/ld.exp: Ditto.

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

	* ld-cdtest/cdtest.exp: Put a slash between $srcdir/$subdir.
	* ld-scripts/script.exp: Ditto.
	* ld-sh/sh.exp: Ditto.
	* ld-undefined/undefined.exp: Ditto.
	* ld-versados/versados.exp: Ditto.
	* lib/ld.exp: Ditto.

Mon Dec 30 17:08:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/crossref.exp: Fix quoting for --defsym $global$.

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

	* lib/ld.exp (default_ld_version): Fix for current version
	printing.

Fri Sep 13 15:51:45 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/crossref.exp: Define $global$ for hppa-elf.

Thu Aug  8 14:29:32 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/cross2.t: Map XCOFF sections to .text or .data.

	* lib/ld.exp: Use verbose -log instead of calling both verbose and
	send_log.

Wed Aug  7 18:00:58 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/phdrs.exp: New test.
	* ld-scripts/phdrs.s, ld-scripts/phdrs.t: New files.

Sun Aug  4 21:58:12 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/crossref.exp: On a29k targets, use --defsym to define
	V_SPILL and V_FILL.

Thu Aug  1 14:10:27 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/crossref.exp: New test.
	* ld-scripts/{cross1.c, cross2.c, cross3.c}: New files.
	* ld-scripts/{cross1.t, cross2.t}: New files.

Sat Jun 29 13:40:11 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-sh/sh.exp: Fix debugging messages.
	* ld-sh/sh1.s: Use .align 4.

Wed May  1 16:45:13 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-sh/sh.exp: Use -O when compiling with -mrelax.

Mon Apr 29 10:33:10 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* ld-shared/shared.exp: Run the shared library tests on
 	Linux/m68k.

Fri Apr  5 16:20:55 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-shared/shared.exp: Run the shared library tests on Linux.

Mon Feb 26 12:45:26 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-shared/shared.exp: Don't use -fpic on MIPS targets.

Wed Jan 31 15:09:57 1996  Jeffrey A Law  (law@cygnus.com)

	* ld-srec/srec.exp: Add xfails for hppa*-*-*elf*.
	* ld-undefined/undefined.exp: Likewise.

Fri Jan 26 18:43:03 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: ELF targets should now pass the
	undefined line test.

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

	* ld-empic/empic.exp: Update for change to MIPS disassembler.

Mon Jan 15 15:05:53 1996  Ian Lance Taylor  <ian@cygnus.com>

	* ld-bootstrap/bootstrap.exp: Expect failure for mips*-*-irix5*
	when doing the --static test.
	* ld-shared/shared.exp: Run tests on mips*-*-irix5*.

Fri Dec 29 12:33:09 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-bootstrap/bootstrap.exp: On AIX, don't pass the -bI option
	when creating ld-partial.o.

Tue Dec 26 17:37:23 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: If powerpc*-*-eabi*, use --defsym to define
	__eabi.

Tue Dec 19 18:01:01 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Add setup_xfails for XCOFF targets.

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

	* ld-srec/srec.exp: On a29k targets, use --defsym to define
	V_SPILL and V_FILL.
	* ld-srec/sr1.c (V_SPILL, V_FILL): Remove definitions.
	* ld-srec/sr3.cc: Likewise.

	* ld-srec/srec.exp: Remove i960 COFF setup_xfail.

Sat Dec  2 01:20:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Don't use [] in setup_xfail expressions.

Fri Dec  1 13:18:18 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Add setup_xfails for MIPS ELF targets.

Wed Nov 29 13:01:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Add setup_xfail for i960 COFF targets.

Mon Nov 27 14:36:11 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: Add setup_xfail calls for i[345]86-*-aout*.

	* ld-srec/sr1.c (V_SPILL, V_FILL): Define.
	* ld-srec/sr3.cc: Likewise.

Tue Nov 21 16:05:53 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-empic/empic.exp: Update for changes in objdump output.

Wed Nov 15 17:42:48 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-srec/srec.exp: New tests.
	* ld-srec/sr1.c, ld-srec/sr2.c, ld-srec/sr3.cc: New files.
	* lib/ld.exp (ld_simple_link): Discard warnings about not being
	able to find the entry symbol.

Tue Nov 14 20:03:54 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-sh/sh2.c (__main): Define.

Mon Nov  6 14:39:18 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-empic/empic.exp: Accept a . in the address symbol.

	* ld-shared/shared.exp: Run tests on rs6000*-*-aix* and
	powerpc*-*-aix*.  Add code to create appropriate exports files,
	and pass appropriate compilation flags, and test against
	appropriate expected output.
	* ld-shared/xcoff.dat: New file.
	* ld-shared/main.c: Put #ifndef XCOFF_TEST around tests that can
	not be linked using XCOFF.  Use shlib_shlibvar1 as a sample
	function pointer, rather than shlib_mainvar.
	* ld-shared/sh1.c: Likewise.
	* ld-shared/shared.dat: Update for change from using shlib_mainvar
	to using shlib_shlibvar1.
	* ld-shared/sun4.dat: Likewise.

Sat Oct 28 01:54:25 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/script.t: Put .pr in .text, and .rw in .data, for
	convenience when testing XCOFF.

Thu Oct 26 22:53:17 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-bootstrap/bootstrap.exp: On AIX, pass -bI/lib/syscalls.exp
	along with --static.

	* ld-scripts/script.s: Make symbols global.

Fri Oct 20 12:22:16 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: Add setup_xfails for arm*-*-pe*.

Fri Sep 29 11:06:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: Use -e when invoking the linker, to
	prevent the SunOS linker from trying to create a shared library.

Thu Sep 28 12:37:14 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-shared/shared.exp: Run the tests on sparc*-*-sunos4*.  Add
	appropriate modifications and setup_xfails.
	* ld-shared/sun4.dat: New file.

Mon Sep 18 14:12:56 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/ld.exp (default_ld_version): Call prune_system_crud.
	(default_ld_relocate, default_ld_link): Likewise.
	(default_ld_simple_link, default_ld_compile): Likewise.
	(default_ld_assemble, default_ld_nm): Likewise.

Fri Sep  8 17:15:38 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-cdtest/cdtest.exp: If the compiler does not exist, mark the
	tests as untested rather than unresolved.

Wed Aug 23 10:46:38 1995  Ian Lance Taylor  (ian@cygnus.com)

	* ld-sh/sh.exp: Call prune_system_crud on the output of cmp.

Tue Aug 15 17:35:35 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/script.exp: Split script verification into a proc.
	Add simple test of MRI script.
	* ld-scripts/scriptm.t: New file.

Wed Jul 26 11:38:58 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-sh/sh.exp: Mark `SH confirm relaxing' test unresolved when
	appropriate.

Mon Jul 24 15:34:31 1995  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Define objcopy if it is not defined.
	* ld-sh/*: New tests for SH relaxing.

	* ld-empic/empic.exp: If $CC does not exist, call untested rather
	than unresolved.

Thu Jul 20 15:09:26 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: If $CC does not exist, mark the
	tests as untested rather than unresolved.  Clear ELF xfails for
	mips*, not just mips.

Tue Jul 18 12:00:41 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: Add setup_xfail for sh-*-* for
	undefined line test.

Fri Jul 14 13:07:48 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-undefined/undefined.exp: New test, to check reporting of
	undefined symbols.
	* ld-undefined/undefined.c: New file.

Mon Jul 10 11:13:39 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-versados/versados.exp: If a test fails, report it correctly:
	don't try to run the next test, and don't report a pass as well as
	a fail.

Mon Jul  3 14:26:37 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* ld/testsuite/versados/(t1,t2).ld: End in newlines.

Mon May 22 20:19:38 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* lib/ld.exp (default_ld_compile): If cc argument is multiple
	words, use only the first when trying to verify the availability
	of the compiler.

Mon Feb  6 11:46:49 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ld-scripts/defined.t: Mention .data and .bss explicitly.

Tue Jan 24 14:51:48 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* ld-bootstrap/bootstrap.exp: If not in the ld build directory,
	call untested for each test, rather than ignoring it.  If one test
	fails, go on to the next one instead of returning.
	* ld-cdtest/cdtest.exp: If compilations fail, mark tests as
	unresolved.
	* ld-empic/empic.exp: Likewise.  Also, always pass the same test
	name to pass or fail.
	* ld-shared/shared.exp: Likewise.  Also, always run all tests.
	* ld-scripts/defined.exp: If as or nm fail, mark test as
	unresolved.  Always pass the same test name to pass or fail.
	* ld-scripts/script.exp: Likewise.
	* ld-scripts/sizeof.exp: Likewise.

Wed Jan 11 11:48:31 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* ld-scripts/sizeof.exp: New test, based on bug report from
	anders.blomdell@control.lth.se.
	* ld-scripts/sizeof.s: New file.
	* ld-scripts/sizeof.t: New file.

Wed Jan  4 18:56:27 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* lib/ld.exp: Use [which $ld] rather than [file exists $ld] to see
	if the linker exists.

Wed Dec 14 16:39:03 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* lib/ld.exp (prune_system_crud): Define if not already defined,
	in case the user isn't using the newest DejaGnu version that we
	haven't released to the net yet.

Fri Dec  2 14:17:02 1994  Ian Lance Taylor  <ian@rtl.cygnus.com>

	* config/default.exp: Define objdump if it is not defined.
	* ld-empic/*: New tests to test -membedded-pic code.

Mon Nov 28 11:24:36 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* ld-bootstrap/bootstrap.exp: Pass cmp output through
	prune_system_crud.
	* ld-cdtest/cdtest.exp: Pass diff output through
	prune_system_crud.
	* ld-shared/shared.exp: Likewise.

	* config/default.exp: Remove unused and useless proc ld_load.

Sun Oct 30 13:02:34 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* lib/ld.exp (default_ld_compile): Remove the output file before
	compiling.

	* ld-shared/shared.exp: Move common test code into a procedure.
	Add tests for compiling the non shared code PIC.
	* ld-shared/main.c (main): Call main_called, and print the result.
	* ld-shared/shared.dat: Adjust accordingly.

Thu Oct 27 17:30:12 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* ld-shared: New directory, with new files to test generating ELF
	shared libraries.

	* lib/ld.exp (default_ld_compile): If the compilation worked, but
	no object file was created, check to see if the compiler foolishly
	ignored the -o switch when compiling, and move the resulting
	object if it did.

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

	* VMS does not permits `.' in directory names.  Renamed
	ld.bootstrap to ld-bootstrap, ld.cdtest to ld-cdtest, and
	ld.scripts to ld-scripts.

Wed Sep 28 12:18:54 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* config/default.exp: Set variables as and nm.  Create tmpdir if
	it does not already exist.
	* ld.bootstrap/bootstrap.exp: Don't create tmpdir here.
	* ld.cdtest/cdtest.exp: Likewise.
	* ld.scripts/defined.exp: Likewise.  Also, don't set as and nm
	here.  Change perror for no variables found to fail.
	* ld.scripts/script.exp: New test.
	* ld.scripts/script.t, ld.scripts/script.s: New files.

Tue Sep 27 14:59:51 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* ld.scripts: New directory.
	* ld.scripts/defined.exp, ld.scripts/defined.s: New files.
	* ld.scripts/defined.t: New file.
	* lib/ld.exp (default_ld_simple_link): New function.
	(default_ld_assemble, default_ld_nm): New functions.
	* config/default.exp: Rename from unix-ld.exp.
	(ld_simple_link, ld_assemble, ld_nm): New functions.

	* config/unix-ld.exp: Set ld using findfile.
	* lib/ld.exp (default_ld_relocate): Return a value.  Change format
	of log messages.
	(default_ld_compile): Likewise.
	(default_ld_link): Likewise.  Also, don't include $BFDLIB and
	$LIBIBERTY in link.
	* ld.bootstrap/bootstrap.exp: Rewrite.
	* ld.cdtest/cdtest.exp: Rewrite.
	* ld.cdtest/cdtest-foo.cc: Update from top level ld directory.
	* ld.cdtest/cdtest-foo.h: Likewise.
	* ld.cdtest/cdtest-main.cc: Likewise.

Fri May 27 09:35:04 1994  Ken Raeburn  (raeburn@cygnus.com)

	* ld.cdtest/cdtest.exp: Don't look for $result before it's
	defined.

Tue May 17 15:06:49 1994  Bill Cox  (bill@rtl.cygnus.com)

	* ld.bootstrap/bootstrap.exp, lib/ld.exp: Replace error proc
	  calls with perror calls.

Wed May 11 16:47:46 1994  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* ld.cdtest/cdtest-bar.cc: Renamed from cdtest-func.cc.
	* ld.cdtest/cdtest.exp: Adjusted.

Fri Jan 28 13:25:41 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* lib/ld.exp (simple_diff): Indicate failure if files have
	different numbers of lines.  Don't muck with $differences to avoid
	indicating a pass, just return.

	* testsuite/ld.cdtest/{cdtest-foo.h,cdtest-foo.cc,cdtest-main.cc}:
	Fix test case to be valid ANSI C++.  Don't require use of header
	files, so "../gcc/xgcc -B../gcc/" can be used for CXX.
	* testsuite/ld.cdtest/cdtest.exp: Combine "rm" lines.  Add some
	commentary on things that are still broken with this test case.

Fri Sep 10 09:58:23 1993  Jeffrey Wheat  (cassidy@cygnus.com)

	* testsuite/ld.cdtest/cdtest.exp: Added CXXFLAGS to compile stage.

Thu Aug 12 16:05:37 1993  Jeffrey Wheat  (cassidy@cygnus.com)

	* testsuite/lib/ld.exp: add compiler and linker support
	* testsuite/config/unix-ld.exp: add compiler and linker support
	* testsuite/ld.bootstrap/bootstrap.exp: fixed to do partial links
	* testsuite/ld.cdtest/cdtest.exp: constructor/destructor testscase

Wed Aug  4 21:00:18 1993  Jeffrey Wheat  (cassidy@cygnus.com)

	* testsuite/lib/ld.exp: new file
	* testsuite/config/unix-ld.exp: new file
	* testsuite/ld.bootstrap/bootstrap.exp: new file
