2001-02-27  Alan Modra  <alan@linuxcare.com.au>

	* configure.in (BFD_VERSION): New.
	(AM_INIT_AUTOMAKE): Use $BFD_VERSION.
	* configure: Regenerate.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.

2001-02-26  Timothy Wall  <twall@cygnus.com>

	* emulparams/elf64_aix.sh: Add additional read-only sections;
	uncomment lines which are now required.

2001-02-26  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (open_input_bfds): Set the bfd error handler so
        that problems can be caught whilst loading symbols.
        (record_bfd_errors): New function: Report BFD errors and mark
        the executable output as being invalid.

2001-02-22  Timothy Wall  <twall@cygnus.com>

	* configure.host: Add configuration for ia64-*-aix*.
	* Makefile.am (ALL_64_EMULATIONS): Add emulation for ia64-*-aix*.
	Add dependencies for eelf64_aix.c.
	* Makefile.in: Regenerate.
	* configure.tgt: Add ia64-*-aix* mapping.
	* emulparams/elf64_aix.sh: Add settings for elf64 on aix5.
	* testsuite/ld-bootstrap/boostrap.exp: Exclude ia64 flavor from
	AIX-specific test. 
	
2001-02-20  H.J. Lu  <hjl@gnu.org>

	* ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
	false if we found the file.

2001-02-18  David O'Brien  <obrien@FreeBSD.org>

	* configure.tgt: Add FreeBSD/Alpha, FreeBSD/x86-64, FreeBSD/ia64,
	FreeBSD/PowerPC, FreeBSD/arm, and FreeBSD/sparc64 entries.

2001-02-18  lars brinkhoff  <lars@nocrew.org>

	* Makefile.am: Add PDP-11 target.
	* configure.tgt: Likewise.
	* emulparams/pdp11.sh: New file.

2001-02-17  David O'Brien  <obrien@FreeBSD.org>

	* configure.host: Add a generic FreeBSD configuration entry such that
	all [modern] FreeBSD systems on all platforms will look the same.

2001-02-14  H.J. Lu  <hjl@gnu.org>

	* configure.tgt: Remove mention of earmelf_linux26.

2001-02-13  Richard Henderson  <rth@redhat.com>

	* emulparams/elf64_ia64.sh (OTHER_GOT_SYMBOLS): Remove.

2001-02-13  H.J. Lu  <hjl@gnu.org>

	* ldexp.h (node_type): Add etree_provided.
	* ldexp.c (exp_fold_tree): Handle etree_provided. Set the node
	type to etree_provided if defined by PROVIDE. Allow updating
	for etree_provided. 
	(exp_print_tree): Handle etree_provided.
	* mpw-elfmips.c (gldelf32ebmip_find_exp_assignment): Handle
	etree_provided.

2001-02-09  David Mosberger  <davidm@hpl.hp.com>

	* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add
	.IA_64.unwind.* pattern to unwind table section and
	.IA_64.unwind_info* pattern to unwind info section.

2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* Makefile.am: Add linux target for S/390.
	* Makefile.in: Likewise.
	* configure.host: Likewise.
	* configure.tgt: Likewise.
	* emulparams/elf64_s390.sh: New file.
	* emulparams/elf_s390.sh: New file.

2001-02-09  Jakub Jelinek  <jakub@redhat.com>

	* configure.tgt (sparc64-*-linux-gnu*): Add elf32_sparc into
	targ_extra_libpath.
	(sparc-*-linux-gnu*): Add elf64_sparc into targ_extra_libpath.

2001-02-06  Philip Blundell  <philb@gnu.org>

	* Makefile.am: Remove mention of earmelf_linux26.
	* Makefile.in: Regenerate.

2001-02-04  Philip Blundell  <philb@gnu.org>

	* emulparams/armelf_linux.sh (TEXT_START_ADDR): Set to 0x8000.
	* emulparams/armelf_linux26.sh: Delete.
	* configure.tgt: Remove mention of armelf_linux26 emulation.

2001-02-01  Nick Clifton  <nickc@redhat.com>

	* ld.1: Replace occurances of -oformat with --oformat.

2001-01-25  Jim Driftmyer <jdrift@stny.rr.com>

	* ldlang.c (lang_leave_overlay): Don't set lma_region when
	load_base is specified.

2001-01-24  Hans-Peter Nilsson  <hp@axis.com>

	* emultempl/elf32.em: Correct spelling in comments and listed
	options.

2001-01-23  Alan Modra  <alan@linuxcare.com.au>

	* ldlang.c (lang_leave_overlay): Only set lma_region from the
	default for the first section of a group of overlay sections.

2001-01-22  Alan Modra  <alan@linuxcare.com.au>

	* Makefile.am (GENSCRIPTS): Pass exec_prefix.
	* Makefile.in: Regenerate.
	* genscripts.sh: Use exec_prefix parameter to specify tool lib.
	Check for null tool_dir.

2001-01-16  Jim Wilson  <wilson@redhat.com>

	* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Add IA_64.unwind
	and IA_64.unwind.info.

2001-01-16  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (lang_check): Merge the private data only if the
	input file has contents.

2001-01-14  Alan Modra  <alan@linuxcare.com.au>

	* emulparams/hppalinux.sh (OUTPUT_FORMAT): Set to elf32-hppa-linux.

	* emultempl/hppaelf.em (hppaelf_after_parse): New function,
	enabling search for libmilli.  On a relocatable link, make .text
	sections unique.
	(LDEMUL_AFTER_PARSE): Define.
	(hppaelf_finish): Correct spelling of relocatable in comments.

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
	rummage through the script for sections on the unique list.
	Correct length of strncmp for ".note".
	(gld${EMULATION_NAME}_check_needed): Rearrange function.

	* ldlang.c (unique_section_list): New var.
	(unique_section_p): New function.
	(walk_wild_section): Don't match sections on unique_section_list.
	(lang_add_unique): New function.
	Correct spelling of relocatable in comments.

	* ldlang.h (struct unique_sections): Declare.
	(unique_section_list): Declare.
	(unique_section_p): Declare.
	(lang_add_unique): Declare.

	* lexsup.c (ld_options): Allow --unique to take an optional arg.
	(parse_args [OPTION_UNIQUE]): Call lang_add_unique.

	* ld.texinfo (--unique): Update.

2001-01-13  Nick Clifton  <nickc@redhat.com>

	* lexsup.c (parse_args): Remove spurious white space.

2001-01-12  Nick Clifton  <nickc@redhat.com>

	* lexsup.c (parse_args): Update copyright date.

2001-01-12  Philip Blundell  <pb@futuretv.com>

	* configure.host: Set HOSTING_LIBS appropriately for ix86-cygwin.

2001-01-10  Kazu Hirata  <kazu@hxi.com>

	* scripttempl/h8300.sc: Fix formatting.  Fix a comment typo.
	* scripttempl/h8300h.sc: Fix formatting.
	* scripttempl/h8300s.sc: Likewise.
	* scripttempl/h8500.sc: Likewise.
	* scripttempl/h8500b.sc: Likewise.
	* scripttempl/h8500c.sc: Likewise.
	* scripttempl/h8500m.sc: Likewise.
	* scripttempl/h8500s.sc: Likewise.

2000-01-07  David O'Brien  <obrien@BSDi.com>

	* emultempl/elf32.em: Only perform Linux ld hints processing when
	targeting Linux.

2001-01-07  Philip Blundell  <philb@gnu.org>

	* ld.texinfo (Bug Reporting): Update email address for reports.

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

	* lexsup.c (parse_args): Set opterr to 0 and detect unparsed long
	options by checking for a return value of '?' not -1.

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

	* lexsup.c (struct ld_option): Add new enum value:
	EXACTLY_TWO_DASHES.
	(ld_options[]): Change -omagic, -output and -oformat options
	to be EXACTLY_TWO_DASHES.
	(OUTPUT_COUNT): Use ARRAY_SIZE.
	(parse_args): Change parameter 'argc' to unsigned.
	Place EXACTLY_TWO_DASHES options into new really_longopts
	array.
	If getopt_long_only fails, try calling getopt_long using the
	really_longopts array.
	(help): Print a double dash for both EXACTLY_TWO_DASHES and
	TWO_DASHES options.

	* ldlex.h: Fix prototype of parse_args.

	* ld.texinfo: Document that long options starting with 'o'
	must be preceeded by two dashes.  Change example of a single
	dashed long option from -oformat to -trace-symbol.

2000-12-26  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>

	* emultempl/pe.em (OPTION_NO_DEFAULT_EXCLUDES): Define.
	(longopts[]): New --no-default-excludes option.
	(gld_${EMULATION_NAME}_list_options): Document.
	(gld_${EMULATION_NAME}_parse_args): Handle.

2000-12-13  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* ldlang.c (new_stat): Revert the last beautification with "innocent"
	whitespace, it breaks the K&R C preprocessor.

2000-12-11  DJ Delorie  <dj@redhat.com>

	* ld.texinfo: Add notes about --whole-archive and gcc.

2000-11-18  Fred Fish  <fnf@be.com>

	* lexsup.c (OPTION_ALLOW_SHLIB_UNDEFINED): Define.
	(ld_options): Entry for --allow-shlib-undefined.
	(parse_args): Handle OPTION_ALLOW_SHLIB_UNDEFINED.
	* ldmain.c (main): Initialize link_info.allow_shlib_undefined
	to false.
	* ld.texinfo: Document new command line switch.

2000-12-12  Geoffrey Keating  <geoffk@redhat.com>

	* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS):
	.fixup is actually read/write.
	* emulparams/elf32lppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
	* emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
	* emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.

Mon Dec 11 14:50:33 MET 2000  Jan Hubicka  <jh@suse.cz>

	* NEWS: Add note about x86_64 architecture.

2000-12-06  Mark Elbrecht  <snowball3@bigfoot.com>

	* scripttempl/i386go32.sc: Use PROVIDE with _etext, _edata, _end.
	Set DWARF2 sections to a VMA of zero.

2000-12-01      Joel Sherrill <joel@OARcorp.com>

	* configure.tgt (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
	New targets.
	(sparc*-*-rtemself*, sparc*-*-rtemsaout*): New targets.
	(sparc*-*-rtems*): Switched from a.out to ELF.

2000-11-30  Jan Hubicka  <jh@suse.cz>

	* Makefile.am (ALL_EMULATIONS): Add eelf_x86_64.o
	(eelf_x86_64.c): New.
	* Makefile.in: Regenerate.
	* configure.tgt: Add support for x86_64-*-linux-gnu*.
	* emulparams/elf_x86_64.sh: New.

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

	* emulparams/crislinux.sh (ENTRY): Change back to _start.
	(TEXT_START_SYMBOLS): Remove conditional setting of __start.

	* scripttempl/crisaout.sc: Change all RELOCATING not related to
	merging non-a.out sections into CONSTRUCTING.

2000-11-28  Nick Clifton  <nickc@redhat.com>

	* ld.1 (COPYING): Mention that the GNU Free Documentation
	License is present in the sources, but not the output, and
	also available from the GNU website.
	(GNU Free Documentation License): Comment out this section.

2000-11-28  David O'Brien  <obrien@dragon.nuxi.com>

	* emulparams/elf64alpha.sh (ENTRY): Remove leading underscore as ELF
	does not use them.

2000-11-25  David O'Brien  <obrien@FreeBSD.org>

	* ld.1: Remove old date so it does not give the impression the manpage
	is way out of date.

2000-11-24  Nick Clifton  <nickc@redhat.com>

	* configure.tgt (xscale-coff): Add target.
	(xscale-elf): Add target.

2000-11-24  Fred Fish  <fnf@be.com>

	* ldmain.c (main): Remove redundant init of config.make_executable
	to true.

2000-11-15  Richard Henderson  <rth@redhat.com>

	* emulparams/elf64alpha.sh (MAXPAGESIZE): Typo -- 64k, not 1M.

2000-11-14  Kazu Hirata  <kazu@hxi.com>

	* scripttempl/h8300.sc: Fix formatting.
	* scripttempl/h8300h.sc: Likewise.
	* scripttempl/h8300s.sc: Likewise.

Tue Nov 14 00:59:19 2000  Denis Chertykov  <denisc@overta.ru>

	* scripttempl/elf32avr.sc: Fix bug in .eeprom segment.

2000-11-09  Philip Blundell  <pb@futuretv.com>

	* emultempl/pe.em: Define ___start_SECNAME and ___stop_SECNAME
	around orphan sections whose names can be represented in C.

2000-11-07  Jim Wilson  <wilson@redhat.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): New local
	hold_sdata.  If SEC_SMALL_DATA set, set place to hold_sdata.

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

	* ld.texinfo: Add GNU Free Documentation License.
	* ldint.texinfo: Add GNU Free Documentation License.
	* ld.1: Add GNU Free Documentation License.

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

	* ldlex.l (yy_create_string_buffer): Init yy_is_our_buffer,
	yy_is_interactive, yy_at_bol, and yy_fill_buffer.

	* Makefile.am (DISTCLEANFILES): Add stringify.sed.
	Move 2000-11-02 Makefile.in changes to this file.
	* Makefile.in: Regenerate.

2000-11-03  Nick Clifton  <nickc@redhat.com>

	* scripttempl/h8300.sc: Use ${CONSTRUCTING...} to enclose
	constructors and destructors.
	* scripttempl/h8300h.sc: Ditto.
	* scripttempl/h8300s.sc: Ditto.
	* scripttempl/h8500.sc: Ditto.
	* scripttempl/h8500b.sc: Ditto.
	* scripttempl/h8500c.sc: Ditto.
	* scripttempl/h8500m.sc: Ditto.
	* scripttempl/h8500s.sc: Ditto.
	* scripttempl/v850.sc: Ditto.
	* scripttempl/w65.sc: Ditto.
	* scripttempl/z8000.sc: Ditto.

2000-11-02  Per Lundberg  <plundis@chaosdev.org>

	* Makefile.in (e_i386_chaos.c): New rule.
	(ALL_EMULATIONS): Added e_i386_chaos.o.
	* emulparams/elf_i386_chaos.sh: New file.
	* configure.tgt: Recognise i[3456]86-chaosdev-storm-chaos.

2000-10-20  Jakub Jelinek  <jakub@redhat.com>

	* emulparams/elf64_sparc.sh (TEXT_START_ADDR,
	NONPAGED_TEXT_START_ADDR): Set to 4GB for Solaris targets.
	Fix sed invocation, so that it coped with '/' in Solaris 64bit
	library path suffix.
	Based on patch by Andrew Macleod <amacleod@cygnus.com>.

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

	* scripttempl/crisaout.sc (.text, .data): Pad, with ALIGN (32),
	for consecutive sections.

2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>

	* lexsup.c: New option OPTION_TARGET_HELP. Prints all target specific
	options.
	* ld.texinfo: Added notes about this new option.

2000-10-16  Nick Clifton  <nickc@redhat.com>

	* emultempl/pe.em (_after_open): Add tests of return values from
	bfd functions.  Emit appropriate error messages if necessary.

2000-10-13  Nick Clifton  <nickc@redhat.com>

	* emultempl/pe.em (_after_open): Delete 'is2' and 'nsyms'
	local variables - they are not used, but leave in the call to
	bfd_canonicalize_symtab.
	(_open_dynamic_archive): Add #ifdef DLL_SUPPORT around use of
	pe_dll_search_prefix.

2000-10-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* emultempl/pe.em (pe_dll_search_prefix): New variable,
	(longopts): New --dll-search-prefix option.
	(gld_${EMULATION_NAME}_list_options): Document.
	(gld_${EMULATION_NAME}_parse_args): Handle.
	(gld_${EMULATION_NAME}_open_dynamic_archive): When linking
	dynamically, search for a dll named '<prefix><basename>.dll'
	in preference to 'lib<basename>.dll' if --dll-search-prefix
	is specified.

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

	* ldlang.c (section_already_linked): Set kept_section instead of
	sec->comdat->sec.

2000-10-10  Kazu Hirata  <kazu@hxi.com>

	* deffile.h: Fix formatting.
	* lexsup.c: Likewise.
	* mri.c: Likewise.

2000-10-09  Paul Sokolovsky  <Paul.Sokolovsky@technologist.com>

	* pe-dll.c (make_one): Do not generate code thunk for DATA
	exports.
	(process_def_file): deduce DATA flag for auto-export sumbols.

2000-10-09  Kazu Hirata  <kazu@hxi.com>

	* ld.h: Fix formatting.
	* ldcref.c: Likewise.
	* ldctor.h: Likewise.
	* ldemul.c: Likewise.
	* ldemul.h: Likewise.
	* ldexp.c: Likewise.
	* ldexp.h: Likewise.
	* ldfile.c: Likewise.
	* ldfile.h: Likewise.
	* ldlang.c: Likewise.
	* ldlang.h: Likewise.
	* ldmain.c: Likewise.
	* pe-dll.c: Likewise.

	* pe-dll.c: Revert some formatting fixes.

2000-10-08  Kazu Hirata  <kazu@hxi.com>

	* pe-dll.c: Fix formatting.

2000-10-05  Kazu Hirata  <kazu@hxi.com>

	* ldlang.c: Fix formatting.

2000-10-03  DJ Delorie  <dj@redhat.com>

	* pe-dll.c (fill_edata): initialize entire block
	(make_one): fill in correct section.

2000-10-03  Kazu Hirata  <kazu@hxi.com>

	* ldexp.c: Fix formatting.

2000-10-02  DJ Delorie  <dj@redhat.com>

	* emultempl/pe.em (gld_*_after_open): detect case where there two
	import libraries for same dll; rename one to ensure proper link
	order.

	* pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix
	typo
	(generate_edata): fix typo

2000-09-29  Hans-Peter Nilsson  <hp@axis.com>

	* scripttempl/crisaout.sc (ENTRY): Now __start.
	(.text): Add default setting for __start.
	Remove CONSTRUCTORS handling.
	(/DISCARD/): Add .gnu.warning.*.
	* emulparams/crislinux.sh (ENTRY): Now __start.
	(TEXT_START_SYMBOLS): New; provide __Stext and __start default.
	* emulparams/criself.sh (OUTPUT_FORMAT): Now elf32-us-cris.
	(ENTRY): Now __start.
	(INITIAL_READONLY_SECTIONS): Add KEEP for .startup.
	(EXECUTABLE_SYMBOLS): Add default setting for __start.

2000-09-29  Kazu Hirata  <kazu@hxi.com>

	* deffile.h: Fix formatting.
	* ld.h: Likewise.
	* ldcref.c: Likewise.
	* ldctor.c: Likewise.
	* ldctor.h: Likewise.
	* ldemul.c: Likewise.
	* ldemul.h: Likewise.
	* ldexp.c: Likewise.
	* ldexp.h: Likewise.
	* ldfile.c: Likewise.
	* ldfile.h: Likewise.
	* ldlang.c: Likewise.
	* ldlang.h: Likewise.
	* lexsup.c: Likewise.
	* mri.c: Likewise.
	* pe-dll.c: Likewise.

2000-09-28  Paul Sokolovsky  <Paul.Sokolovsky@technologist.com>

	* pe-dll.c (process_def_file): Uninitialized data wasn't
	exported with --export-all-symbols switch.

2000-09-28  DJ Delorie  <dj@redhat.com>

	* pe-dll.c (fill_edata): rearrange the data so that ordinals and
	noname work properly.

2000-09-28  Alan Modra  <alan@linuxcare.com.au>

	* ld.texinfo (HPPA ELF32): New section.

	* emultempl/hppaelf.em (group_size): New.
	(hppaelf_finish): Pass group_size to elf32_hppa_size_stubs.
	(PARSE_AND_LIST_PROLOGUE): Add OPTION_STUBGROUP_SIZE.
	(PARSE_AND_LIST_LONGOPTS): Add --stub-group-size.  Duplicate
	options to prevent abbreviations matching.
	(PARSE_AND_LIST_OPTIONS): Describe the above.  Reformat.
	(PARSE_AND_LIST_ARGS_CASES): Handle it.

2000-09-21  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* emultempl/m68kelf.em: Conditionalise the embedded relocs feature
	on the m68*-*-elf target.  Make it support COFF input objects.

2000-09-21  Kazu Hirata  <kazu@hxi.com>

	* ldmain.c: Fix formatting.
	* ldmisc.c: Likewise.
	* ldver.c: Likewise.
	* ldwrite.c: Likewise.

2000-09-21  Alan Modra  <alan@linuxcare.com.au>

	* ldwrite.c (clone_section): Silence gcc warnings.

2000-09-20  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Handle
	out of memory failure.

	* ldwrite.c (ldwrite): Remove unnecessary einfo arg.
	(clone_section): Handle out of memory failures.  Rename var to
	avoid c++ reserved word.

2000-09-18  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/hppaelf.em (hppaelf_add_stub_section): Rename
	stub_name param to stub_sec_name.
	(hppaelf_finish): Modify call to elf32_hppa_size_stubs.

2000-09-10  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* emultempl/m68kelf.em: New file.
	* emulparams/m68kelf.sh (EXTRA_EM_FILE): Use it.
	* Makefile.am (em68kelf.c): Add dependency on m68kelf.em.
	* Makefile.in: Regenerate.

2000-09-15  Alan Modra  <alan@linuxcare.com.au>

	* emulparams/hppalinux.sh (DATA_START_SYMBOLS): Provide $global$
	only as needed.

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

	* ldmain.c (multiple_definition): Disable relaxation if
	multiple symbol definitions are encountered - otherwise the
	linker could abort with an assertion failure.

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

	* mri.c: Fix formatting.

2000-09-07  H.J. Lu  <hjl@gnu.org>

	* configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
	* configure: Rebuild.

2000-09-07  H.J. Lu  <hjl@gnu.org>

	* Makefile.am (lexsup.o): Also depend on $(INCDIR)/demangle.h.
	* Makefile.in: Rebuild.

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

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Fix
	broken list handling.  Create __start_SECNAME and __stop_SECNAME
	when no place-holder.  Add some comments.  Test both SEC_CODE and
	SEC_READONLY for hold_text to prevent .rodata orphan poisoning.
	Handle case where no output section statement created.

2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>

	* configure.tgt (sh-*-linux*): Added.
	* Makefile.am: Added eshelf_linux and eshlelf_linux.
	* Makefile.in: Rebuilt.
	* emulparams/shelf_linux.sh: New file.
	* emulparams/shlelf_linux.sh: New file.

2000-09-06  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
	try shuffling sections when the orphan happens to be the place
	holder.  Keep count of unique section names generated so we speed
	the search for a new name.

2000-09-06  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new libtool.m4.

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

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.in: Regenerate.
	* po/ld.pot: Regenerate.

	* ldint.texinfo: Remove CVS revision marker - it foils local
	comparisons.

	* emultempl/ticoff.em: Remove extraneous comma.

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

	* emultempl/hppaelf.em (hppaelf_add_stub_section): Add SEC_RELOC
	to stub section flags.
	(hppa_for_each_input_file_wrapper): New.
	(hppa_lang_for_each_input_file): New.
	(lang_for_each_input_file): Define to call above.
	(multi_subspace): New.
	(hppaelf_finish): Pass multi_subspace to elf32_hppa_size_stubs.
	(PARSE_AND_LIST_PROLOGUE): Define.
	(PARSE_AND_LIST_LONGOPTS): Define.
	(PARSE_AND_LIST_OPTIONS): Define.
	(PARSE_AND_LIST_ARGS_CASES): Define.
	(hppaelf_finish): Call elf32_hppa_set_gp.
	(hppaelf_set_output_arch): Remove.
	(LDEMUL_SET_OUTPUT_ARCH): Remove.

	* emulparams/hppalinux.sh (ELFSIZE): Define.
	(MACHINE): Define.
	(OTHER_READONLY_SECTIONS): Define.
	(DATA_PLT): Define.
	(GENERATE_SHLIB_SCRIPT): Define.

	* ldlang.c: Add missing prototypes, and tidy others.  Change CONST
	to const throughout.  Change `void *' to `PTR' throughout.
	(lang_memory_default): Function is local to file, add `static'.

	* Makefile.am (ehppaelf.c): Depend on emultempl/elf32.em.
	(ehppalinux.c): Likewise.
	(earmelf.c): Likewise.
	(earmelf_linux.c): Likewise.
	(earmelf_linux26.c): Likewise.
	* Makefile.in: Regenerate.

	* ld.h (ld_config_type): Add unique_orphan_sections.
	* lexsup.c (OPTION_UNIQUE): Define.
	(ld_options): Add "--unique".
	(parse_args): Handle it.
	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
	search for an existing output section if unique_orphan_sections is
	set.  Make use of bfd_get_unique_section_name rather than
	duplicating code here.
	* ld.texinfo: Describe --unique.

	* lexsup.c (ld_options): Make split-by-reloc arg optional. Add
	optional arg to split-by-file.
	(parse_args): Handle them.
	* ld.texinfo: Update description of these options.
	* ldwrite.c (clone_section): Pass in the section name.  Replace
	local code with bfd_get_unique_section_name.
	(split_sections): Tidy code and comments.  Use a list traversal
	more appropriate to the list construction.  Handle cooked section
	sizes.  Split when split_by_reloc reached rather than exceeded.
	Track section size and split when split_by_file reached.  Fix
	link_order_tail (even though it's not used).
	(ldwrite): Modify condition for calling split_sections to suit
	changed split_by_reloc and split_by_file.
	* ldmain.c (main): Init config.split_by_reloc and
	config.split_by_file to -1.
	* ld.h (ld_config_type): Change split_by_reloc to unsigned.
	Change split_by_file to bfd_size_type.

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

	* configure.in: Increase version number to 2.10.91.
	* NEWS: Mention new ability to support removal of duplicate DWARF2
	debug information.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.

2000-09-02  Daniel Berlin <dberlin@redhat.com>

	* scripttempl/elf.sc: Add .gnu.linkonce.wi.* to .debug_info
	sections.
	* scripttempl/elf32var.sc: Ditto.
	* scripttempl/elfd10v.sc: Ditto.
	* scripttempl/elfd30v.sc: Ditto.
	* scripttempl/elfi370.sc: Ditto.
	* scripttempl/elfm68hc11.sc: Ditto.
	* scripttempl/elfm68hc12.sc: Ditto.
	* scripttempl/elfi386beos.sc: Ditto.
	* scripttempl/v850.sc: Ditto.

2000-08-31  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Include libtool and gettext macros from the
	top level.
	* aclocal.m4, configure: Rebuilt.

2000-08-25  Nick Clifton  <nickc@redhat.com>

	* ldlang.c (open_output): When choosing the target for a
	particular endianness, do nothing if the target is not
	supported.

2000-08-25  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't
	check -rpath nor LD_RUN_PATH for cross link.
	* ld.texinfo: Document the change.

2000-08-24  Hans-Peter Nilsson  <hp@axis.com>

	* NEWS: Mention support for CRIS.

2000-08-23  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Get
	the current runpath list from bfd_elf_get_runpath_list ()
	before search.

2000-08-22  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search
	the DT_RPATH/DT_RUNPATH entries for DT_NEEDED after
	LD_LIBRARY_PATH for native linker. Display the needed DSO if
	trace_file_tries is non-zero.
	(gld${EMULATION_NAME}_try_needed): Report the needed DSO found
	if trace_file_tries is non-zero.

	* ld.texinfo: Document the usage of DT_RPATH/DT_RUNPATH.
	* NEWS: Mention it.

2000-08-14  Jason Eckhardt  <jle@cygnus.com>

	* NEWS: Mention i860 support.

2000-08-14  Andreas Schwab  <schwab@suse.de>

	* scripttempl/elf.sc: Fix last change to use correct comment
	syntax.

2000-08-10  Geoff Keating  <geoffk@cygnus.com>

	* scripttempl/elf.sc: Add a comment giving the correspondence
	between sections, per-datum sections, and linkonce sections.  Make
	the comment true even for .bss, .sdata, .sdata2, .sbss, and
	.sbss2.

2000-08-10  Jason Eckhardt  <jle@cygnus.com>

	* emulparams/elf32_i860.sh: New file.
	* configure.tgt: Recognize new target i860-stardent-{sysv4*|elf*}.
	* Makefile.am (ALL_EMULATIONS): Add eelf32_i860.o.
	(eelf32_i860.c): New rule.
	* Makefile.in: Regenerate.

2000-08-10  Nick Clifton  <nickc@cygnus.com>

	* emulparams/mipspe.sh (ENTRY): Add definition.

2000-08-08  Peter Jeremy  <peter.jeremy@alcatel.com.au>

	* emultempl/elf32.em (_after_close): Refer to -rpath not --rpath
	in error message.

2000-08-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* scripttempl/elfm68hc11.sc: Define __bss_size symbol to indicate
	the final size of .bss section.
	* scripttempl/elfm68hc12.sc: Likewise.

2000-08-04  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Rename to
	gld${EMULATION_NAME}_parse_args for consistency.  Combine
	lastoptind and prevoptind vars, and keep track of last optind.
	(gld_${EMULATION_NAME}_list_options): Rename to
	gld${EMULATION_NAME}_list_options.

2000-08-03  Rodney Brown  <RodneyBrown@pmsc.com>

	* configure.tgt: Select targ_emul=elf_i386 for Unixware 7
	(i586-sco-sysv5uw7.1.0).

2000-07-27  H.J. Lu  <hjl@gnu.org>

	* emulparams/elf64alpha.sh (PARSE_AND_LIST_ARGS): Removed.
	(PARSE_AND_LIST_PROLOGUE): New.
	(PARSE_AND_LIST_LONGOPTS): Likewise.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Likewise.
	(PARSE_AND_LIST_EPILOGUE): Likewise.

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

	* emultempl/armelf.em: Elide functions common to elf32.em,
	ie. most of the file.
	(arm_elf_after_open): New.  Do arm specific things then call
	gld${EMULATION_NAME}_after_open.
	(arm_elf_before_allocation): New.  Call
	gld${EMULATION_NAME}_before_allocation then do arm specifics.
	(PARSE_AND_LIST_PROLOGUE): Define.
	(PARSE_AND_LIST_SHORTOPTS): Define.
	(PARSE_AND_LIST_LONGOPTS): Define.
	(PARSE_AND_LIST_OPTIONS): Define.
	(PARSE_AND_LIST_ARGS_CASES): Define.
	(LDEMUL_AFTER_OPEN): Define.
	(LDEMUL_BEFORE_ALLOCATION): Define.
	(LDEMUL_BEFORE_PARSE): Define.
	(LDEMUL_FINISH): Define.

	* emultempl/hppaelf.em: Similarly zap most of this file.
	(hppaelf_add_stub_section): Prototype.
	(hppaelf_layaout_sections_again): Prototype.
	(hook_in_stub): Prototype.
	(LDEMUL_SET_OUTPUT_ARCH): Define.
	(LDEMUL_FINISH): Define.
	(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.

	* emulparams/armelf.sh (TEMPLATE_NAME): Use elf32.
	(EXTRA_EM_FILE): New.
	* emulparams/armelf_linux.sh: Likewise.
	* emulparams/armelf_linux26.sh: Likewise.
	* emulparams/hppalinux.sh: Likewise.
	* emulparams/hppaelf.sh: Likewise.
	(NOP): Define.

	* emultempl/elf32.em: Fix formatting.
	(EXTRA_EM_FILE): Source it.
	(LDEMUL_BEFORE_PARSE, LDEMUL_SYSLIB, LDEMUL_HLL,
	LDEMUL_AFTER_PARSE, LDEMUL_AFTER_OPEN, LDEMUL_AFTER_ALLOCATION,
	LDEMUL_SET_OUTPUT_ARCH, LDEMUL_CHOOSE_TARGET,
	LDEMUL_BEFORE_ALLOCATION, LDEMUL_GET_SCRIPT, LDEMUL_FINISH,
	LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS,
	LDEMUL_OPEN_DYNAMIC_ARCHIVE, LDEMUL_PLACE_ORPHAN,
	LDEMUL_SET_SYMBOLS, LDEMUL_PARSE_ARGS, LDEMUL_UNRECOGNIZED_FILE,
	LDEMUL_LIST_OPTIONS, LDEMUL_RECOGNIZED_FILE,
	LDEMUL_FIND_POTENTIAL_LIBRARIES): New shell vars.  Add code to
	allow functions in this file to be overridden.
	(PARSE_AND_LIST_SHORTOPTS): Handle it.

	* emultempl/m68kcoff.em: Include ldfile.h before ldemul.h.

	* emultempl/elf32.em: Reorganize file.

2000-07-27  Ivan Kokshaysky  <ink@jurassic.park.msu.ru>

	* emulparams/elf64alpha.sh: Implement "-taso" emulation
	specific option to fit 64-bit executable in the lower
	31-bit address range.  This is done by changing start
	address of .interp (the very first section of executable)
	and then setting EF_ALPHA_32BIT elf header flag.

2000-07-21  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* emultempl/m68kcoff.em: New file.
	* emulparams/m68kcoff.sh (TEMPLATE_NAME): Use m68kcoff template.
	* Makefile.am (em68kcoff.c): Depend on m68kcoff.em rather than
	generic.em.
	* Makefile.in: Regenerate.

2000-07-20  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (longopts): Duplicate "disable-new-dtags"
	and "disable-new-dtags" to stop getopt from treating -d/-e as
	abbreviations for these options.

2000-07-20  H.J. Lu  <hjl@gnu.org>

	* ld.texinfo: Add documentation for --disable-new-dtags and
	--enable-new-dtags.

	* ldmain.c (main): Initialize link_info.new_dtags to false.

	* emultempl/elf32.em (gld_${EMULATION_NAME}_parse_args): Add
	--disable-new-dtags and --enable-new-dtags.
	(gld_${EMULATION_NAME}_list_options): Likewise.

2000-07-05  Kenneth Block  <krblock@computer.org>

	* ld/lexsup.c: Add optional style to demangle switch
	* ld/ld.texinfo: Document optional style to demangle switch.

2000-07-20  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
	ecrislinux.o.
	(ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
	Regenerate dependencies.
	* Makefile.in: Rebuild.
	* configure.tgt (cris-*-*): New target.
	* emulparams/crisaout.sh, emulparams/criself.sh,
	emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
	* po/POTFILES.in, po/ld.pot: Regenerate.

2000-07-20  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld_${EMULATION_NAME}_list_options):
	Print out ignored -z options.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
	(PARSE_AND_LIST_PROLOGUE): New.
	(PARSE_AND_LIST_LONGOPTS): Likewise.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Likewise.

	* ldmain.c (main): Clear link_info.flags and link_info.flags_1.

	* lexsup.c (ld_options): Comment out 'z'.
	(parse_args): Likewise.

	* emultempl/elf32.em: Include "elf/common.h".
	(gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
	options.
	(gld_${EMULATION_NAME}_list_options): Likewise.

	* ld.texinfo: Add documentation for the recognized -z options.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Call
	bfd_elf_set_dt_needed_soname ().

2000-07-18  DJ Delorie  <dj@cygnus.com>

	* pe-dll.c (pe_dll_id_target): check object target name also

2000-07-18  Hans-Peter Nilsson  <hp@axis.com>

	* scripttempl/elf.sc (.init): Only do ${INIT_START} and
	${INIT_END} if relocating.
	(.fini): Likewise ${FINI_START} and ${FINI_END}.

2000-07-16  Charles Wilson  <cwilson@ece.gatech.edu>

	* src/ld/emultempl/pe.em (gld_*_open_dynamic_archive): New search
	order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
	foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
	errors introduced by the old dynamic lib search order.

2000-07-17  DJ Delorie  <dj@cygnus.com>

	* pe-dll.c (process_def_file): auto-export data items also
	(pe_process_import_defs): also see if _imp_ form needed

2000-07-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* pe-dll.c (make_one): fix a typo in the __imp_ name decoration
	for dll import libraries

2000-07-12  Mark Elbrecht  <snowball3@bigfoot.com>

	* scripttempl/i386go32.sc: Support the g++ attribute init_priority in
	gcc 2.95.2 and later.

2000-07-11  Kazu Hirata  <kazu@hxi.com>

	* ldfile.c (ldfile_try_open_bfd): Output '\n' after an error
	message.

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

	* ldemul.h (struct lang_input_statement_struct): Remove forward
	declaration.
	(struct search_dirs): Likewise.
	* ldfile.h (struct lang_input_statement_struct): Likewise.
	Protect file from multiple inclusion.
	* ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Move file_chain
	declaration from macro to file scope.

	* ldemul.c: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this order.
	* ldgram.y: Likewise here.
	* ldlang.c: And here.
	* ldmain.c: And here.
	* mpw-elfmips.c: And here.
	* mpw-eppcmac.c: And here.
	* emultempl/aix.em: And here.
	* emultempl/armcoff.em: And here.
	* emultempl/armelf.em: And here.
	* emultempl/armelf_oabi.em: And here.
	* emultempl/beos.em: And here.
	* emultempl/elf32.em: And here.
	* emultempl/hppaelf.em: And here.
	* emultempl/linux.em: And here.
	* emultempl/lnk960.em: And here.
	* emultempl/pe.em: And here.
	* emultempl/sunos.em: And here.
	* mpw-esh.c: And here. Include ldexp.h and ldlang.h too.
	* mpw-idtmips.c: Ditto.
	* emultempl/generic.em: Ditto.
	* emultempl/gld960.em: Ditto.
	* emultempl/gld960c.em: Ditto.
	* emultempl/mipsecoff.em: Ditto.
	* emultempl/ticoff.em: Ditto.
	* emultempl/vanilla.em: Ditto.

	* pe-dll.c: Include ldfile.h
	* ldver.c: Include ldexp.h, ldlang.h, ldfile.h

	* mpw-elfmips.c: (gldelf32ebmip_before_allocation): Add missing
	arguments to bfd_elf32_size_dynamic_sections call.
	(gldelf32ebmip_place_orphan): Add missing arguments to
	lang_leave_output_section_statement call.

2000-07-10  H.J. Lu  <hjl@gnu.org>

	* emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
	DLL_SUPPORT.
	(strhash): Likewise.
	(compute_dll_image_base): Likewise.
	(pe_undef_found_sym): Likewise.
	(pe_undef_cdecl_match): Likewise.
	(gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
	argument "arch" with ATTRIBUTE_UNUSED.

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

	* configure.tgt: Remove extraneous hppa*-*-linux-gnu*.

	From  Ryan Bradetich  <rbradetich@uswest.net>
	* ldwrite.c (SSIZE): Remove to cure macro redefinition warning.

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

	Changes to create multiple linker stubs, positioned immediately
	before the section where they are required.
	* emultempl/hppaelf.em: Include elf32-hppa.h.
	(stub_sec, file_chain): Delete.
	(hppaelf_create_output_section_statements): Don't make a stub
	section here.
	(hook_stub_info): New struct.
	(hook_in_stub): New function.
	(hppaelf_add_stub_section): New function.
	(hppaelf_finish): Do nothing for relocateable links.  Modify the
	call to elf32_hppa_size_stubs.  Move code for updating section
	layout from here...
	(hppaelf_layaout_sections_again): ..to here, a new function.

	* emultempl/hppaelf.em (hppaelf_delete_padding_statements): Fix
	broken list handling.  Pass in a pointer to the list.
	(hppaelf_finish): Update call to hppaelf_delete_padding_statements
	for above changes.
	(hppaelf_before_parse): Prototype.
	(hppaelf_set_output_arch): Prototype.
	(hppaelf_create_output_section_statements): Prototype.
	(hppaelf_delete_padding_statements): Prototype.
	(hppaelf_finish): Prototype.

	Merge from elf32.em
	* emultempl/hppaelf.em: Include ctype.h.
	(struct orphan_save): New.
	(gld${EMULATION_NAME}_place_orphan): New.
	(output_rel_find): New.
	(hppaelf_get_script): Update from elf32.em.
	(ld_hppaelf_emulation): Rename to ld_${EMULATION_NAME}_emulation.
	Change emulation_name field to "${EMULATION_NAME}".  Add
	gld${EMULATION_NAME}_place_orphan.

	* Makefile.am (ALL_EMULATIONS): Reinstate ehppaelf.o,  add
	ehppalinux.o, sort it.  Regenerate dependencies.
	(ehppalinux.c): Depend on hppaelf.em
	* Makefile.in: Regenerate.

	* configure.tgt: targ_emul=hppalinux for hppa*linux

	* emulparams/hppalinux.sh: New.
	* emulparams/hppaelf.sh (TARGET_PAGE_SIZE): Write in hex.

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

	* lexsup.c (parse_args): Copy section name.

2000-07-07  Charles Wilson  <cwilson@ece.gatech.edu>

	* emultempl/pe.em: institute the following search order for
	dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
	libs), libfoo.dll, foo.dll (link direct to dll).  Fall back to
	static lib (libfoo.a) if none of the above are found.

2000-07-07  Mumit Khan  <khan@xraylith.wisc.edu>

	* emultempl/pe.em (pe_enable_auto_image_base): New variable.
	(longopts): New --{enable,disable}-auto-image-base options.
	(gld_${EMULATION_NAME}_list_options): Document.
	(gld_${EMULATION_NAME}_parse): Handle.
	(strhash): New static function.
	(compute_dll_image_base): New static function.
	(gld_${EMULATION_NAME}_set_symbols): Use.

2000-07-05  DJ Delorie  <dj@redhat.com>

	* MAINTAINERS: new

2000-07-01  Koundinya K  <kk@ddeorg.soft.net>

	* configure.tgt: Add traditional mips (mips*-*-sysv4*) target.
	* emulparams/elf32btsmip.sh: New file.
	* Makefile.am: Add traditional mips target.
	* Makefile.in: Rebuild.

2000-07-01  H.J. Lu  <hjl@gnu.org>

	* Makefile.am (EXTRA_ld_new_SOURCES): Set to deffilep.y for
	automake to use YLWRAP.
	* Makefile.in: Rebuild.

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

	* Makefile.am (DEP): Fix 2000-06-22.  grep after running dep.sed
	(CLEANFILES): Add DEPA.
	* Makefile.in: Regenerate.

2000-06-30  Timothy Wall  <twall@ppc>

	* scripttempl/tic54xcoff.sc: PAGE N is not implemented, so encode
	the page in the upper octet of the address.

2000-06-26  Marek Michalkiewicz  <marekm@linux.org.pl>

	* emulparams/avrmega161.sh (ARCH): Change to avr:5.

2000-06-24  Alan Modra  <alan@linuxcare.com.au>

	* NEWS: arm-elf does --gc-sections too.

2000-06-22  Alan Modra  <alan@linuxcare.com.au>

	* Makefile.am (DEP): grep for leading `/' in DEP1, and fail if we
	find one.
	* Makefile.in: Regenerate.

2000-06-21  H.J. Lu  <hjl@gnu.org>

	* Makefile.am: Rebuild dependency.
	* Makefile.in: Rebuild.

2000-06-20  H.J. Lu  <hjl@gnu.org>

	* Makefile.am: Rebuild dependency.
	* Makefile.in: Rebuild.

2000-06-20  Timothy Wall  <twall@cygnus.com>

	* scripttempl/tic54xcoff.sc: New.
	* ldlang.c (wild_doit): Propagate SEC_BLOCK flag.
	* gen-doc.texi: Add flag for TI COFF.
	* ld.texinfo: Add documentation for TI COFF handling switches.
	* emultempl/ticoff.em: New. TI COFF handling.
	* configure.tgt: Add tic54x target.
	* Makefile.am: Add tic54x target.
	* Makefile.in: Ditto.

2000-06-20  Alan Modra  <alan@linuxcare.com.au>

	* ldmain.c (set_scripts_dir): Correct pointer comparison when
	checking for backslashes.

2000-06-19  Alan Modra  <alan@linuxcare.com.au>

	* NEWS: Move entries not in 2.10 above "Changes in version 2.10".

2000-06-18  Alan Modra  <alan@linuxcare.com.au>

	* NEWS: Update list of targets supporting --gc-sections.

	* scripttempl/elf.sc: KEEP .eh_frame contents.
	* scripttempl/elfd30v.sc: Same here.

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

	* Makefile.am (ALL_EMULATIONS): Added new emulation for m68hc12
	and m68hc11 (elf).
	* Makefile.in: Rebuild.
	* configure.tgt: Recognize m68hc12 and m68hc11.
	* scripttempl/elfm68hc12.sc: New file.
	* emulparams/m68hc12elfb: New emulation.
	* emulparams/m68hc12elf: New emulation.
	* emulparams/m68hc11elfb.sh: New file.	User configurable emulation
	(includes a memory.x script to define the ROM and RAM banks).
	* scripttempl/elfm68hc11.sc, emulparams/m68hc11elf.sh:
	New configuration files for support of Motorola 68hc11

2000-06-15  Alan Modra  <alan@linuxcare.com.au>

	* ldmain.c (main): Only change SEC_READONLY for final link.

2000-06-13  H.J. Lu  <hjl@gnu.org>

	* configure: Regenerate.

2000-06-08  David O'Brien  <obrien@FreeBSD.org>

	* configure.in (VERSION): Update to show this is the CVS mainline.

2000-06-07  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
	input objects to be ECOFF.
	(check_sections): einfo takes %B, not %P, to print a BFD name.

2000-06-05  Michael Matz <matz@ifh.de>

	* ldgram.y (vers_defns): Handle 'extern "C++" { ... }' in
	version scripts.

	* ldlex.l (V_IDENTIFIER): Accept `::' in symbols.

2000-05-23  Marek Michalkiewicz  <marekm@linux.org.pl>

	* emulparams/avr1200.sh (STACK): Define as 0.
	* emulparams/avr23xx.sh (STACK): Define as last internal SRAM address.
	* emulparams/avr4433.sh (STACK): Likewise.
	* emulparams/avr44x4.sh (STACK): Likewise.
	* emulparams/avr85xx.sh (STACK): Likewise.
	* emulparams/avrmega103.sh (STACK): Likewise.
	* emulparams/avrmega161.sh (STACK): Likewise.
	* emulparams/avrmega603.sh (STACK): Likewise.
	* scripttempl/elf32avr.sc (__data_start): Define for gcrt1.
	(__stack): Define from ${STACK} for main().

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

	* Makefile.am: Update dependencies with "make dep-am"
	* Makefile.in: Regenerate.

2000-05-26  Eli Zaretskii  <eliz@is.elta.co.il>

	* ldmain.c: Include filenames.h.
	(set_scripts_dir): Support backslashes in program name.

2000-05-22  Igor Shevlyakov  <igor@windriver.com>

	* ldmain.c (main): When deciding if ".text" section should be
	read-only, don't forget to reset SEC_READONLY because it
	could be already set.

2000-05-22  Thomas de Lellis  <tdel@windriver.com>

	* ld.1: Add documentation for new command line option:
		--section-start <sectionname>=<sectionorg>
	This is a generic version of -Ttext etc. which accepts
	any section name as a parameter instead of just text/data/
	bss.
	* ld.texinfo: More docs.
	* NEWS: More docs.
	* lexsup.c: (parse_args): Recognize new command line option.
	(ld_options): Add new option.

2000-05-18  H.J. Lu  <hjl@gnu.org>

	* lexsup.c (parse_args): `i' == `r', not `q'.

Thu May 18 10:47:57 2000  Jeffrey A Law  (law@cygnus.com)

	* configure.tgt (hppa*64*-*-*): Enable PA64 target.

2000-05-17 S. Bharadwaj Yadavalli  <sby@scrugs.lkg.dec.com>
	      Rick Gorton	   <gorton@scrugs.lkg.dec.com>

	Add support for '-q' == '--emit-relocs' switch.
	* ldmain.c (main): Default to false.
	* lexsup.c (parse_args): Turn on emitrelocations flag if set.
	* NEWS: Describe the emitrelocations switch.
	* ld.texinfo: Describe the emitrelocations switch.

2000-05-16  Charles Wilson <cwilson@ece.gatech.edu>

	* ld/emultempl/pe.em (_open_dynamic_archive): New function: Search
	the library path for "foo.dll" and "libfoo.dll" dynamic libraries
	before searching for 'libfoo.a' in response to a '-Bdynamic -lfoo'
	link options.

2000-05-15  David O'Brien  <obrien@FreeBSD.org>

	* lexsup.c (parse_args): Update the year in the copyright notice.

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

	* ld.h (gettext, dgettext, dcgettext, textdomain, bindtextdomain):
	Replace defines with those from intl/libgettext.h to quieten gcc
	warnings.

2000-05-10  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (open_input_bfds): Don't load the same file within
	a group again if the whole archive has been loaded already.

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

	From Ulf Carlsson <ulfc@engr.sgi.com> and Andreas Jaeger <aj@suse.de>
	* lexsup.c (set_section_start): Use bfd_scan_vma rather than
	strtoul.

Mon May  1 17:34:34 2000  Jim Wilson  <wilson@cygnus.com>

	* configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.

	* configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
	host "ia64-*-linux-gnu*".

2000-04-29  Andreas Jaeger  <aj@suse.de>

	* ld.h: Correctly check GCC version.

Tue Apr 25 11:20:43 2000  Jeffrey A Law  (law@cygnus.com)

	* Makefile.am: Add PA64 support.  Add missing dependencies for
	PA32 elf support.
	* Makefile.in: Rebuilt.
	* configure.tgt: Add PA64 support (currently disabled).

2000-04-25  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Delete.
	(output_rel_find): New function.
	(hold_section, hold_use): Delete.
	(hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
	hold_interp): Make local to place_orphan.
	(gld${EMULATION_NAME}_place_orphan): Use lang_output_section_find
	rather than place_section to find possible previous use of orphan.
	Similarly find the place-holder output sections.  Use returned
	value from lang_enter_output_section_statement rather than calling
	lang_output_section_statement_lookup.
	* emultempl/armelf.em: Same here.
	* emultempl/pe.em: Similar to above, but no need for output_rel_find.

	* ldlang.c (lang_enter_output_section_statement): Return output
	section statement.
	* ldlang.h (lang_enter_output_section_statement): Change
	declaration too.

	* ldlang.h (lang_output_section_statement): Export it.
	* ldlang.c (lang_output_section_statement): Ditto.

2000-04-24  Nick Clifton  <nickc@cygnus.com>

	* ld.texinfo (Output Section Data): Add note that section data
	commands cannot appear outside of section directives.

2000-04-2  Matthew Green  <mrg@cygnus.com>

	* configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.

Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>

	* Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
	(eelf64_ia64.c): New rule.
	* Makefile.in: Rebuild.
	* configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
	* emulparams/elf64_ia64.sh: New file.

2000-04-21  Richard Henderson  <rth@cygnus.com>

	* scripttempl/elfd30v.sc: Place .gcc_except_table.

2000-04-19  Alan Modra  <alan@linuxcare.com.au>

	* dep-in.sed: Match space at start of file name, not at end.

2000-04-18  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Call
	lang_leave_output_section_statement () after calling
	lang_enter_output_section_statement ().
	* emultempl/armelf.em: Likewise.

2000-04-18  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (struct orphan_save): Add section field.
	(gld${EMULATION_NAME}_place_orphan): Use above to keep sections in
	better order, and place first orphan section as we did before the
	2000-04-12 patch.  Ignore ~SEC_ALLOC sections when choosing place.
	Don't call make_bfd_section here, let wild_doit do the job for us.
	Don't build a statement list when we'll only throw it away.
	* emultempl/armelf.em: Ditto.
	* emultempl/pe.em: Similarly.

2000-04-14  Geoff Keating  <geoffk@cygnus.com>

	* scripttempl/elfppc.sc: Remove.
	* emulparams/elf32ppc.sh: Use elf.sc.
	* emulparams/elf32lppc.sh: Use elf.sc.
	* emulparams/elf32ppclinux.sh: Use elf.sc.
	* emulparams/elf32ppcsim.sh: New file.
	* emulparams/elf32lppcsim.sh: New file.
	* Makefile.am: Update dependencies.  Add elf32ppcsim ad elf32lppcsim.
	(ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
	* Makefile.in: Regenerate.
	* configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.

2000-04-14  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Process
	~SEC_ALLOC sections too.  Init start address of debug sections.
	* emultempl/armelf.em (gld${EMULATION_NAME}_place_orphan): Ditto.
	* emultempl/pe.em (gld${EMULATION_NAME}_place_orphan): Ditto.
	Also set all relocateable section start addresses.

2000-04-13  Geoff Keating  <geoffk@cygnus.com>

	* scripttempl/elf.sc: Add support for .sbss2 and .sdata2 sections.
	Add new BSS_PLT variable for when .plt need not be contained in
	the file.  Move _etext so that it is also after .fini, and provide
	both etext and _etext with a leading underscore.  Mark the start
	and end of .sbss.

2000-04-12  Alan Modra  <alan@linuxcare.com.au>

	* emultempl/elf32.em (struct orphan_save): New.
	(hold_text, hold_rodata, hold_data, hold_bss, hold_rel,
	hold_interp): Make them struct orphan_save.
	(gld${EMULATION_NAME}_place_section): Modify for new hold_*.
	(gld${EMULATION_NAME}_place_orphan): Add new orphan sections to
	the end of the relevant section list.  Also add associated section
	statements to the end of any previous orphan statements.
	* emultempl/armelf.em: Similarly.
	* emultempl/pe.em: Similarly.

2000-04-11  Alan Modra  <alan@linuxcare.com.au>

	* ld.texinfo (Simple Example): Remove extraneous paragraph.

Fri Apr  7 15:56:57 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure.in (WARN_CFLAGS): Set to -W -Wall by default.  Add
	--enable-build-warnings option.
	* Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
	* Makefile.in, configure: Re-generate.

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

	* po/ld.pot: Regenerate.

	* lexsup.c (help): Restore translated part of bug string.

	* Makefile.am (MKDEP): Use gcc -MM rather than mkdep.
	(DEP): Quote when passing vars to sub-make.  Add warning message
	to end.
	(DEP1): Rewrite for "gcc -MM".
	(CLEANFILES): Add DEP2.
	Update dependencies.
	* Makefile.in: Regenerate.

2000-04-03  Alan Modra  <alan@linuxcare.com.au>

	* ld.h: #include "bin-bugs.h"
	* lexsup.c (help): Use REPORT_BUGS_TO.

2000-03-27  Denis Chertykov  <denisc@overta.ru>

	* configure.tgt (avr-*-*): New target support.
	* Makefile.am: Likewise.
	* scripttempl/elf32avr.sc: New script file.
	* emulparams/avr1200.sh: New file.
	* emulparams/avr23xx.sh: New file.
	* emulparams/avr4433.sh New file.
	* emulparams/avr44x4.sh New file.
	* emulparams/avr85xx.sh New file.
	* emulparams/avrmega103.sh New file.
	* emulparams/avrmega161.sh New file.
	* emulparams/avrmega603.sh New file.
	* Makefile.in: Regenerate.

2000-03-09  Andreas Jaeger  <aj@suse.de>

	* Makefile.am (check-DEJAGNU): Also unset LANG.
	* Makefile.in: Rebuild.

2000-03-06  Ian Lance Taylor  <ian@zembu.com>

	* ldfile.c (ldfile_try_open_bfd): Don't crash if we see an empty
	archive.

2000-03-02  H.J. Lu  <hjl@gnu.org>

	* emulparams/elf32mcore.sh: Include "getopt.h".

2000-03-01  Ian Lance Taylor  <ian@zembu.com>

	* configure.tgt: Remove *-*-aout, *-*-coff, and *-*-netware.

2000-03-01  H.J. Lu  <hjl@gnu.org>

	* emulparams/mipspe.sh: Add SUBSYSTEM and INITIAL_SYMBOL_CHAR.
	* emulparams/shpe.sh: Likewise.

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

	* pe-dll.c: Remove unused variables and add ATTRIBUTE_UNUSED
	to unused parameters.

	* emultempl/pe.em: Add "#ifdef DLL_SUPPORT" around static
	functions only used by DLL code.
	(_place_orphan): Initialise 'dollar'.

2000-03-01  H.J. Lu  <hjl@gnu.org>

	* ldmain.c (undefined_symbol): Take one more arg, fatal, to
	indicate if the undefined symbol is a fatal error or not.
	Don't delete the output file if "fatal" is false.

2000-02-29  H.J. Lu  <hjl@gnu.org>

	* Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)".
	Set LC_COLLATE and LC_ALL to null and export them. It is for
	sort which expects the C locale.
	Add $(LIBS) to all $(HOSTING_LIBS).
	* Makefile.in: Rebuild.

2000-02-29  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* emultempl/{aix.em, armcoff.em, armelf.em, armelf_oabi.em,
	beos.em, elf32.em, generic.em, gld960.em, gld960c.em, hppaelf.em,
	linux.em, lnk960.em, mipsecoff.em, sunos.em, vanilla.em}
	(ld_emulation_xfer_struct): Add missing NULL initialiser for
	find_potential_libraries.

2000-02-28  Jim Blandy  <jimb@redhat.com>

	* ldgram.y (exclude_name_list): Don't require a comma to separate
	list entries; the lexer considers commas to be valid part of a
	filename, so in something like `foo, bar' the comma is considered
	part of the first filename, `foo,'.
	* ld.texinfo: Update section on EXCLUDE_FILE lists.

2000-02-27  Loren J. Rittle  <ljrittle@acm.org>

	* configure.host: Added HOSTING_CRT0, HOSTING_LIBS for
	host "i[3456]86-*-freebsdelf*".

2000-02-27  Mark Elbrecht  <snowball3@bigfoot.com>

	* scripttempl/i386go32.sc: Move misplaced semicolons.

2000-02-25  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.am (ALL_EMULATIONS): Remove ehppaelf.o.
	(ALL_64_EMULATIONS): Remove eelf64hppa.o.
	(eelf64hppa.c, ehppaelf.c): Remove targets.
	* Makefile.in: Rebuild.

2000-02-25  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* configure.tgt (targ_extra_ofiles): Enable elf64_sparc on
	GNU/Linux/sparc, but keep the default as 32.

	* configure.tgt: Enable elf64_sparc on Solaris7+/sparc.  And make
	it default if sparcv9 or sparc64.

2000-02-24  Nick Clifton  <nickc@cygnus.com>

	* Makefile.am: Add rules to build emipspe.o and earmpe.o.
	* Makefile.in: Regenerate.
	* configure.tgt: Add targets for arm-wince, sh-pe and mips-pe.

	* ldemul.h (ld_emulation_xfer_struct): Add new field:
	find_potential_libraries.
	* ldemul.c (ldemul_find_potential_libraries): New function.

	* ldfile.c (ldfile_open_file_search): Allow function to be
	exported.
	(ldfile_open_file): Call ldemul_find_potential_libraries.
	* ldfile.h: Add prototype for ldfile_open_file_search.

	* pe-dll.c: Add support for ARM, MIPS and SH targets.

	* emulparams/mipspe.sh: New file.  Parameters for mips-pe target.
	* emulparams/shpe.sh: New file.  Parameters for sh-pe target.

	* emultempl/pe.em: Add support for ARM, MIPS and SH DLLs.
	(gld_X_find_potential_libraries): New function.  Search for
	libraries called "*.lib".

	* scriptempl/pe.sc: Add .pdata section.

2000-02-23  Richard Henderson  <rth@cygnus.com>

	* scripttempl/elfd10v.sc: Remove dynamic linking hooks.
	Add and use memory regions.

2000-02-23  Linas Vepstas (linas@linas.org)

	* emulparams/elf32i370.sh, scripttempl/elfi370.sc: New.

	* Makefile.am: Add support for Linux/IBM 370.
	* configure.tgt: Likewise.

	* Makefile.in: Regenerate.

2000-02-21  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* ldlang.c (print_input_section, print_data_statement,
	print_reloc_statement, print_padding_statement, insert_pad,
	size_input_section, lang_check_section_addresses,
	lang_size_sections, lang_do_assignments, lang_set_startof,
	lang_one_common): Change `opb' to unsigned.
	(lang_do_assignments): Also change `size' to unsigned.

2000-02-16  Richard Henderson  <rth@cygnus.com>

	* scripttempl/elf.sc: Place OTHER_PLT_RELOC_SECTION.

2000-02-16  Timothy Wall  <twall@cygnus.com>

	* mri.c (mri_draw_tree): Add default LMA region argument to call
	to lang_leave_output_section_statement.
	* ldlang.h: Update prototypes with LMA region arguments.
	* ldlang.c (lang_size_sections): Encapsulate region bounds
	checking in os_check_region call.
	(os_check_region): New function.
	(lang_output_section_statement_lookup): Initialize lma_region.
	(lang_leave_output_section_statement): Add LMA region argument.
	(lang_leave_overlay): Ditto.
	* ldgram.y: Handle LMA region syntax.
	* ld.texinfo (Output Section Description): Describe LMA region usage.
	* emultempl/armelf.em (gld$place_orphan): Add default value for
	lma region in call to lang_leave_output_section_statement.
	* emultempl/elf32.em (gld$place_orphan): Add default value for
	lma region in call to lang_leave_output_section_statement.
	* emultempl/pe.em (gld$place_orphan): Add default value for
	lma region in call to lang_leave_output_section_statement.


2000-02-04  Timothy Wall  <twall@redhat.com>

	* ldlang.c (lang_check_section_addresses): Use bytes instead of
	octets when calculating section end addresses.

2000-02-04  Timothy Wall  <twall@redhat.com>

	* ldlang.c (lang_size_sections): Fix typo in ALIGN_N invocation.

2000-02-03  Timothy Wall <twall@redhat.com>

	* ld/ldexp.c (fold_name): Make SIZEOF operator return byte count, not
	octet count.
	* ld/ldlang.c (print_input_section, print_data_statement,
	print_reloc_statement, print_padding_statement): Print target
	address values and section sizes as bytes, not octets.
	(insert_pad) Calculate padding size in octets, and adjust "dot"
	by bytes.
	(size_input_section) Always adjust "dot" by bytes, not octets.
	(lang_check_section_addresses, lang_do_assignments) Adjust
	"dot" by bytes, not octets.  Use the larger of the directive size
	or octets_per_byte for the number of octets actually allocated in
	the output section.
	(lang_set_startof) Make sure STARTOF returns a target address.
	(lang_one_common) Record size changes in octets.
	(lang_abs_symbol_at_end_of) Section end symbol's value is
	recorded in target bytes.
	* ld.texinfo:   Updated description of BYTE, SHORT, LONG, etc.
	to be clear about behavior when an octet is smaller than one byte.

2000-01-27  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* ldcref.c (output_cref): Don't pass message strings to printf
	as format arg.
	Update copyright.

	* ldmisc.c (vfinfo): Same here.
	Update copyright.

2000-01-23  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* emultempl/{armcoff.em,armelf.em,armelf_oabi.em,beos.em,
	generic.em,gld960.em,gld960c.em,hppaelf.em,linux.em,lnk960.em,
	mipsecoff.em,sunos.em,vanilla.em} (ld_emulation_xfer_struct):
	Add missing NULL initialisers, and comments.

	* testsuite/ld-srec/sr3.cc (__rethrow): New.

2000-01-21  Nick Clifton  <nickc@cygnus.com>

	* ldlang.c (lang_size_sections): Fix typo in comment.

2000-01-18  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (lang_size_sections): Also update the current
	address of a region if the SEC_NEVER_LOAD bit is not set.

2000-01-10  Philip Blundell  <pb@futuretv.com>

	* configure.tgt (arm*-*-conix*): New target.

2000-01-07  Nick Clifton  <nickc@cygnus.com>

	* ld.texinfo (Options): Remind users to preceed linker command
	line switches with -Wl, (or whatever is appropriate) if it is
	being invoked by a comnpiler driver program.
	Fix description of the behaviour of the -n command line switch.

Wed Jan  5 08:02:12 2000  Catherine Moore  <clm@cygnus.com>

	* ld.h (wildcard_spec):  Change exclude_name to exclude_name_list.
	(name_list): New.
	* ld.texinfo (EXCLUDE_FILE): Update documentation.
	* ldgram.y (wildcard_spec): Support a list of excluded_files.
	(exclude_name_list): New.
	ldlang.c (walk_wild_section): Support list of excluded files.
	(print_wild_statement): Likewise.
	(lang_add_wild): Likewise.
	* ldlang.h (lang_wild_statement_type): Likewise.
	* scripttempl/elf.sc (OTHER_EXCLUDE_FILES): Support.

2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>

	* pe-dll.c (pe_dll_warn_dup_exports): New variable.
	(process_def_file): Use.
	(pe_dll_compat_implib): New variable.
	(make_one): Use.

	* pe-dll.h: Add exports of pe_dll_warn_dup_exports and
	pe_dll_compat_implib.

	* emultempl/pe.em (longopts): Add warn-duplicate-exports and
	compat-implib options.
	(gld_${EMULATION_NAME}_list_options): List new options.
	(gld_${EMULATION_NAME}_parse_args): Handle.

	* pe-dll.c (pe_dll_generate_implib): Use the correct name for output
	dll.

	* deffilep.y (opt_name): Allow "." in name.

For older changes see ChangeLog-9899

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
