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

	* ld-selective/selective.exp: Fix test to disable these checks for
	PE based targets.

1999-10-29  Catherine Moore  <clm@cygnus.com>

	* ld-selective/selective.exp:  Remove test6.
	* ld-selective/5.cc: Delete.

1999-10-28  Scott Bambrough  <scottb@netwinder.org>

	* ld-srec/srec.exp: Setup expected failures for
	srec tests on ARM Linux.

1999-09-17  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* ld-shared/shared.exp: xfail linux*libc1 shared (non PIC, load
	offset) test.

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

	* ld-scripts/script.exp: Add --image-base 0 for PE targets.

1999-08-17  H.J. Lu  <hjl@gnu.org>

	* ld-cdtest/cdtest-foo.cc (Foo::init_foo): Use "%ld" for sizeof.

1999-08-09  Jakub Jelinek  <jj@ultra.linux.cz>

	* ld-elfvers/vers.exp: Run tests on sparc*-*-linux*.
	* ld-shared/shared.exp: Likewise.

1999-07-28  Nick Clifton  <nickc@cygnus.com>

	* lib/ld-lib.exp (proc big_or_little_endian): New proc.
	Determine if a big endian or little endian output format hass
	been selected by any of the multilib options, and if so return
	a suitable command line option for the linker/assembler.
	(proc default_ld_link): Include the result of proc
	big_or_little_endian on the command line to the linker.
	(proc ld_simple_link): Include the result of proc
	big_or_little_endian on the command line to the linker.
	(proc default_ld_compile): Append multilib flags to compiler
	switches.
	(proc default_ld_assemble): Include the result of proc
	big_or_little_endian on the command line to the linker.

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

	* ld-elfvers/vers1.c: Add missing prototypes and include
	<stdio.h> if necessary.
	* ld-elfvers/vers15.c: Likewise.
	* ld-elfvers/vers19.c: Likewise.
	* ld-elfvers/vers2.c: Likewise.
	* ld-elfvers/vers3.c: Likewise.
	* ld-elfvers/vers4.c: Likewise.
	* ld-elfvers/vers6.c: Likewise.
	* ld-elfvers/vers7.c: Likewise.
	* ld-elfvers/vers9.c: Likewise.
	* ld-shared/main.c: Likewise.
	* ld-srec/sr3.cc (Foo::Foo): Remove arg name.

Thu Jul 15 18:00:30 1999  Mark P. Mitchell  <mark@codesourcery.com>

	* ld-undefined/undefined.exp: XFAIL on IRIX6 for the usual as
	with other DWARF2 targets.

1999-07-13  Nick Clifton  <nickc@cygnus.com>

	* ld-undefined/undefined.exp: Do not expect arm toolchains to fail
	the undefined line test.

1999-07-10  Ian Lance Taylor  <ian@zembu.com>

	* ld-elfvers/vers.exp: Use -rpath in new vers19 test.

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

	* ld-elfvers/vers.exp: Add new tests vers17 to vers19.
	* ld/elfvers/{vers17.*, vers18.*, vers19.*}: New files.

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
