2003-01-01  Daniel Jacobowitz  <drow@mvista.com>

	Suggested by Manfred Hollstein <manfred.h@gmx.net>:
	* Makefile.am (ld.1): Depend on configdoc.texi
	and ldver.texi.
	* Makefile.in: Regenerated.

2002-12-17  Nick Clifton  <nickc@redhat.com>

	* emultempl/pe.em (longopts): Duplicate entry for --compact-implib
	so that it is not confused with -c.

2002-12-10  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (struct orphan_save): Add os_tail field.
	(gld${EMULATION_NAME}_place_orphan): Re-order output_section_statement
	list too.

2002-12-05  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set
	load_base for orphans that follow a section with load_base set.

2002-12-01  H.J. Lu <hjl@gnu.org>

	* ld.texinfo: Remove the extra `;' in sample version script.

2002-11-27  David O'Brien  <obrien@FreeBSD.org>

	* configure.host: Fix generic FreeBSD configuration entry.

2002-11-20  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf64ppc.sh (DATA_ADDR): Don't define.

2002-10-30  Daniel Jacobowitz  <drow@mvista.com>

	* ld.1: Regenerated.
	* ldgram.c: Regenerated.
	* po/ld.pot: Regenerated.

2002-10-29  Daniel Jacobowitz  <drow@mvista.com>

	* emultempl/aix.em: Use include <> for generated headers.
	* emultempl/beos.em: Likewise.
	* emultempl/elf32.em: Likewise.
	* emultempl/pe.em: Likewise.
	* ldctor.c: Likewise.
	* ldexp.c: Likewise.
	* ldfile.c: Likewise.
	* ldlang.c: Likewise.
	* ldlex.c: Likewise.
	* ldlex.l: Likewise.
	* ldmain.c: Likewise.
	* ldmisc.c: Likewise.
	* ldwrite.c: Likewise.
	* lexsup.c: Likewise.
	* mri.c: Likewise.
	* pe-dll.c: Likewise.

2002-10-28  Daniel Jacobowitz  <drow@mvista.com>

	Merge from mainline:
	2002-10-23  Jakub Jelinek  <jakub@redhat.com>
	* emultempl/elf32.em (place_orphan): Don't put non-allocated .rel*
	sections into .rel{,a}.dyn.

	2002-10-21  Danny Smith  <dannysmith@users.sourceforeg.net>
	* scripttempl/pe.sc (__RUNTIME_PSEUDO_RELOC_LIST__,
	__RUNTIME_PSEUDO_RELOC_LIST_END__): Add only when relocating.

	2002-10-16  Jakub Jelinek  <jakub@redhat.com>
	* configure.tgt (s390x-*-linux*): Add elf_s390 emulation.
	(s390-*-linux*): Add elf64_s390 emulation if want64.
	* emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22
	genscript.sh changes.
	* emulparams/elf_x86_64.sh (LIB_PATH): Likewise.
	* emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs.

	2002-10-10  Jakub Jelinek  <jakub@redhat.com>
	* ldfile.c (ldfile_try_open_bfd): When searching skip linker scripts if
	they have OUTPUT_FORMAT not matching actual output format.
	* ldlang.c (lang_get_output_target): New function.
	(open_output): Use it.
	* ldlang.h (lang_get_output_target): New prototype.

	2002-10-07  Ralf Habacker  <Ralf.Habacker@freenet.de>
	* pe-dll.cc (autofilter_symbolprefixlist): Don't re-export
	auto-import symbols.
	(make_one): Create _nm_<symbol> for data only.

	2002-10-10  Alan Modra  <amodra@bigpond.net.au>
	* emultempl/elf32.em (output_rel_find): Prefer .rel script sections
	when orphan is .rel, .rela when orphan is .rela.
	(gld${EMULATION_NAME}_place_orphan): Handle combreloc .rel* case
	first.  Remove outsecname var.

	2002-09-30  Alan Modra  <amodra@bigpond.net.au>
	* scripttempl/elfd30v.sc: Order reloc sections placing .plt last.
	* scripttempl/elfm68hc11.sc: Likewise.
	* scripttempl/elfm68hc12.sc: Likewise.

	* emultempl/elf32.em (output_rel_find): Always place orphan loadable
	reloc sections just before .rel.plt/.rela.plt.
	(gld${EMULATION_NAME}_place_orphan <.rel>): Remove combreloc code.
	Only put loadable reloc sections in hold_rel.

	2002-09-29  H.J. Lu <hjl@gnu.org>
	* emulparams/elf32ppc.sh (OTHER_GOT_RELOC_SECTIONS): New.

	2002-08-27  Egor Duda  <deo@logos-m.ru>
	* scripttempl/pe.sc: Handle .rdata_runtime_pseudo_reloc sections.
	Add symbols for application to access them.

2002-10-15  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (load_symbols): Revert last change.

2002-10-14  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (load_symbols): Don't call bfd_link_add_symbols when
	just_syms_flag.
	(lang_reasonable_defaults): Don't compare against false.
	(size_input_section): Likewise.
	(lang_size_sections_1): Likewise.
	(lang_do_assignments): Likewise.
	(lang_add_output): Likewise.

2002-10-11  Alan Modra  <amodra@bigpond.net.au>

	* pe-dll.c (make_import_fixup_mark): Avoid type-punned pointer.

	* ldgram.y (memory_spec): Provide empty action.
	(section <NAME>): Likewise.

2002-10-02  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf64ppc.sh (MAXPAGESIZE): Set to 0x10000.

2002-09-25  Daniel Jacobowitz  <drow@mvista.com>

	From "Anita Kulkarni" <AnitaK@kpit.com>
	* scripttempl/sh.sc: Handle .eh_frame* and .gcc_exc*
	sections.

2002-09-25  Alan Modra  <amodra@bigpond.net.au>

	* ldexp.c (fold_unary): New.  Split out from exp_fold_tree.
	(fold_binary): Correct abs - non-abs case.
	(fold_trinary): New.  Split out from exp_fold_tree.

2002-09-24  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf64ppc.sh (DATA_ADDR): Define.
	* emulparams/elf64_aix.sh (DATA_ADDR): Don't use a fixed address
	for start of .data, instead align up to 256M boundary.
	* scripttempl/aix.sc: Likewise.

2002-09-23  Daniel Jacobowitz  <drow@mvista.com>

	Merge from mainline:
	2002-09-22  Mark Elbrecht  <snowball3@softhome.net>
	* scripttempl/i386go32.sc: Handle bss unique sections.

	2002-09-11  Nick Clifton  <nickc@redhat.com>
	* po/tr.po: Updated Turkish translation.

	2002-08-28  Alan Modra  <amodra@bigpond.net.au>
	* emultempl/aix.em (gld${EMULATION_NAME}_parse_args): Replace strtoll,
	strtoul and strtoull with bfd_scan_vma.
	(gld${EMULATION_NAME}_read_file): Likewise.

	2002-08-07  Nick Clifton  <nickc@redhat.com>
	* emultempl/armelf.em (arm_elf_before_allocation): Only search
	for an interworking bfd if there are input bfds.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* emultempl/aix.em (gld*_before_parse): Set default arch.  Reverts
	2002-05-10 change.

	2002-08-06  H.J. Lu <hjl@gnu.org>
	* ld.texinfo: Document --no-undefined-version.

	* ldlang.c (lang_new_vers_pattern): Set the `symver' and
	`script.' fields to 0.

	* ldmain.c (main): Initialize the allow_undefined_version to
	true.

	* lexsup.c (OPTION_NO_UNDEFINED_VERSION): New.
	(ld_options): Add --no-undefined-version.
	(parse_args): Support OPTION_NO_UNDEFINED_VERSION.

	2002-07-04  Bruno Haible  <bruno@clisp.org>
	* emulparams/elf_i386_fbsd.sh: Set OUTPUT_FORMAT to
	elf32-i386-freebsd.
	* emulparams/elf64alpha_fbsd.sh: Set OUTPUT_FORMAT to
	elf64-alpha-freebsd.

2002-08-13  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf32_dlx.sh (TARGET_PAGE_SIZE): Set to 1.
	(MAXPAGESIZE): Set to 1.

	* ld.h (ALIGN_N): Delete.
	* ldexp.h (align_n): Declare.
	* ldexp.c (align_n): New function.
	(fold_binary): Use align_n instead of ALIGN_N.
	(exp_fold_tree): Likewise.
	* ldlang.c (lang_size_sections_1): Likewise.
	(lang_one_common): Likewise.
	* ld.texinfo (ALIGN): Remove power of 2 restriction.

2002-07-23  Daniel Jacobowitz  <drow@mvista.com>

	Merge from mainline:
	2002-07-14  H.J. Lu <hjl@gnu.org>
	* ld.texinfo: Document a .symver takes precedence over a
	version script.

2002-07-25  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.
	* po/es.po: Updated Spanish translation.
	* po/fr.po: Updated French translation.

2002-07-24  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.
	* po/es.po: Updated Spanish translation.

2002-07-23  Daniel Jacobowitz  <drow@mvista.com>

	* po/ld.pot: Regenerated.

2002-07-23  Nick Clifton  <nickc@redhat.com>

	* po/ld.po: Updated French translation.

2002-07-20  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
	bomb on /DISCARD/ input section.
	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
	* emultempl/mmo.em (mmo_place_orphan): Likewise.

2002-07-19  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/mmo.em (mmo_place_orphan): Handle case of no .text
	output section.

2002-07-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* NEWS: Add 'Changes in 2.13'.

2002-07-12  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf64ppc.sh (ARCH): Set to powerpc:common64.
	(COMMONPAGESIZE): Define.

2002-07-09  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/hppanbsd.sh: Remark that hppaobsd.sh references this file.

2002-07-09  Federico G. Schwindt <fgsch@olimpo.com.br>

	* configure.tgt: Add support for alpha-*-openbsd*, hppa-*-openbsd*,
	powerpc-*-openbsd* and sparc64-*-openbsd*.
	* Makefile.am (ALL_EMULATIONS): Add ehppaobsd.o.
	* Makefile.in: Regenerate.
	* emulparams/hppaobsd.sh: New file.

2002-07-05  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (print_wild_statement): Fix output formatting.

2002-07-04  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c: (strip_excluded_output_sections): New function.
	(lang_process): Call it.
	(lang_size_sections_1): Revert 2002-06-10 change.

2002-07-03  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (check-DEJAGNU): Revert 2002-06-25 change.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2002-07-02  Alan Modra  <amodra@bigpond.net.au>

	* ldfile.c (ldfile_try_open_bfd): Formatting.

	* ldmisc.c (demangle): Move so that it doesn't intrude between
	vfinfo comment and body.  Add comment.

2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emulparams/vax.sh (OUTPUT_FORMAT): Use a.out-vax-bsd format.

2002-07-01  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.h (entry_sym): Make it a struct bfd_sym_chain.
	* ldlang.c (entry_sym): Likewise.
	(ldlang_undef_chain_list_type): Likewise.
	(lang_finish): Adjust references to entry_symbol.
	(lang_add_entry): Likewise.
	(lang_gc_sections): Use link_info.gc_sym_list.
	(lang_process): Set link_info.gc_sym_list.
	* ldlex.l: Include bfdlink.h.
	* ldmain.c (main): Init link_info.gc_sym_list.
	* emultempl/aix.em: Adjust references to entry_symbol.
	* emultempl/armcoff.em: Likewise.
	* emultempl/armelf.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/ppc64elf.em (ppc_after_open): New function.
	(LDEMUL_AFTER_OPEN): Define.
	* emulparams/elf64ppc.sh: KEEP .opd sections.

2002-06-29  Stephane Carrez  <stcarrez@nerim.fr>

	* emulparams/m68hc12elfb.sh (EEPROM_MEMORY): Define.
	* emulparams/m68hc11elfb.sh (EEPROM_MEMORY): Define.
	* emulparams/m68hc11elf.sh (EEPROM_SIZE): Define.
	(EEPROM_START_ADDR): Define.
	(EEPROM_MEMORY): Define.
	* emulparams/m68hc12elf.sh: Likewise.
	* scripttempl/elfm68hc11.sc: Handle .eeprom section; handle .softregs
	section to put soft registers in .page0.
	* scripttempl/elfm68hc12.sc: Likewise but put soft registers in bss.

2002-06-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emulparams/hppa64linux.sh (OTHER_GOT_RELOC_SECTIONS): Add rela.opd
	section.  Add ${RELOCATING-0}.

Wed Jun 26 16:33:58 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* emulparams/shelf.sh (STACK_ADDR): Don't define.
	(OTHER_SECTIONS): Define.
	* emulparams/shelf_nbsd.sh ((STACK_ADDR): Don't undef.
	(OTHER_SECTIONS): Undef.

2002-06-26  Alan Modra  <amodra@bigpond.net.au>

	* ldmisc.c (demangle): Restore dots stripped from sym name.

2002-06-25  H.J. Lu <hjl@gnu.org>

	* Makefile.am (check-DEJAGNU): Set LC_ALL=C and export it.
	* Makefile.in: Regenerated.

2002-06-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* ld.texinfo (Bug Reporting): Update text to suggest a limit on
	the size of attached object files, to allow make the object files
	available via FTP or HTTP and to mention that the mail will be
	sent to a mailing list.

2002-06-20  Nathanael Nerode  <neroden@twcny.rr.com>

	* ld/configure.host (romp): Drop support.

2002-06-18  Chris Demetriou  <cgd@broadcom.com>

	* emultempl/mipself.em (mips_elf${ELFSIZE}_check_sections): Check
	section flags for SEC_DATA, rather than for SEC_CODE being unset.

2002-06-18  Chris Demetriou  <cgd@broadcom.com>

	* emultempl/mipself.em (mips_elf${ELFSIZE}_check_sections): Fix
	format specifier used to print BFD name.

2002-06-18  Dave Brolley  <brolley@redhat.com>

	From Catherine Moore, Michael Meissner, Jim Blandy:
	* emulparams/elf32frv.sh: New file.
	* configure.tgt: Support frv-*-*.
	* Makefile.am (ALL_EMULATIONS): Add eelf32frv.o.
	(eelf32frv.c): New target.

2002-06-17  Tom Rix  <trix@redhat.com>

	* emultempl/elf32.em: gld*_get_script:  Check for 
	GENERATE_COMBRELOC_SCRIPT.
	* scripttempl/elfd10v.sc : Fix STACK and INSN.
	* emulparams/d10velf.sh : Fix TEXT_START_ADDR.

Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* configure.tgt: Add support for sh[1234]*le*-*-elf, sh[1234]*-*-elf.

2002-06-12  H.J. Lu <hjl@gnu.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Return
	false if xvec doesn't match.

2002-06-10  Richard Sandiford  <rsandifo@redhat.com>

	* ldlang.c (lang_size_sections_1): Skip removed output sections.

2002-06-08  Alan Modra  <amodra@bigpond.net.au>

	* ldexp.c: Replace CONST with const.
	* ldfile.c: Likewise.
	* ldfile.h: Likewise.
	* ldlex.l: Likewise.
	* mri.c: Likewise.
	* pe-dll.h: Likewise.

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

	* emultempl/ppc64elf.em (new_vers_pattern): Warning fix.

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

	* ld/ldmain.c (main): initialize link_info.pei386_auto_import
	to -1 == implicit enable.
	* ld/emultempl/pe.em (gld_${EMULATION_NAME}_before_parse):
	initialize link_info.pei386_auto_import to -1 == implicit
	enable.
	(gld_${EMULATION_NAME}_parse_args): When processing
	--enable-auto-import and --disable-auto-import options, use
	'1' and '0' instead of 'true' and 'false'.
	(pe_find_data_imports): Only issue message about auto-import
	when the feature is implicitly enabled.  Downgrade message to
	informational instead of warning.

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

	* scripttempl/elf.sc (.tbss): Fix mismatched parentheses/braces.

2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* configure.host (hppa*64*-*-hpux11*): Define NATIVE_LIB_DIRS,
	HOSTING_CRT0 and HOSTING_LIBS.

2002-06-05  J"orn Rennecke <joern.rennecke@superh.com>

	* configure.tgt (shle*-*-elf*, sh64le-*-elf*): New configurations.

2002-06-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* emulparams/ns32knbsd.sh (EXECUTABLE_SYMBOLS): Set _DYNAMIC to 0.
	(NONPAGED_TEXT_START_ADDR): Set to 0x1000.

2002-06-05  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Place
	SEC_EXCLUDE sections when doing a relocatable link.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (ALL_EMULATIONS): Add eshelf32_nbsd.o,
	eshlelf32_nbsd.o, eshelf64_nbsd.o, and eshlelf64_nbsd.o.
	(eshelf32_nbsd.c, eshelf64_nbsd.c, eshlelf32_nbsd.c)
	(eshlelf64_nbsd.c): New rules.
	* Makefile.in: Regenerate.
	* configure.tgt (sh5le-*-netbsd*, sh5-*-netbsd*, sh64le-*-netbsd*)
	(sh64-*-netbsd*): New targets.
	* emulparams/shelf32_nbsd.sh: New file.
	* emulparams/shelf64_nbsd.sh: New file.
	* emulparams/shlelf32_nbsd.sh: New file.
	* emulparams/shlelf64_nbsd.sh: New file.

2002-06-04  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (section_already_linked): Call bfd_discard_group.  Typo fix.

2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* scripttempl/avr.sc: Changes to support current GCC and avr-libc,
	C++ constructors/destructors, loosely based on the m68hc11 port.

2002-05-31  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2002-05-31  Graeme Peterson  <gp@qnx.com>

	* Makefile.am (ALL_EMULATIONS): Add ei386nto.o.
	(ei386nto.c): Add rule.
	* Makefile.in: Regenerate.
	* configure.tgt: Add i[3456]86-*-nto-qnx*.
	* emulparams/i386nto.sh: New file.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* NEWS: Add entry for VAX ELF support.

2002-05-29  Matt Thomas  <matt@3am-software.com>
            Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (ALL_EMULATIONS): Add eelf32vax.o and evaxnbsd.o.
	(eelf32vax.c)
	(evaxnbsd.c): New rules.
	* Makefile.in: Regenerate.
	* configure.tgt (vax-*-netbsdelf*)
	(vax-*-netbsdaout*)
	(vax-*-netbsd*): New targets.
	* emulparams/elf32vax.sh: New file.
	* emulparams/vaxnbsd.sh: New file.

2002-05-29  Adam Nemet  <anemet@lnxw.com>

	* emultempl/armelf.em (arm_elf_after_open): Don't determine
	bfd_for_interwork, instead add glue sections to each input bfd.
	(bfd_for_interwork): New global.
	(arm_elf_set_bfd_for_interworking): New function.
	(arm_elf_before_allocation): Use it.

2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>

	* Makefile.am: Add DLX make target.
	* configure.tgt: Add DLX configuration.
	* Makefile.in: Regenerate.
	* emulparams/elf32_dlx.sh: New file
	* scripttempl/dlx.sc: New file

2002-05-27  Per Lundberg  <per@caleb.dnsalias.org>

	* Makefile.am (eelf_i386_chaos): Use elf_chaos.sc script.
	* Makefile.in: Regenerate.
	* emulparams/elf_chaos.sh: Use elf_chaos script.
	* scripttempl/elf_chaos.sc: New file.

2002-05-27  Richard Sandiford  <rsandifo@redhat.com>

	* ldlang.c (lang_size_sections_1): Move check for conflicting load
	addresses and regions from here...
	(lang_get_regions): ...to this new function.
	(lang_leave_output_section_statement): Use lang_get_regions.
	(lang_leave_overlay): Likewise.
	* mri.c (mri_draw_tree): Pass null as last argument to
	lang_leave_output_section_statement.
	* emultempl/elf32.em (gld*_place_orphan): Likewise.
	* emultempl/mmo.em (mmo_place_orphan): Likewise.
	* emultempl/pe.em (gld*_place_orphan): Likewise.

2002-05-26  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.tgt: Use ns32k-*-netbsd* instead of ns32k-pc532-netbsd*.

2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* ldemul.c: Fix formatting.
	* ldfile.c: Likewise.
	* pe-dll.c: Likewise.
	* pe-dll.h: Likewise.

2002-05-25  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (lang_process): Formatting, grammar.

	* ldlex.l: Use #include "" instead of <> for local header files.

2002-05-24  TAMURA Kent <kent@netbsd.org>

	* configure.tgt: Add a target for i386-netbsdpe.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	* scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss.
	* ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for
	output section if necessary.  Handle .tbss.
	(lang_size_sections): Clear _raw_size for .tbss section
	(it allocates space in PT_TLS segment only).
	* ldwrite.c (build_link_order): Build link order for .tbss too.

2002-05-23  Alan Modra  <amodra@bigpond.net.au>

	* configure.in: Correct spelling of AC_PREREQ.

2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>

	* pe-dll.c (autofilter_liblist): Add more system libs excluded by
	default.
	(autofilter_objlist): Add crtbegin.o, crtend.o.

2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>

	* emultempl/pe.em (OPTION_EXCLUDE_LIBS): Add new define.
	(longopts): Add new option --exclude-libs.
	(gld_${EMULATION_NAME}_list_options): Give quick help about it.
	(gld_${EMULATION_NAME}_parse_args): Use it.
	* pe-dll.h (pe_dll_add_excludes): Add second param to prototype.
	* pe-dll.c (exclude_list_struct): Add field type to distinguish symbols
	from whole archives.
	(pe_dll_add_excludes): Set excludes->type.
	(auto_export): Add new variable libname and set to archive basename if
	abfd.  Use it when filtering default and user-specified libarary
	excludes.  Let string "ALL" mean all libs when filtering user-specified
	libs.
	* ld.texinfo: Document --exclude-libs.

2002-05-22  Alan Modra  <amodra@bigpond.net.au>

	* ldemul.c (ldemul_new_vers_pattern): New function.
	* ldemul.h (ldemul_new_vers_pattern): Declare.
	(struct ld_emulation_xfer_struct): Add new_vers_pattern.
	* ldlang.c (lang_new_vers_pattern): Call ldemul_new_vers_pattern.
	* emultempl/ppc64elf.em (dotsyms): New static var.
	(gld${EMULATION_NAME}_new_vers_pattern): New function.
	(LDEMUL_NEW_VERS_PATTERN): Define.
	(PARSE_AND_LIST_PROLOGUE): Add OPTION_DOTSYMS, OPTION_NO_DOTSYMS.
	(PARSE_AND_LIST_LONGOPTS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Handle them.
	* emultempl/aix.em (ld_${EMULATION_NAME}_emulation): Update
	initialiser.
	* emultempl/armcoff.em: Likewise.
	* emultempl/armelf_oabi.em: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/elf32.em: Likewise.
	* emultempl/generic.em: Likewise.
	* emultempl/gld960.em: Likewise.
	* emultempl/gld960c.em: Likewise.
	* emultempl/linux.em: Likewise.
	* emultempl/lnk960.em: Likewise.
	* emultempl/m68kcoff.em: Likewise.
	* emultempl/mipsecoff.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/sunos.em: Likewise.
	* emultempl/ticoff.em: Likewise.
	* emultempl/vanilla.em: Likewise.

2002-05-22  Alan Modra  <amodra@bigpond.net.au>

	* genscripts.sh (LIB_PATH): For native targets, concatenate $libdir
	and $NATIVE_LIB_DIRS.  Add $tool_lib before other libs.
	(LIB_SEARCH_DIRS): No need to use "tr".
	(COMPILE_IN): Only set for native targets.
	* configure.host (NATIVE_LIB_DIRS): Specify all native search dirs
	here, rather than adding lib:/usr/lib:/usr/local/lib in genscripts.sh.
	* configure.tgt (powerpc*): Set tdir_*.
	(powerpcle*): Correct targ_extra_emuls.
	* emulparams/elf32ppc.sh (LIB_PATH): Set up native 64 bit dirs.
	* emulparams/elf64ppc.sh (LIB_PATH): Likewise.

2002-05-22  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/pe.em (set_pe_subsystem): Don't set "cmdline" when
	calling lang_add_entry.

2002-05-21  H.J. Lu  (hjl@gnu.org)

	* emultempl/elf32.em (gld${EMULATION_NAME}_parse_args): Handle
	"-z muldefs".
	(gld${EMULATION_NAME}_list_options): Add "-z muldefs".

	* ld.texinfo: Updated for --allow-multiple-definition and
	"-z muldefs".

	* ldmain.c (main): Initialize the allow_multiple_definition
	field to false.

	* lexsup.c (OPTION_ALLOW_MULTIPLE_DEFINITION): New.
	(ld_options): Add --allow-multiple-definition.
	(parse_args): Support OPTION_ALLOW_MULTIPLE_DEFINITION.

2002-05-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (ALL_EMULATIONS): Add earmelfb_nbsd.o.
	(earmelfb_nbsd.c): New rule.
	* Makefile.in: Regenerate. 
	* configure.tgt (armeb-*-netbsdelf*): New target.
	(arm-*-netbsdelf*): Add armelfb_nbsd to targ_extra_emuls. 
	(arm-*-netbsd*): Likewise.
	* emulparams/armelfb_nbsd.sh: New file.

2002-05-18  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em (gld*_parse_args): Add -bnortl and -bnortllib 
	support.

2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* Makefile.am: Add new emulations avr1, avr2, avr3, avr4, avr5.
	* Makefile.in: Regenerate.
	* configure.tgt (avr-*-*): Add avr[1-5] to targ_extra_emuls.

2002-05-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* emulparams/avr1.sh: New file.
	* emulparams/avr2.sh: New file.
	* emulparams/avr3.sh: New file.
	* emulparams/avr4.sh: New file.
	* emulparams/avr5.sh: New file.
	* scripttempl/avr.sc: New file.

2002-05-15  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (section_already_linked): Call bfd_link_just_syms.
	(lang_place_orphans): Abort if just_syms_flag.

2002-05-10  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em: (gld*_set_output_arch): New function. Use 
	architecture and machine information in the output bfd.
	(gld*_before_parse): Remove old arch and machine code.
	(choose_target): Rename to gld*_choose_target.
	(rtld): Change type to int. 
	* ldfile.c (ldfile_try_open_bfd): Disable compatiblity check for 
	objects in XCOFF archives.
	* ldfile.h: Update copyright date.

2002-05-10  Jakub Jelinek  <jakub@redhat.com>

	* ldmain.c (main): Enable -z combreloc by default.

2002-05-07  Federico G. Schwindt <fgsch@olimpo.com.br>

	* Makefile.am: Honour DESTDIR.
	* Makefile.in: Regenerate.

2002-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* ldlang.h (lang_output_section_statement_type): Add update_dot_tree.
	(lang_enter_overlay): Remove the last two parameters.
	(lang_leave_overlay): Take them here instead.
	* ldgram.y (memspec_at_opt): Set $$ to null if no region is given.
	(section): Pass LMA and crossref flag to lang_leave_overlay rather
	than lang_enter_overlay.
	* ldlang.c (lang_memory_region_lookup): Return null for null names.
	(lang_output_section_statement_lookup): Initialize update_dot_tree.
	(lang_size_sections_1): Evaluate it.
	(lang_leave_output_section_statement): Rework LMA lookup.
	(overlay_lma, overlay_nocrossrefs): Remove.
	(lang_enter_overlay): Remove LMA and crossref arguments.
	(lang_enter_overlay_section): Don't set the LMA here.
	(lang_leave_overlay): Take LMA and crossref arguments.  Move the '.'
	assignment to the last section's update_dot_tree.  Unconditionally
	use the load and run-time regions specified in the OVERLAY statement.
	Likewise the first section's LMA.  Only set the other sections' LMAs
	when no load region is given.

2002-05-06  Nick Clifton <nickc@redhat.com>

	* po/sv.po: New translation.

2002-05-04  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/hppaelf.em (build_section_lists): New function.
	(gld${EMULATION_NAME}_finish): Call elf32_hppa_setup_section_lists
	and build_section_lists.

2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>

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

2002-05-02  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation):
	Adjust for ppc64_elf_set_toc change.  #include libbfd.h.
	(build_section_lists): Do output_section tests here.

2002-04-30  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em : (gld*_parse_arge): Formatting changes.

2002-05-01  Alan Modra  <amodra@bigpond.net.au>

	Long branch stubs, multiple stub sections.
	* emultempl/ppc64elf.em: Include ldctor.h.
	(stub_file): New var.
	(group_size): New var.
	(ppc_create_output_section_statements): New function.
	(struct hook_stub_info): New.
	(hook_in_stub): New function.
	(ppc_add_stub_section): New function.
	(ppc_layout_sections_again): New function.
	(build_section_lists): New function.
	(gld${EMULATION_NAME}_finish): Rewrite.
	(real_func): New var.
	(ppc_for_each_input_file_wrapper): New function.
	(ppc_lang_for_each_input_file): New function.
	(lang_for_each_input_file): Define.
	(PARSE_AND_LIST_PROLOGUE): Define.
	(PARSE_AND_LIST_LONGOPTS): Define.
	(PARSE_AND_LIST_OPTIONS): Define.
	(PARSE_AND_LIST_ARGS_CASES): Define.
	(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.

2002-04-30  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em (gld*_parse_arge, gld*_before_allocation): Add 
	-blibpath, -bnolibpath support. 
 
2002-04-30  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.am (ALL_EMULATIONS): Add elf32ppcwindiss.o.
	(eelf32ppcwindiss.c): New target.
	* Makefile.in: Regenerated.
	* configure.tgt: Add support for powerpc-*-windiss.
	* emulparams/elf32ppcwindiss.sh: New file.
	
2002-04-30  Richard Sandiford  <rsandifo@redhat.com>

	* ldlang.c (print_assignment): Update print_dot for assignments to ".".
	* ldexp.c (exp_print_token): Add "infix_p" argument.
	(exp_print_tree): Update accordingly.

2002-04-28  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (mpw): New maintainer mode rule to make mpw-*.c files.
	* Makefile.in: Regenerate.
	* mpw-elfmips.c: Delete.
	* mpw-eppcmac.c: Delete.
	* mpw-esh.c: Delete.
	* mpw-idtmips.c: Delete.

Wed Apr 17 19:23:14 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* emulparams/shelf32.sh (MACHINE): Now sh5.

2002-04-17  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* ldgram.y: Fix syntax warning.

2002-04-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* emultempl/armelf.em (PARSE_AND_LIST_SHORTOPTS): Add 'n' in order
	to prevent "-n" from being taken as an abbreviation for
	"--no-pipeline-knowledge".

2002-04-08  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (lang_size_sections_1): Don't complain about
	SEC_NEVER_LOAD sections having no memory region specified.

	* ld.texinfo (Format Commands <OUTPUT_FORMAT>): Typo fix.

2002-04-07  matthew green  <mrg@redhat.com>

	* ld/configure.host (*-*-netbsd*): Add support for NetBSD/ELF.

2002-04-04  Alan Modra  <amodra@bigpond.net.au>

	* dep-in.sed: Cope with absolute paths.
	* Makefile.am (dep.sed): Subst TOPDIR and BFDDIR.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2002-04-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* emulparams/elf64btsmip.sh: n64 replaces .reginfo with .MIPS.options.

2002-04-03  Jakub Jelinek  <jakub@redhat.com>

	* ldexp.c (fold_binary) [DATA_SEGMENT_ALIGN]: If common page size
	is smaller than maximum, round dot up to common page boundary.

2002-03-28  Alan Modra  <amodra@bigpond.net.au>

	* configure.host: Set up for generic hosts first, then tweak as
	necessary in more specific targets.
	(HOSTING_LIBS): Include libgcc_eh.a if found.

2002-03-23  Andreas Jaeger  <aj@suse.de>

	* emulparams/elf_x86_64.sh (COMMONPAGESIZE): Set it.

2002-03-21  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2002-03-21  Albert Chin-A-Young  <china@thewrittenword.com>

	* genscripts.sh (LIB_SEARCH_DIRS): Quote path.

2002-03-20  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (ldlang_add_undef): If the output bfd has been opened,
	add the symbol to the linker hash table immediately.
	(lang_place_undefineds): Split symbol creation out..
	(insert_undefined): ..to here.

2002-03-18  David O'Brien  <obrien@FreeBSD.org>

	* emultempl/elf32.em: Use lbasename vs. basename to fix problem where
	the contents of the buffer returned from basename function will are
	getting overwritten while still being used.

Mon Mar 18 17:38:39 CET 2002  Jan Hubicka  <jh@suse.cz>
			      Andreas Jaeger  <aj@suse.de>
			      Andreas Schwab  <schwab@suse.de>

	* configure.tgt (x86_64-*-linux-gnu*): Configure i386 as native.
	* elf_x86_64.sh (ARCH): Set to i386:x86-64
	set libraries to default to lib64 paths.

2002-03-18  Tom Rix  <trix@redhat.com>

	* Makefile.am : Add eaix5ppc and eaix5rs6, AIX 5 support.
	* configure.tgt : Same.
	* emulparms/aix5ppc.sh : New file. For eaix5ppc.
	* emulparms/aix5rs6.sh : New file. For eaix5rs6.
	* emulparms/aixppc.sh : OUPUT_FORMAT_32BIT and OUTPUT_FORMAT_64BIT
	emulation parameters for better -b32, -b64 support.
	* emulparms/aixrs6.sh : Same.
	* emulparms/ppcmacos.sh : Same.
	* emultempl/aix.em (choose_target) : Use new emulation parameters
	OUTPUT_FORMAT_32BIT and OUTPUT_FORMAT_64BIT.
	* Makefile.in : Regenerate.

2002-03-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/fr.po: Updated version.

2002-03-18  Alan Modra  <amodra@bigpond.net.au>

	* ldmain.c (main): Move .text readonly flag fudges from here..
	* ldlang.c (lang_process): ..to here.

2002-03-14  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (lang_check): Remove the word size check added in last
	change.  Treat emitrelocations case as for relocatable links.

2002-03-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/fr.po: Updated version.

2002-03-13  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (lang_check): Do relocatable link checks first, so that
	warn_mismatch can't override.  Check compatible and word size too.

2002-03-07  Daniel Jacobowitz  <drow@mvista.com>

	* ld.texinfo: Wrap @menu in @ifnottex, not @ifinfo.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* scripttempl/elf.sc: Only use DATA_SEGMENT_END() together with
	DATA_SEGMENT_ALIGN.

2002-03-04  H.J. Lu <hjl@gnu.org>

	* scripttempl/elf.sc: Put .preinit_array, .init_array and
	.fini_array in the data segment.

2002-03-04  Alan Modra  <amodra@bigpond.net.au>

	* scripttempl/elf.sc: Correct syntax errors in 2002-03-01 commit.

2002-03-01  David Mosberger  <davidm@hpl.hp.com>

	* scripttempl/elf.sc (SECTIONS): Add entries for .preinit_array,
	.init_array, and .fini_array.

2002-02-20  Andreas Schwab  <schwab@suse.de>

	* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't fold
	.IA64_unwind* in a relocatable link.

2002-02-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* NEWS: Mark 2.12 branch.

2002-02-19  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* emulparams/elf64_s390.sh (ARCH): Change to "s390:64-bit".
	* emulparams/elf_s390.sh (ARCH): Change to "s390:31-bit".

2002-02-18  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em (gld*_parse_args): Add -brtl support.
	(gld*_before_allocation): Same.
	(gld*_create_output_section_statements): Generate
	__rtinit if run time linking.  Add librtl.a to the link.
	(gld*_read_file): Clean.

2002-02-18  Alan Modra  <amodra@bigpond.net.au>

	* emulparams/elf64ppc.sh (OTHER_TEXT_SECTIONS): Define.

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

	* Makefile.am: Add new files earmelf_fbsd, eelf32ppc_fbsd,
	eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd,
	and eelf64alpha_fbsd.
	* Makefile.in: Regenerate.
	* configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd,
	x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd):
	use a FreeBSD-specific emulation rather than the psABI one.
	* emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value
	for all FreeBSD ELF systems.
	* emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI
	emulation.
	* emulparams/elf32ppc_fbsd.sh: Likewise.
	* emulparams/elf64_ia64_fbsd.sh: Likewise.
	* emulparams/elf64_sparc_fbsd.sh: Likewise.
	* emulparams/elf64alpha_fbsd.sh: Likewise.
	* emulparams/elf_i386_fbsd.sh: Likewise.
	* emulparams/elf_x86_64_fbsd.sh: Likewise.

2002-02-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/tr.po: Updated version.

2002-02-18  Alan Modra  <amodra@bigpond.net.au>

	* ld.texinfo (Output Section Fill): Fix amateur texinfo.
	(FILL): Likewise.

2002-02-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/mmo.em (mmo_after_open): Don't call
	_bfd_mmix_check_all_relocs when producing ELF output.

2002-02-15  Richard Henderson  <rth@redhat.com>

	* emulparams/elf64alpha.sh (NOP): Adjust for big-endian
	definition.  Emit a unop+nop pair.

2002-02-15  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Also check
	for presence of .MMIX.reg_contents.linker_allocated before early
	exit.

	* NEWS: Mention support for MMIX.

2002-02-15  Alan Modra  <amodra@bigpond.net.au>

	Support arbitrary length fill patterns.
	* ld.texinfo (Output Section Fill): Describe fill expressions.
	(FILL): Refer to the above.
	* ldexp.h (etree_value_type): Add "str" field.
	(union etree_union): Add "str" to "value" struct.
	(exp_bigintop): Declare.
	(exp_get_fill): Declare.
	* ldexp.c: Include "safe-ctype.h".
	(exp_intop): Set value.str to NULL.
	(exp_bigintop): New function.
	(new_rel): Pass in "str", and set new.str from it.
	(new_rel_from_section): Set new.str to NULL.
	(fold_name): Adjust calls to new_rel.
	(exp_fold_tree): Likewise.
	(exp_get_fill): New function.
	* ldgram.y (struct big_int bigint, fill_type *fill): New.
	(INT): Returns a "bigint".  Adjust all code handling INTs.
	(fill_opt): Returns a "fill".
	(fill_exp): Split out of fill_opt, use for FILL.
	* ldlang.h (struct _fill_type): New.
	(fill_type): Move typedef to ldexp.h.
	(lang_output_section_statement_type): "fill" is now a pointer.
	(lang_fill_statement_type): Likewise.
	(lang_padding_statement_type): Likewise.
	(lang_add_fill): Now takes a "fill_type *" param.
	(lang_leave_output_section_statement): Likewise.
	(lang_do_assignments): Likewise.
	(lang_size_sections): Likewise.
	(lang_leave_overlay_section): Likewise.
	(lang_leave_overlay): Likewise.
	* ldlang.c: Include ldgram.h after ldexp.h.
	(lang_output_section_statement_lookup): Adjust for fill_type change.
	(print_fill_statement): Likewise.
	(print_padding_statement): Likewise.
	(insert_pad): Now takes a "fill_type *" arg.
	(size_input_section): Likewise.
	(lang_size_sections_1): Likewise.
	(lang_size_sections): Likewise.
	(lang_do_assignments): Likewise.
	(lang_add_fill): Likewise.
	(lang_leave_output_section_statement): Likewise.
	(lang_leave_overlay_section): Likewise.
	(lang_leave_overlay): Likewise.
	Adjust all callers of the above function.
	* ldlex.l: Include ldgram.h after ldexp.h.  Allow hex numbers
	starting with "0X" as well as "0x".  Return bigint.str for hex
	numbers starting with "0x" or "0X", zero bigint.str otherwise.
	Always use base 16 for numbers starting with "$".
	* ldmain.c: Include ldgram.h after ldexp.h.
	* ldwrite.c (build_link_order): Use bfd_data_link_order in place
	of bfd_fill_link_order.
	* pe-dll.c: Adjust lang_do_assignments calls.
	* emultempl/elf32.em: Likewise.
	* emultempl/hppaelf.em: Likewise.
	* emultempl/ppc64elf.em: Likewise.
	* emultempl/beos.em: Include ldgram.h after ldexp.h, adjust
	lang_add_assignment call.
	* emultempl/pe.em: Likewise.

2002-02-14  Phil Edwards  <pme@gcc.gnu.org>

	* ld.texinfo (VERSION scripts):  Symbol names are globbing patterns.
	* ldgram.y (lang_new_vers_regex):  Rename to lang_new_vers_pattern;
	the pattern in question is not a regexp.
	* ldlang.c:  Likewise.
	* ldlang.h:  Likewise.
	* ldlex.l (V_IDENTIFIER):  Allow '[', ']', '-', '!', and '^' also.

2002-02-12  Jakub Jelinek  <jakub@redhat.com>

	* ldlex.l (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
	* ldgram.y (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
	(exp): Add DATA_SEGMENT_ALIGN (exp, exp) and DATA_SEGMENT_END (exp).
	* ldexp.c (exp_data_seg): New variable.
	(exp_print_token): Handle DATA_SEGMENT_ALIGN and DATA_SEGMENT_END.
	(fold_binary): Handle DATA_SEGMENT_ALIGN.
	(exp_fold_tree): Handle DATA_SEGMENT_END.
	Pass allocation_done when recursing instead of hardcoding
	lang_allocating_phase_enum.
	* ldexp.h (exp_data_seg): New.
	* ldlang.c (lang_size_sections_1): Renamed from lang_size_sections.
	(lang_size_sections): New.
	* ld.texinfo (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): Document.
	* scripttempl/elf.sc: Use DATA_SEGMENT_ALIGN and DATA_SEGMENT_END
	if COMMONPAGESIZE is defined.
	* emulparams/elf_i386.sh (COMMONPAGESIZE): Set to 4K.
	* emulparams/elf32_sparc.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64_sparc.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64alpha.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64_ia64.sh (COMMONPAGESIZE): Set to 16K for shared
	libraries only.

2002-02-11  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.in: Regenerate.

2002-02-10  Daniel Jacobowitz  <drow@mvista.com>

	* lexsup.c: Remove strtoul declaration.

2002-02-10  Daniel Jacobowitz  <drow@mvista.com>

	* ldmain.c: Add prototype for main ().
	* lexsup.c: Guard declaration of strtoul with HAVE_STDLIB_H.
	* emultempl/lnk960.em (lnk960_choose_target): Function should
	take two arguments.

2002-02-10  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (entry_section): New initialised variable.
	(lang_finish): Use it.
	* ldlang.h (entry_section): Declare.
	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Set
	entry_section to ".opd".

2002-02-09  Chris Demetriou  <cgd@broadcom.com>

	* ld.texinfo (Options): Add back in -nostdlib documentation,
	which had been inadvertently removed.

2002-02-09  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Adjust
	register section vma to a sane value after emitting error.  Make
	fatal conditions cause program exit when emitting message.

2002-02-08  Ivan Guzvinec <ivang@opencores.org>

	* configure.tgt: Add or32-*-rtems target.

2002-02-08  Alexandre Oliva  <aoliva@redhat.com>

	Contribute sh64-elf.
	2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
	* emulparams/shelf32.sh (STACK_ADDR): Define as formerly defined
	in OTHER_RELOCATABLE_SECTIONS.
	2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
	* emulparams/shelf32.sh (STACK_ADDR): Define.
	(OTHER_RELOCATABLE_SECTIONS): Renamed to...
	(OTHER_SECTIONS): this.	 Removed stack settings.
	* emulparams/shelf64.sh (OTHER_RELOCATABLE_SECTIONS): Do not set.
	(OTHER_SECTIONS): Reset after sourcing shelf32.sh.
	2001-03-12  DJ Delorie	<dj@redhat.com>
	* emultempl/sh64elf.em (sh64_elf_$_before_allocation): Disable
	relaxing if any shmedia or mixed sections are found.
	2001-03-07  DJ Delorie	<dj@redhat.com>
	* emultempl/sh64elf.em (sh64_elf_before_allocation): Pass f to
	einfo.	Gracefully decline to output to non-elf formats.
	2001-03-06  Hans-Peter Nilsson	<hpn@redhat.com>
	* emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS) <.stack>:
	Default to _end aligned to next multiple of 0x40000, plus 0x40000.
	* emulparams/shelf32.sh: Ditto.
	2001-01-14  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Tweak
	comment.
	2001-01-10  Ben Elliston  <bje@redhat.com>
	* emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Avoid
	non-portable shell constructs. From Hans-Peter Nilsson.
	2001-01-09  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emulparams/shelf64.sh (EXTRA_EM_FILE): Define empty.
	* Makefile.am (eshelf64.c, eshlelf64.c, eshlelf32.c): Adjust
	dependencies to the shell script include chain.
	* Makefile.in: Regenerate.
	2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emultempl/sh64elf.em: Update and tweak comments.
	(sh64_elf_${EMULATION_NAME}_after_allocation): Always allocate and
	make a .cranges section SEC_IN_MEMORY.
	2000-12-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emultempl/sh64elf.em
	(sh64_elf_${EMULATION_NAME}_before_allocation): Don't stop when
	.cranges section found to be necessary; continue and set stored
	section contents flags for sections with non-mixed contents.
	Use a struct sh64_section_data container and sh64_elf_section_data
	to store contents-type flags.
	Remove unused update of "isec".
	(sh64_elf_${EMULATION_NAME}_after_allocation): Only process
	sections marked SHF_SH5_ISA32_MIXED.  Use sh64_elf_section_data to
	access contents-type flags.  Assert that the associated container
	is initialized.	 Use that container, not elf_gp_size, to hold size
	of linker-generated cranges contents.
	2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emultempl/sh64elf.em
	(sh64_elf_${EMULATION_NAME}_before_allocation): Exit early if
	there's already a .cranges section.  When section flag difference
	is found, don't NULL-check cranges a second time.  Tweak comments.
	(sh64_elf_${EMULATION_NAME}_after_allocation): Use size after
	merging, not max size, as size of ld-generated .cranges contents.
	Don't set ELF section flags in output section.	When checking for
	needed .cranges descriptors, don't use a variable; compare
	incoming ELF section flags directly to SHF_SH5_ISA32_MIXED.  Tweak
	comments.
	2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emultempl/sh64elf.em: New file.
	* Makefile.am (eshelf32.c, eshlelf32.c): Adjust dependencies.
	* Makefile.in: Regenerate.
	* emulparams/shelf32.sh (OUTPUT_FORMAT): Only set if not set.
	(OTHER_RELOCATING_SECTIONS): Ditto.
	(EXTRA_EM_FILE): New, set to sh64elf if not set.
	* emulparams/shlelf32.sh: Stub out all settings except
	OUTPUT_FORMAT.	Source shelf32.sh.
	* emulparams/shelf64.sh: Similar, but also keep ELF_SIZE and
	OTHER_RELOCATING_SECTIONS.
	(OTHER_RELOCATING_SECTIONS): Remove .cranges.
	* emulparams/shlelf64.sh: Stub out all settings except
	OUTPUT_FORMAT.	Source shelf64.sh.
	2000-12-15  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS): Include
	.cranges section.
	(DATA_START_SYMBOLS): Define, provide ___data.
	(OTHER_READONLY_SYMBOLS): Define, provide ___rodata and align to 8
	for consecutive .data section.
	(OTHER_GOT_SECTIONS): Define, align to 8 for consecutive .bss
	section after .data section.
	* emulparams/shlelf64.sh: Ditto.
	* emulparams/shelf32.sh: Ditto.
	(ALIGNMENT): Define to 8.
	* emulparams/shelf32.sh: Ditto.
	2000-12-12  Hans-Peter Nilsson	<hpn@cygnus.com>
	* configure.tgt (sh64-*-elf*): Assign targ_extra_libpath to get
	built-in linker scripts.
	2000-11-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emulparams/shlelf64.sh: New.
	* emulparams/shelf64.sh: New.
	* configure.tgt (sh64-*-elf*): Add shelf64 and shlelf64 to
	targ_extra_emuls.
	* Makefile.am: Add support for shlelf64 and shelf64.
	* Makefile.in: Regenerate.
	2000-11-29  Hans-Peter Nilsson	<hpn@cygnus.com>
	* configure.tgt (sh64-*-elf*): Add shelf as default.
	Add shlelf to targ_extra_emuls.
	2000-11-24  Hans-Peter Nilsson	<hpn@cygnus.com>
	* emulparams/shelf32.sh: New file.
	* emulparams/shlelf32.sh: New file.
	* Makefile.am: Add support for shlelf32 and shelf32.
	* configure.tgt: Map sh64-*-elf* to shlelf32 and shelf32.
	* Makefile.in: Regenerate.

2002-02-05  Hans-Peter Nilsson  <hp@axis.com>

	* ldlang.c (lang_reset_memory_regions): Rename from
	reset_memory_regions.  Change all callers.  Make public.
	* ldlang.h (lang_reset_memory_regions): Prototype.
	* emultempl/elf32.em (gld${EMULATION_NAME}_finish): Call
	lang_reset_memory_regions before lang_size_sections.
	* emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.
	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Likewise.

2002-02-04  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Use signed
	arithmetic when checking for too many global registers.

2002-02-02  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (ALL_EMULATIONS): Add ehppanbsd.o.
	(ehppanbsd.c): New rule.
	* Makefile.in: Regenerate.
	* configure.tgt (hppa*-*-netbsd*): New target.
	* emulparams/hppalinux.sh: Add comment to check other files
	that source this file it is modified, and list which
	files that do.
	* emulparams/hppanbsd.sh: New file.

2002-02-01  Geoffrey Keating  <geoffk@redhat.com>

	* scripttempl/xstormy16.sc: Don't allocate extra space for the
	stack.

2002-02-01  Hans-Peter Nilsson  <hp@bitrange.com>

	Support on-demand global register allocation from
	R_MMIX_BASE_PLUS_OFFSET relocs.
	* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Rename from
	mmix_set_reg_section_vma.  Call
	_bfd_mmix_finalize_linker_allocated_gregs.
	(mmix_before_allocation): New function.
	(LDEMUL_AFTER_ALLOCATION): Set to mmix_after_allocation.
	(LDEMUL_BEFORE_ALLOCATION): Define to mmix_before_allocation.
	* scripttempl/mmo.sc (.text): Mark .init, .fini as KEEP.
	(.MMIX.reg_contents): Add .MMIX.reg_contents.linker_allocated
	before .MMIX.reg_contents.
	* emultempl/mmo.em (gldmmo_before_allocation): Define to default.
	(mmo_after_open): New function.
	(LDEMUL_AFTER_OPEN): Define to mmo_after_open.
	* emulparams/elf64mmix.sh (OTHER_SECTIONS): Tweak formatting.  Add
	.MMIX.reg_contents.linker_allocated before .MMIX.reg_contents.

2002-01-31  Ivan Guzvinec  <ivang@opencores.org>

	* emulparams/or32.sh: New file.
	* emulparams/or32elf.sh: New file.
	* scripttempl/or32.sc: New file.
	* configure.tgt : Add support for or32.
	* configure: Regenerate
	* Makefile.am: Add support for or32.
	* Makefile.in: Regenerate.
	* NEWS: Mention support for or32.
	* po/ld.pot: Regenerate.

2002-01-29  Chris Demetriou  <cgd@broadcom.com>
	    Mitch Lichtenberg  <mpl@broadcom.com>

	* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define to be mipself.
	* emultempl/mipself.em: New file to handle MIPS ELF embedded
	reloc creation (ld --embedded-relocs).

2002-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* configure: Regenerated.

2002-01-26  Hans-Peter Nilsson  <hp@bitrange.com>

	* Makefile.am (install): Depend on install-info.
	* Makefile.in: Regenerate.

2002-01-26  Christian Rose  <menthos@menthos.com>

	* ldmain.c (main): Use full sentences to ease translation.

2002-01-26  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/fr.po: Updated version.

2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/es.po: Updated version.

2002-01-25  Andreas Jaeger  <aj@suse.de>

	* ldlex.l (yy_input): Correct error check.

2002-01-25  Alan Modra  <amodra@bigpond.net.au>

	* ldmisc.c (demangle): Put back dots when string not demangled.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* emulparams/elf64alpha.sh (NOP): Use unop.

2002-01-21  Andreas Jaeger  <aj@suse.de>

	* ldlex.l: Use fread instead of read.

2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.tgt (ia64-*-netbsd*): New target.

2002-01-21  H.J. Lu <hjl@gnu.org>

	* emulparams/elf32btsmip.sh (SHLIB_TEXT_START_ADDR): Change to
	0.
	* emulparams/elf64btsmip.sh (SHLIB_TEXT_START_ADDR): Likewise.

2002-01-18  Andreas Jaeger  <aj@suse.de>

	* ldver.c (ldversion): Update year.

2002-01-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/ld.pot: Regenerate.

2002-01-16  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (eelf64ppc.c, eelf64lppc.c): Depend on ppc64elf.em.
	* Makefile.in: Regenerate.
	* emulparams/elf64ppc.sh (EXTRA_EM_FILE): Define.
	* emultempl/ppc64elf.em: New file.

2002-01-15  DJ Delorie  <dj@redhat.com>

	* scripttempl/pe.sc: Add support for constructor priorities.

2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* emulparams/avr1200.sh (DATA_START): Define as 0x60.
	* emulparams/avr23xx.sh: Likewise.
	* emulparams/avr4433.sh: Likewise.
	* emulparams/avr44x4.sh: Likewise.
	* emulparams/avr85xx.sh: Likewise.
	* emulparams/avrmega103.sh: Likewise.
	* emulparams/avrmega161.sh: Likewise.
	* emulparams/avrmega603.sh: Likewise.
	* scripttempl/elf32avr.sc: Use DATA_START instead of 0x60.

2002-01-08  Alexandre Oliva  <aoliva@redhat.com>

	* ldlang.c (walk_wild_section): Exclude object file if enclosing
	archive is excluded.

2002-01-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (ALL_EMULATIONS): Add eshelf_nbsd.o and eshlelf_nbsd.o.
	(eshelf_nbsd.c): New rule.
	(eshlelf_nbsd.c): New rule.
	* Makefile.in: Regenerate.
	* configure.tgt (sh*le-*-netbsdelf*): New target.
	(sh*-*-netbsdelf*): New target.
	* emulparams/shelf.sh: Document that shelf_nbsd.sh sources this file.
	* ld/emulparams/shelf_nbsd.sh: New emulation.
	* ld/emulparams/shlelf_nbsd.sh: New emulation.

2002-01-07  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/es.po: New file: Spanish translation.
	* configure.in (ALL_LINGUAS): Add es.
	* configure: Regenerate.

2002-01-06  John Marshall  <jmarshall@acm.org>

	* ld.texinfo: Note that --emit-relocs is currently only
	implemented for ELF.

2002-01-05  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Make use
	of bfd_section_list_remove and bfd_section_list_insert macros.
	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
	* emultempl/mmo.em (mmo_place_orphan): Likewise.

2002-01-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.tgt (x86_64-*-netbsd*): New target.

2001-12-21  Tom Rix  <trix@redhat.com>

	(gld*_create_output_section_statements): New function.
	For -binitfini support.
	* emultempl/aix.em (gld*_before_parse): Fix comment.
	* emultempl/aix.em (gld*_parse_args): Fix comment.

2001-12-20  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.tgt (mips*-dec-netbsd*): Delete alias for
	mips*el-*-netbsd*.
	(sparc64-*-netbsd*): Add elf32_sparc to targ_extra_emuls.

	* configure.tgt (arm-*-netbsdelf*): Add target.
	(arm-*-netbsd*): Add armelf and armelf_nbsd to targ_extra_emuls.
	* emulparams/armelf_nbsd.sh: Added.
	* Makefile.am: Add rules for earmelf_nbsd.
	* Makefile.in: Regenerate.

2001-12-19  Andreas Jaeger  <aj@suse.de>,
	    Susanne Oberhauser <froh@suse.de>

	* configure.host: Add rules for x86_64-*linux-gnu.  Change
	s390x-linux entry to use gcc to report configuration, replace gcc
	with $CC in s390-linux

2001-12-19  Andreas Jaeger  <aj@suse.de>

	* ld.texinfo (VERSION): Fix markup.

2001-12-18  matthew green  <mrg@eterna.com.au>

	* Makefile.am (ALL_EMULATIONS): Add m68kelfnbsd.o.
	(m68kelfnbsd.c): New rule.
	* Makefile.in: Regenerate.
	* configure.tgt (m68*-hp-netbsd*): Renamed to ..
	(m68*-*-netbsd*4k*): .. this.
	(m68*-*-netbsdelf*): New target.
	(m68*-*-netbsd*): Also include ELF support.
	(m68*-*-netbsdaout*): New alias for m68*-*-netbsd*.
	* emulparams/m68kelfnbsd.sh: New emulation.

2001-12-18  Jakub Jelinek  <jakub@redhat.com>

	* ldgram.y (vers_node): Support anonymous version tags.
	* ldlang.c (lang_register_vers_node): Ensure anonymous version
	tag is not defined together with non-anonymous versions.
	* ld.texinfo: Document it.

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

	* po/tr.po: New file: Turkish translation.
	* configure.in (ALL_LINGUAS): Add tr.
	* configure: Regenerate.

2001-12-17  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am: Add rules for eelf64alpha_nbsd.
	* Makefile.in: Regenerate.
	* configure.tgt (alpha*-*-netbsd*): Set
	targ_emul to elf64alpha_nbsd.
	* emulparams/elf64alpha_nbsd.sh: Added.

2001-12-17  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust
	section_tail when fiddling with section list.
	(gld${EMULATION_NAME}_list_options): Ensure sentences aren't
	broken into separate strings to make translation easier.
	* emultempl/mmo.em (mmo_place_orphan): Adjust section_tail when
	fiddling with section list.
	* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.

2001-12-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* scripttempl/mmo.sc: Add .debug_ranges to listed sections.

2001-12-15  Alan Modra  <amodra@bigpond.net.au>

	* ldmain.c (main): Initialise link_info.eh_frame_hdr.

2001-12-13  Jakub Jelinek  <jakub@redhat.com>

	* emultempl/elf32.em (finish): Supply output_bfd
	to bfd_elf*_discard_info.
	(OPTION_EH_FRAME_HDR): Define.
	(longopts): Add --eh-frame-hdr.
	(parse_args): Handle it.
	(list_options): Add --eh-frame-hdr to help.
	* emultempl/hppaelf.em (finish): Supply output_bfd
	to bfd_elf*_discard_info.
	* scripttempl/elf.sc (.eh_frame_hdr): Add.

2001-12-13  Alan Modra  <amodra@bigpond.net.au>

	* lexsup.c (parse_args): Don't pass shortopts to second call to
	getopt functions.  Restore optind rather than decrementing before
	second call.  Remove errind as it now duplicates last_optind.

2001-12-11  Christopher Faylor  <cgf@redhat.com>

	* emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Fix typo.

2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* Makefile.am: Add support for xstormy16.
	* configure.tgt: Add support for xstormy16.
	* Makefile.in: Regenerate.
	* emulparams/elf32xstormy16.sh: New file.
	* scripttempl/xstormy16.sc: New file.

2001-10-01  Christopher Faylor <cgf@cygnus.com>

	* Makefile.in (LIB_PATH): Make configurable.
	(GENSCRIPTS): Set LIB_PATH in environment.
	* configure.in: Substitute LIB_PATH.
	* configure: Regenerate.
	* configure.tgt (*cygwin): Set LIB_PATH for cross build.
	* configure.host (*cygwin): Add /usr/lib/w32api to NATIVE_LIB_DIRS.

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

	* lexsup.c (ld_options): Insert 'PROGRAM' into the text string
	describing the -N option so that it is easier to translate into
	foreign languages.

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

	* emultempl/pe.em (..._list_options): Replace multiple fprintf
	statements describing a single option with a single, newline
	escaped fprintf.  This allows better translation into other
	languages.

	* ldmain.c (add_archive_element): Combine multiple strings
	into a single string to permit better translation into other
	languages.

2001-12-05  Tom Rix  <trix@redhat.com>

	* Makefile.am: Remove eaixppc64.
	* Makefile.in: Regenerate.

2001-12-04  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em (choose_target): Change default target to
	OUTPUT_FORMAT for ppcmacos.  Add braces to remove compiler
	warning.
	(gld*_read_file):  Fix typo.
	(change_symbol_mode): Add prototype.
	(is_syscall): Same.

	* emulparams/aixppc.sh (SYSCALL_MASK, SYMBOL_MODE_MASK): Delete.
	* emulparams/aixrs6.sh : Same.
	* emulparams/ppcmacos.sh : Same.
	* emulparams/aixppc64.sh : Delete file.
	* emultempl/aix.em : Formatting changes.

2001-12-04  Hans-Peter Nilsson  <hp@axis.com>

	* emulparams/criself.sh (NO_SMALL_DATA): Set, to yes.
	(OTHER_BSS_END_SYMBOLS): Don't refer to .sbss when setting
	__Sbss.
	(OTHER_END_SYMBOLS): Fix formatting.
	* emulparams/crislinux.sh (NO_SMALL_DATA): Set, to yes.
	(OTHER_END_SYMBOLS): Fix formatting.

2001-12-04  Alan Modra  <amodra@bigpond.net.au>

	* ldexp.c (exp_print_token): Correct "table" entry for RSHIFT.

2001-12-02  Tom Rix  <trix@redhat.com>

	* configure.tgt : Remove eaixppc64 emulations.
	* Makefile.in : Remove eaixppc64.c
	* ldemul.c (ldemul_choose_target): New parameters argc, argv.
	(ldemul_default_target): Same.
	* emultempl/gld960.em (gld960_choose_target):  Same.
	* emultempl/gld960c.em (gld960_choose_target):  Same.
	* scripttempl/aix.sc: Remove OUTPUT_FORMAT.
	* emultempl/aix.em (is_syscall): syscall_mask now a variable.
	* emultempl/aix.em (gld*_read_file): symbol_mode_mask now a variable.
	* emultempl/aix.em (gld*_parse_args): Handle -b32 -b64 emulation.
	* emultempl/aix.em (choose_target): New function.  Handle emulation of
	-b32 and -b64.

2001-11-27  H.J. Lu <hjl@gnu.org>

	* emulparams/elf_i386.sh (NO_SMALL_DATA): Set to yes.
	* emulparams/elf_i386_be.sh (NO_SMALL_DATA): Likewise.
	* emulparams/elf_i386_chaos.sh (NO_SMALL_DATA): Likewise.
	* emulparams/elf_i386_ldso.sh (NO_SMALL_DATA): Likewise.
	* emulparams/elf_x86_64.sh (NO_SMALL_DATA): Likewise.
	* emulparams/m68kelf.sh (NO_SMALL_DATA): Likewise.
	* emulparams/elf32_sparc.sh (NO_SMALL_DATA): Likewise.
	* emulparams/elf64_sparc.sh (NO_SMALL_DATA): Likewise.

	* scripttempl/elf.sc (SBSS): New. Define if ${NO_SMALL_DATA}
	is not empty.
	(SDATA): Likewise.
	(REL_SDATA): Likewise.
	(REL_SBSS): Likewise.
	(REL_SDATA2): Likewise.
	(REL_SBSS2): Likewise.
	(SBSS2): Define if ${NO_SMALL_DATA} is not empty.
	(SDATA2): Likewise.

2001-11-25  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* scripttempl/elfm68hc11.sc (CTOR, DTOR): Put constructor and
	destructor in rom.
	* scripttempl/elfm68hc12.sc (CTOR, DTOR): Likewise.

2001-11-22  H.J. Lu  <hjl@gnu.org>

	* Makefile.in: Regenerated with automake based on automake
	1.4-8 in RedHat 7.1.

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

	* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define.
	(config.status): Delete rule.
	Add extra dependencies to cover sourced emulparams files.
	* Makefile.in: Regenerate.

	* scripttempl/elf.sc: Order <section>, <section>.* and
	corresponding linkonce sections as seen in input files.
	Formatting fixes.  Zero vma of all sections if not relocating.
	(STACK): Define and insert if STACK_ADDR defined.
	(OTHER_RELOCATING_SECTIONS): Delete.
	(OTHER_END_SYMBOLS): Define.
	(OTHER_READONLY_SECTIONS): Always insert, not just when relocating.
	(OTHER_READWRITE_SECTIONS): Likewise.
	(OTHER_GOT_SECTIONS): Likewise.
	(OTHER_SDATA_SECTIONS): Likewise.
	(OTHER_BSS_SECTIONS): Likewise.
	* scripttempl/elfi370.sc (OTHER_READONLY_SECTIONS): Likewise.
	(OTHER_READWRITE_SECTIONS): Likewise.
	* scripttempl/nw.sc (OTHER_READONLY_SECTIONS): Likewise.
	(OTHER_READWRITE_SECTIONS): Likewise

	* emulparams/armelf.sh (OTHER_RELOCATING_SECTIONS): Delete.
	(STACK_ADDR): Define.
	* emulparams/armelf_oabi.sh: As for armelf.sh.
	* emulparams/elf32mcore.sh: As for armelf.sh.
	* emulparams/h8300elf.sh: As for armelf.sh.
	* emulparams/mn10200.sh: As for armelf.sh.
	* emulparams/shelf.sh: As for armelf.sh.

	* emulparams/elf32fr30.sh (OTHER_RELOCATING_SECTIONS): Delete.
	(OTHER_END_SYMBOLS): Define.
	* emulparams/m32relf.sh: As for elf32fr30.sh.
	* emulparams/h8300helf.sh: As for elf32fr30.sh.
	* emulparams/h8300self.sh: As for elf32fr30.sh.

	* emulparams/criself.sh (OTHER_READONLY_SECTIONS): Protect symbol
	defines with RELOCATING test.
	(OTHER_SDATA_SECTIONS): Likewise.
	(OTHER_RELOCATING_SECTIONS): Delete, replacing with..
	(OTHER_END_SYMBOLS): ..this.
	* emulparams/crislinux.sh: As for criself.sh.

	* emulparams/elf32bmipn32.sh (OTHER_SDATA_SECTIONS): Zero vma
	if not relocating.
	(OTHER_RELOCATING_SECTIONS): Delete, replacing with..
	(OTHER_SECTIONS): ..this.  Zero vma if not relocating.  Order
	normal and linkonce sections as seen in input files.
	* emulparams/elf32bmip.sh (DATA_ADDR): Don't define if EMBEDDED.
	(TEXT_DYNAMIC): Likewise.
	(INITIAL_READONLY_SECTIONS): Zero vma if not relocating.
	(OTHER_SDATA_SECTIONS): Likewise.
	* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
	* emulparams/shlelf_linux.sh (OTHER_READWRITE_SECTIONS): Likewise.
	* emulparams/elf64alpha.sh (OTHER_READONLY_SECTIONS): Likewise.
	* emulparams/hppalinux.sh (OTHER_READONLY_SECTIONS): Likewise.
	* emulparams/elf64_aix.sh (OTHER_GOT_SECTIONS): Likewise.
	(OTHER_PLT_RELOC_SECTIONS): Likewise.
	(OTHER_READONLY_SECTIONS): Likewise.  Order normal and linkonce
	sections as seen in input files.
	* emulparams/elf64_ia64.sh: As for emulparams/elf64_aix.sh.
	* emulparams/hppa64linux.sh (OTHER_READONLY_SECTIONS): Zero vma
	if not relocating.
	(OTHER_READWRITE_SECTIONS, OTHER_BSS_SECTIONS): Likewise.
	(OTHER_BSS_END_SYMBOLS): Merge from elf64hppa.sh.
	* emulparams/elf64mmix.sh (OTHER_RELOCATING_SECTIONS): Delete.
	(OTHER_SECTIONS): Instead, use this..
	(OTHER_END_SYMBOLS): ..and this.

	* emulparams/elf32b4300.sh: Source elf32bmip.sh, remove duplicates.
	* emulparams/elf32bsmip.sh: Likewise.
	* emulparams/elf32btsmip.sh: Likewise.
	* emulparams/elf32ebmip.sh: Likewise.
	* emulparams/elf32lmip.sh: Likewise.
	* emulparams/elf32elmip.sh: Source elf32lmip.sh, remove duplicates.
	* emulparams/elf32lsmip.sh: Likewise.
	* emulparams/elf32ltsmip.sh: Source elf32btsmip.sh, remove duplicates.
	* emulparams/elf32l4300.sh: Source elf32b4300.sh, remove duplicates.
	* emulparams/elf64bmip.sh: Source elf32bmipn32.sh, remove duplicates.
	* emulparams/elf64btsmip.sh: Likewise.
	* emulparams/elf64ltsmip.sh: Source elf64btsmip.sh, remove duplicates.
	* emulparams/elf32lppc.sh: Source elf32ppc.sh, remove duplicates.
	* emulparams/elf32ppclinux.sh: Likewise.
	* emulparams/elf32ppcsim.sh: Likewise.
	* emulparams/elf32lppcsim.sh: Source elf32lppc.sh, remove duplicates.
	* emulparams/elf64hppa.sh: Source hppa64linux.sh, remove duplicates.
	* emulparams/h8300helf.sh: Source h8300elf.sh, remove duplicates.
	* emulparams/h8300self.sh: Likewise.
	* emulparams/mn10300.sh: Source mn10200.sh, remove duplicates.
	* emulparams/sh.sh: Comment.
	* emulparams/shl.sh: Source sh.sh, remove duplicates.
	* emulparams/shlelf.sh: Source shelf.sh, remove duplicates.
	* emulparams/shelf_linux.sh: Source shlelf_linux.sh, remove duplicates.

2001-11-21  David Heine <dlheine@tensilica.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (map_input_to_output_sections): Replace "break"
	accidentally removed with 2001-08-03 change.
	(lang_gc_sections_1): Likewise.

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

	* ldlang.c (walk_wild_section): Move sec == NULL case out of loop.

2001-11-20  Angela Marie Thomas <angela@redhat.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_finish): Use NULL instead
	of false when calling lang_size_sections.
	* emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.

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

	* emultempl/elf32.em (gld${EMULATION_NAME}_finish): Only emit this
	function when LDEMUL_FINISH isn't set to the same name.  Don't
	call ${LDEMUL_FINISH}.
	(ld_${EMULATION_NAME}_emulation): Call $LDEMUL_FINISH if defined.
	* emultempl/armelf.em (arm_elf_finish): Call
	gld${EMULATION_NAME}_finish.
	* emultempl/hppaelf.em (hppaelf_finish): Rename to
	gld${EMULATION_NAME}_finish.  Call bfd_elf32_discard_info and
	hppaelf_layout_sections_again if necessary.
	(need_laying_out): New var.
	(hppaelf_layaout_sections_again): Rename to
	hppaelf_layout_sections_again.  Clear need_laying_out.
	(PARSE_AND_LIST_OPTIONS): Format text.

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

	* emultempl/armelf.em (arm_elf_finish): Renamed from
	gld${EMULATION_NAME}_finish.
	(LDEMUL_FINISH): Set to arm_elf_finish.

2001-11-14  Daniel Jacobowitz  <drow@mvista.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
	(struct ld_emulation_xfer_struct): Use it.

2001-11-13  Ross Alexander <ross.alexander@uk.neceur.com>

	* emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add
	additional symbols referenced by newer crt0.o files from HP.

2001-11-12  Anthony Green  <green@redhat.com>

	* emulparams/armelf.sh (DATA_START_SYMBOLS): New symbol.

2001-11-12  Alfred M. Szmidt  <ams@kemisten.nu>

	* Makefile.am (GENSCRIPTS): Quote ${exec_prefix}.
	* Makefile.in: Regenerate.

2001-11-02  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* ld.texinfo: Use @command for commands, @option for options.
	* Makefile.am (POD2MAN): Use 'GNU Development Tools' for
	the page man title.
	* Makefile.in: Rebuild.

2001-11-04  Chris Demetriou  <cgd@broadcom.com>

	* configure.tgt (mips*el-*-netbsd*, mips*-*-netbsd*):
	Add support for targets.

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

	* configure.in (ALL_LINGUAS): Add "fr" and "sv"
	* configure: Regernate.
	* po/fr.po: New file.
	* po/sv.po: New file.

2001-11-01  NIIBE Yutaka  <gniibe@m17n.org>

	* configure.tgt (sh-*-linux): Set targ_emul, targ_extra_emuls
	as little endian default and to support big endian.

2001-11-01  Chris Demetriou  <cgd@broadcom.com>

	* ld.texinfo (Options): Document new option, -nostdlib.
	* lexsup.c (OPTION_NOSTDLIB): New definition.
	(ld_options): Add entry for "nostdlib".
	(parse_args): Handle OPTIONS_NOSTDLIB.
	* ldfile.c (ldfile_add_library_path): Don't add directories
	to the search path if they weren't specified on the command line
	and -nostdlib was specified.
	* ld.h (ld_config_type): New member only_cmd_line_lib_dirs.

2001-10-31  Nick Clifton  <nickc@cambridge.redhat.com>

	* lexsup.c (parse_args): Prevent infinite parsing loop when
	"-rpath.a" is specified on the command line.
	Replace calls to fprintf with calls to einfo.

2001-10-31  John Marshall  <jmarshall@acm.org>

	* ld.texinfo: A historical requirement that MEMORY and SECTIONS
	appear only once across all the linker scripts involved in a link
	invocation no longer applies.  Make the documentation reflect
	that.

2001-10-31  NIIBE Yutaka  <gniibe@m17n.org>

	* configure.tgt: Supports sh3/sh4/sh3eb/sh4eb-unknown-linux-gnu
	targets.
	(sh-*-linux*): Added targ_extra_libpath.

2001-10-31  David Heine  <dlheine@tensilica.com>

	* ldlang.c (lang_size_sections): Keep a valid output_offset field
	for padding statements.

2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.tgt (mmix-*-*): New target.
	* Makefile.am (ALL_EMULATIONS): Add eelf64mmix.o and emmo.o.
	Add dependencies to match.
	* emulparams/mmo.sh, emulparams/elf64mmix.sh, emultempl/mmo.em,
	emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em,
	scripttempl/mmo.sc: New files.
	* gen-doc.texi: @set MMIX.
	* ld.texinfo: Ditto.
	[MMIX] Add MMIX node.
	* Makefile.in: Regenerate.

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

	* ldlang.c: Fix a comment typo.

2001-10-23  Alan Modra  <amodra@bigpond.net.au>

	* configure.host: Move alpha*-*-linux-gnu* entry to generic
	entries, and match *-*-linux*.

2001-10-20  Alan Modra  <amodra@bigpond.net.au>

	* ldgram.y (mri_script_command): Surround processing of INCLUDE
	with ldlex_script, ldlex_popstate.
	(ifile_p1): Likewise.
	* ldlex.l (EOF): Don't BEGIN(SCRIPT).  Restore lineno from the
	correct slot.
	(lex_push_file): Save current lineno to lineno_stack.  Set lineno
	to 1.  Don't BEGIN(SCRIPT).
	(lex_redirect): Similarly.
	* ldmain.c (main): Set yydebug non-zero if YYDEBUG.

2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* scripttempl/armcoff.sc: Define __EH_FRAME_BEGIN__ and
	__EH_FRAME_END__ and accept eh frames into data section.
	Add ctor and dtor sections.

2001-10-19  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>

	* pe-dll.c (autofilter_objectlist): Add gcrt0.o.
	(auto-export): Fix indentation.

2001-10-18  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>

	* pe-dll.c (autofilter_objectlist):  Add startup objects
	for profiling.
	(auto-export): Constify char * p.
	Extract file basename and use strcmp rather than ststr
	for object lookup.

2001-10-18  Chris Demetriou  <cgd@broadcom.com>

	* ldmain.c (get_emulation): Improve comment about the handling
	of -mipsN options.

2001-10-17  Alan Modra  <amodra@bigpond.net.au>

	* po/POTFILES.in: Regenerate.

2001-10-16  Vassili Karpov  <malc@pulsesoft.com>

	* emultempl/elf32.em (gld*_list_options): Remove extra '\t' from
	-z nocopyreloc and -z nocombreloc usage strings.

2001-10-12  Vassili Karpov  <malc@pulsesoft.com>

	* emultempl/elf32.em (gld*_list_options): Include -z nocopyreloc
	in usage.

2001-10-11  Aleksey Romanov <aromanov@ennovatenetworks.com>

	* scripttempl/armaout.sc: Place .bss section after end of aligned
	data section to match behaviour of aout code in constructrion of
	header.

2001-10-11  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>

	* pe-dll.c (autofilter_entry_type autofilter_liblist: Add
	startup files for mingw32 dlls to list.

2001-10-10  Chris Demetriou  <cgd@broadcom.com>

	* emultempl/elf32.em: Fix shell 'if' usage for portability.

2001-10-08  Aldy Hernandez  <aldyh@redhat.com>

	* configure.tgt (targ): Add arm9e-*-elf.

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

	* genscripts.sh: Fix a typo in the last change.

2001-10-05  Jakub Jelinek  <jakub@redhat.com>

	* emultempl/elf32.em (gld_*_list_options): Include -z combreloc and
	-z nocombreloc in usage.

2001-10-03  Jim Blandy  <jimb@redhat.com>

	* genscripts.sh: Include a comment at the top of each generated
	script, explaining its purpose.

2001-10-03  Vassili Karpov  <malc@pulsesoft.com>

	* emultempl/elf32.em (parse_args): Handle -z nocopyreloc.
	* NEWS: Mention -z nocopyreloc.
	* ld.texinfo (Options): Describe nocopyreloc.

2001-10-03  Alan Modra  <amodra@bigpond.net.au>

	* configure: Regenerate.

2001-10-02  Alan Modra  <amodra@bigpond.net.au>

	* ldver.h (ld_program_version): Remove declaration.
	* lexsup.c (parse_args): Move printing of copyright message..
	* ldver.c (ldversion): .. to here.
	Use BFD_VERSION_STRING in place of BFD_VERSION.
	(ld_program_version): Remove.
	* Makefile.am (Makefile): Depend on bfd/configure.in.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2001-09-30  Hans-Peter Nilsson  <hp@bitrange.com>

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

2001-09-29  John Reiser  <jreiser@BitWagon.com>

	* ldlang.c (lang_common): Conditionally inhibit Common allocation.
	* lexsup.c: Add --no-define-common commandline option.
	* ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
	* ldlex.l: Likewise.
	* ld.h: Add command_line.inhibit_common_definition.
	* ldmain.c (main): Initialize.
	* ld.texinfo: Document.

2001-09-26  Alan Modra  <amodra@bigpond.net.au>

	* ldmisc.c (USE_STDARG): Remove.
	(info_msg): Define using VPARAMS, VA_OPEN, VA_FIXEDARG, VA_CLOSE.
	(einfo): Likewise.
	(minfo): Likewise.
	(lfinfo): Likewise.

	* ldmisc.h: Remove #ifdef ANSI_PROTOTYPES and non-ansi
	declarations.  Update copyright.

2001-09-24  Charles Wilson  <cwilson@ece.gatech.edu>

	* pe-dll.c: Remove obsoleted declaration of
	pe_get_data_import_dll_name.
	(pe_create_import_fixup): Fix thinko.

	* ld.texinfo(enable-auto-import): Clarify the explanation.

2001-09-24  Nick Clifton  <nickc@cambridge.redhat.com>

	* pe-dll.c (pe_create_import_fixup): Revert previous patch.
	* emultemp/pe.em (pe_data_import_dll): Move definition outside of
	DLL_SUPPORT controlled code.

2001-09-24  Charles Wilson  <cwilson@ece.gatech.edu>

	* emultempl/pe.em(pe_data_import_dll): Make static.
	(pe_get_data_import_dll_name): New accessor function.
	* pe-dll.c(pe_create_import_fixup): call
	pe_get_data_import_dll_name() from pe.em, instead of
	directly accessing pe_data_import_dll variable from pe.em.

2001-09-18  Bruno Haible  <haible@clisp.cons.org>

	* deffilep.y: Include "safe-ctype.h" instead of <ctype.h>.
	(def_file_add_directive): Use ISSPACE instead of isspace.
	(def_lex): Use ISDIGIT/ISXDIGIT/ISALPHA/ISALNUM instead of
	isdigit/isxdigit/isalpha/isalnum.
	* emultempl/aix.em: Include "safe-ctype.h" instead of <ctype.h>.
	(gld${EMULATION_NAME}_read_file): Use ISSPACE instead of isspace.
	* emultempl/elf32.em: Include "safe-ctype.h" instead of <ctype.h>.
	(gld${EMULATION_NAME}_place_orphan): Use ISALNUM instead of
	isalnum.
	* emultempl/gld960c.em: Include "safe-ctype.h" instead of <ctype.h>.
	(gld960_set_output_arch): Use ISUPPER/TOLOWER instead of
	isupper/tolower.
	* emultempl/sunos.em: Include "safe-ctype.h" instead of <ctype.h>.
	(gld${EMULATION_NAME}_search_dir): Use ISDIGIT instead of isdigit.
	* ldctor.c: Include "safe-ctype.h" instead of <ctype.h>.
	(ctor_prio): Use ISDIGIT instead of isdigit.
	* ldfile.c: Include "safe-ctype.h" instead of <ctype.h>.
	(ldfile_open_file_search): Use ISALPHA instead of isalpha.
	(ldfile_add_arch): Use ISUPPER/TOLOWER instead of
	isupper/tolower.
	* ldlang.c: Include "safe-ctype.h" instead of <ctype.h>.
	(stricpy): Use TOLOWER instead of isupper/tolower.
	(lang_leave_overlay_section): Use ISALNUM instead of isalnum.
	* ldlex.l: Include "safe-ctype.h" instead of <ctype.h>.
	(lex_warn_invalid): Use ISPRINT instead of isprint.
	* ldmain.c: Include "safe-ctype.h" instead of <ctype.h>.
	(main): For gettext, also set the LC_CTYPE locate facet.
	(add_keepsyms_file): Use ISSPACE instead of isspace.
	* lexsup.c: Include "safe-ctype.h" instead of <ctype.h>.
	(is_num, parse_args): Use ISDIGIT instead of isdigit.
	* mpw-elfmips.c: Include "safe-ctype.h" instead of <ctype.h>.
	(gldelf32ebmip_place_orphan): Use ISALNUM instead of isalnum.
	* mpw-eppcmac.c: Include "safe-ctype.h" instead of <ctype.h>.
	(gldppcmacos_read_file): Use ISSPACE instead of isspace.
	* pe-dll.c: Include "safe-ctype.h" instead of <ctype.h>.
	(quoteput): Use ISSPACE instead of isspace.
	(pe_dll_generate_implib, pe_process_import_defs): Use ISALNUM
	instead of isalnum.

2001-09-18  Alan Modra  <amodra@bigpond.net.au>

	* deffilep.y (def_stash_module): Constify "name" param.

	* pe-dll.c: Replace CONST with const throughout.
	(quick_symbol): Constify "n1", "n2", "n3" params.
	(make_singleton_name_thunk): Constify "import" param.  Make
	"buffer_len" a size_t.
	(make_import_fixup_entry): Constify "name", "fixup_name",
	"dll_symname" params.
	(pe_get16): Cast args of bfd_seek.  Replace bfd_read with bfd_bread.
	(pe_get32): Likewise.
	(pe_implied_import_dll): Likewise.

	* emultempl/beos.em (sort_by_file_name): Constify "ra", "rb".
	(sort_by_section_name): Likewise.

	* emultempl/pe.em: Move defines for arm_epoc_pe before bfd.h included.
	(make_import_fixup): Cast printf arg, rel->address to long rather
	than int.
	(gld_${EMULATION_NAME}_after_open): Don't compare NULL against int.

2001-09-15  Alan Modra  <amodra@bigpond.net.au>

	* ldmain.c (main): Rename BufferSize to ld_bufsz because HPUX
	defines BufferSize.  Increase buffer size by one.

2001-09-14  Ralf Habacker <Ralf.Habacker@freenet.de>

	* pe-dll.c (pe_walk_relocs_of_symbol): Fix memory leak.

2001-09-14  Kevin Lo <kevlo@openbsd.org>

	* configure.tgt: Add arm-openbsd target.

2001-09-12  H.J. Lu  <hjl@gnu.org>

	* Makefile.am (ALL_EMULATIONS): Move eelf64ppc.o and
	eelf64lppc.o to ...
	(ALL_64_EMULATIONS): Here.
	* Makefile.in: Regenerated.

2001-09-12  Paul Sokolovsky  <Paul.Sokolovsky@technologist.com>

	* emultempl/pe.em(make_import_fixup): change signature to
	take asection as well as arelec; we need this for proper
	error reporting.  Only call pe_create_import_fixup() if
	there is no attempt to add a constant addend to the reloc;
	otherwise, report error condition.
	* pe-dll.c(pe_walk_relocs_of_symbol): change signature,
	since final argument is a pointer to make_import_fixup().
	Change call to cb() to match make_import_fixup() signature.
	(make_import_fixup_mark): make buffer_len unsigned.
	* pe-dll.h: change signature of pe_walk_relocs_of_symbol.

2001-09-12  Charles Wilson  <cwilson@ece.gatech.edu>

	* ld.texinfo: add verbose documentation for auto-import
	direct-addressing workaround, to compliment the terse
	error message.

2001-09-12  Andrew MacLeod  <amacleod@redhat.com>

	* scripttempl/v850.sc: Add gcc_except_table sections.

2001-09-11  Jeffrey A Law  (law@cygnus.com)

	* emulparams/h8300helf.sh: Move stack to a much higher memory address.
	* emulparams/h8300self.sh: Similarly.

2001-09-05 Danny Smith <dannysmith@users.souceforge.net>

	* ld.texinfo (Options, --stack): Correct default value for stack
	reserve.

2001-09-05  Tom Rix <trix@redhat.com>

	* emultempl/aix.em : Handle import file XMC_XO and syscall symbols.

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

	* emultempl/beos.em: Declare prototypes for comparions functions,
	adjust definitions.

2001-09-02  Andreas Jaeger  <aj@suse.de>

	* emultempl/aix.em: Add missing prototype.
	* emultempl/lnk960.em: Likewise.
	* emultempl/vanilla.em: Likewise.
	* emultempl/armcoff.em: Likewise.
	* emultempl/armelf_oabi.em: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/gld960c.em: Likewise.
	* emultempl/gld960.em: Likewise.

	* emulparams/elf64alpha.sh (PARSE_AND_LIST_PROLOGUE): Add parameter
	for prototype declaration.

2001-08-31  Eric Christopher  <echristo@redhat.com>
	    Jason Eckhardt  <jle@redhat.com>

	* ldmain.c (get_emulation): Add support for -mips32 and -mips64.

2001-08-31  Andreas Jaeger  <aj@suse.de>

	* emultempl/pe.em: Add missing prototypes.
	(gld_${EMULATION_NAME}_after_open): Remove extra args to
	pe_find_data_imports.
	(pr_sym): Add unused attribute.

2001-08-29  Joel Sherrill <joel@OARcorp.com>

	* configure.tgt (i[3456]86-*-rtems*, m68*-*-rtems*): Change
	default from coff to elf.

2001-08-29  Jeff Law <law@redhat.com>

	* emulparams/h8300helf.sh: Resync with h8300elf.sh.  Update
	ARCH specification.
	* emulparams/h8300self.sh: Similarly.

2001-08-28  J"orn Rennecke <amylaar@redhat.com>

	* Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
	eh8300self.o .
	(eh8300elf.c, eh8300helf.c, eh8300self.c): New targets.
	* configure.tgt (h8300-*-elf*): New case.
	* emulparams/h8300elf.sh, emulparams/h8300helf.sh: New files.
	* emulparams/h8300self.sh: New file.
	* Makefile.in: Regenerated.

2001-08-28  Nick Clifton  <nickc@cambridge.redhat.com>

	* ldmain.c (main): Rename BSIZE to BufferSize to avoid collision
	with macro name.

2001-08-27  Linus Nordberg  <linus@swox.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o.
	(eelf64ppc.c, eelf64lppc.c): Add make targets.
	Run "make dep-am"
	* Makefile.in: Regenerate.
	* configure.tgt: Add powerpc64 support.  Move pdp11, pjl, pj
	entries to correct alphabetical position.
	* emulparams/elf64ppc.sh: New.
	* emulparams/elf64lppc.sh: New.

2001-08-27  Nick Clifton  <nickc@cambridge.redhat.com>

	* ldmain.c (main): Declare BSIZE as static.

2001-08-23  Jakub Jelinek  <jakub@redhat.com>

	* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
	into .rel.dyn resp. .rela.dyn if combreloc.
	(get_script): If .x linker script is equal to .xn, only put it
	once into the binary.
	Add .xc and .xsc scripts.
	(parse_args): Handle -z combreloc and -z nocombreloc.
	* scripttempl/elf.sc (.rela.sbss): Fix a typo.
	For .xc and .xsc scripts put all .rel* or .rela* input sections
	but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
	* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
	is elf.
	Strip trailing whitespace from script.
	Generate .xc and .xsc scripts if requested.
	* ldmain.c (main): Initialize link_info.combreloc and
	link_info.spare_dynamic_tags.
	* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
	(ld_options): Add --spare-dynamic-tags option.
	(parse_args): Likewise.
	* ld.texinfo: Document -z combreloc and -z nocombreloc.
	* ldint.texinfo: Document .xc and .xsc linker scripts.
	* NEWS: Add notes about -z combreloc and SHF_MERGE.

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

	* emulparams/elf32fr30.sh: Add a newline.

2001-08-21  Andreas Jaeger  <aj@suse.de>

	* deffilep.y: Add missing prototypes.
	* pe-dll.c: Likewise.

2001-08-20  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (insert_pad): Fix typos in last patch.

	* ldlang.c: When traversing lang_statement_union_type lists,
	consistently use "header.next" rather than "next".
	* mpw-eppcmac.c: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/hppaelf.em: Likewise.
	* emultempl/pe.em: Likewise.
	* ldlang.h (union lang_statement_union): Remove "next" field.

	* ldlang.c (insert_pad): Use offsetof macro.
	(lang_size_sections): Always neuter padding statements.
	* emultempl/hppaelf.em (hppaelf_delete_padding_statements): Delete.

	* pe-dll.c (pe_dll_fill_sections): Correct type of "relax" param
	passed to lang_size_sections.
	(pe_exe_fill_sections): Likewise.
	* emultempl/pe.em (output_prev_sec_find): Copied from elf32.em.
	(gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.

2001-08-18  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/aix.em: Formatting fixes.

2001-08-18  Alan Modra  <amodra@bigpond.net.au>

	* ldlang.c (insert_pad): Make use of an existing pad statement if
	available.  Move code calculating alignment, adjusting section
	alignment power, and adjusting dot to ..
	(size_input_section): .. here.  Remove unused relax param.
	(lang_size_sections): Change boolean `relax' param to boolean *.
	Adjust call to size_input_section.  Make use of insert_pad to
	place pad after the assignment statement.  If relaxing, zap
	padding statements.
	(reset_memory_regions): Reset output_bfd section sizes too.
	(relax_again): Move to..
	(lang_process): ..here.  Adjust call to lang_size_sections, and
	remove duplicated code.
	* ldlang.h (lang_size_sections): Change `relax' param to boolean *.

2001-08-17  Alan Modra  <amodra@bigpond.net.au>

	* ld.texinfo: Document that fill values now use the four least
	significant bytes.
	* emulparams/elf32fr30.sh (NOP): Update.
	* emulparams/elf32mcore.sh: Likewise.
	* emulparams/elf64_s390.sh: Likewise.
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_i386_be.sh: Likewise.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_s390.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/i386moss.sh: Likewise.
	* emulparams/i386nw.sh: Likewise.
	* emulparams/m68kelf.sh: Likewise.
	* scripttempl/elf.sc: Update NOP comment.
	* scripttempl/elfi370.sc: Likewise.
	* scripttempl/elfm68hc11.sc: Likewise.
	* scripttempl/elfm68hc12.sc: Likewise.
	* scripttempl/nw.sc: Likewise.

2001-08-15  Tom Rix <trix@redhat.com>

	* ldgram.y (saved_script_handle): Initialize to NULL.
	* ldmain.c (main): Change check on saved_script_handle.

2001-08-14  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em: Formatting fixes.
	(output_prev_sec_find): Test for bfd_ind_section too;  do so by
	looking at sec->owner.
	(output_rel_find): Move function inside LDEMUL_PLACE_ORPHAN test.
	(gld${EMULATION_NAME}_place_orphan): Add a few comments.  Remove
	unused code, and reorganize orphan section placement code.

	* ldlang.c (wild_doit): Rename to lang_add_section.
	* ldlang.h: Here too.
	* mpw-elfmips.c: And here.
	* emultempl/beos.em: And here.
	* emultempl/elf32.em: And here.
	* emultempl/hppaelf.em: And here.
	* emultempl/pe.em: And here.

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

	* emultempl/needrelax.em: New file.
	* emulparams/elf64_ia64.sh (EXTRA_EM_FILE): Reference it.
	* Makefile.am (eelf64_ia64.c): Depend on it.
	* Makefile.in: Rebuild.

2001-08-13  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that
	output_section is set non-NULL.

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
	`true' for SEC_EXCLUDE sections so that the generic code doesn't
	needlessly create an output_section_statement.  Treat a correctly
	named output_section_statement with NULL bfd_section as compatible.

2001-08-13  Hans-Peter Nilsson  <hp@bitrange.com>

	* emultempl/generic.em: Support EXTRA_EM_FILE.
	(ld_${EMULATION_NAME}_emulation): Support emulation parameters
	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.

2001-08-12  Richard Henderson  <rth@redhat.com>

	* scripttempl/elf.sc, scripttempl/elfd30v.sc,
	scripttempl/elfm68hc11.sc, scripttempl/elfm68hc12.sc,
	scripttempl/v850.sc: Keep .jcr data.

2001-08-12  H.J. Lu  <hjl@gnu.org>
	    Andrew Haley  <aph@cambridge.redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* ldgram.y (had_script): Change name to saved_script_handle.
	Change type to file handle.
	* ld.h (had_script): Rename and retype.
	* ldfile.c (ldfile_open_command_file): Save the file handle
	used in saved_script_handle.
	* lexsup.c (parse_args): Do not allow -c option to alter
	saved_script_handle.
	* ldmain.c (main): Print out the linker script used if
	--verbose is given.  Check saved_script_handle to obtain the
	external linker script used, or if NULL, dump the builtin
	script.
	* ld.texinfo: Document that --verbose now dumps the linker
	script used, regardless of whether it was an internal or an
	external script.

2001-08-10  Andreas Jaeger  <aj@suse.de>

	* configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
	to build warnings.
	* configure: Regenerate.

2001-08-09  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/elf32.em (output_prev_sec_find): Add missing prototype.

	* scripttempl/elf.sc: Move non-text .dynamic section before
	.plt/.got/.sdata* group.
	(OTHER_GOT_SECTIONS): Move to immediately after .got.
	(OTHER_SDATA_SECTIONS): Add.
	* emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than
	OTHER_GOT_SECTIONS.
	* emulparams/crislinux.sh: Likewise.
	* emulparams/elf32b4300.sh: Likewise.
	* emulparams/elf32bmip.sh: Likewise.
	* emulparams/elf32bmipn32.sh: Likewise.
	* emulparams/elf32bsmip.sh: Likewise.
	* emulparams/elf32btsmip.sh: Likewise.
	* emulparams/elf32ebmip.sh: Likewise.
	* emulparams/elf32elmip.sh: Likewise.
	* emulparams/elf32l4300.sh: Likewise.
	* emulparams/elf32lmip.sh: Likewise.
	* emulparams/elf32lsmip.sh: Likewise.
	* emulparams/elf32ltsmip.sh: Likewise.
	* emulparams/elf64bmip.sh: Likewise.
	* emulparams/elf64btsmip.sh: Likewise.
	* emulparams/elf64ltsmip.sh: Likewise.

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

	* genscripts.sh: Source the emulparams script before each output
	script is generated so that variables like `RELOCATING' may affect
	variables defined in the emulparams script.

2001-08-04  Alan Modra  <amodra@bigpond.net.au>

	* emultempl/aix.em: ldexp.h,ldlang.h,ldfile.h,ldemul.h go in this
	order.

	* emultempl/beos.em (sort_sections): Modify for 2001-08-03 change,
	ie. iterate over wild_statement.section_list.
	(gld${EMULATION_NAME}_place_orphan): Likewise.

2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* scripttempl/elfm68hc12.sc (FINISH_CODE, FINISH_RELOC): New to handle
	.fini[0-4] sections used by _exit
	(CTOR, DTOR): Export ctor/dtor symbols; move them to ROM.
	(*.text,*.data,*.bss): Take into account .text.*, .data.*, .bss.*.
	* scripttempl/elfm68hc11.sc: Likewise.

2001-08-03  H.J. Lu  <hjl@gnu.org>

	* emultempl/beos.em (init): Add the missing initialization.

2001-08-03  Alan Modra  <amodra@bigpond.net.au>

	* ld.texinfo (Input Section Basics): Clarify ordering of output
	sections.
	* ldlang.c (callback_t): Add wildcard_list param.
	(walk_wild_section): Remove "section" param.  Rewrite for
	lang_wild_statement_type change.  Remove unique_section_p test.
	(walk_wild_file): Remove "section" param.
	(walk_wild): Remove "section" and "file" params.
	(lang_gc_wild): Likewise.
	(wild): Likewise.  Modify for lang_wild_statement_type change.
	(wild_sort): Likewise.  Add "sec" param.
	(gc_section_callback): Likewise.
	(output_section_callback): Likewise.  Do unique_section_p test.
	(map_input_to_output_sections): Modify call to wild.
	(lang_gc_sections_1): Likewise.
	(print_wild_statement): Modify for lang_wild_statement_type
	change.
	(lang_add_wild): Replace filename, filenames_sorted param with
	filespec.  Replace section_name, sections_sorted,
	exclude_filename_list with section_list.
	* ldlang.h (lang_add_wild): Here too.
	(lang_wild_statement_type): Replace section_name, sections_sorted,
	and exclude_filename_list with section_list.
	* ldgram.y (current_file): Delete.
	(%union): Add wildcard_list.
	(file_NAME_list): Set type to wildcard_list.  Build a linked list
	rather than calling lang_add_wild for each entry.
	(input_section_spec_no_keep): Call lang_add_wild here instead.
	* ld.h (struct wildcard_list): Declare.
	* mri.c (mri_draw_tree): Modify to suit new lang_add_wild.

2001-08-02  Charles Wilson  <cwilson@ece.gatech.edu>

	* ldmain.c (main): initialize link_info.pei386_auto_import
	* pe-dll.c: new tables for auto-export filtering
	(auto_export): change API, pass abfd for contextual filtering.
	Loop thru tables of excluded symbols instead of comparing
	"by hand".

2001-08-02  Paul Sokolovsky  <paul.sokolovsky@technologist.com>

	* pe-dll.c: new variable pe_dll_enable_extra_debug. New
	static variable current_sec (static struct sec *). Add
	forward declaration for add_bfd_to_link.
	(process_def_file): Don't export undefined symbols. Do not
	export symbols starting with  "_imp__".  Call auto_export()
	with new API.
	(pe_walk_relocs_of_symbol): New function.
	(generate_reloc): add optional extra debugging
	(pe_dll_generate_def_file): eliminate extraneous initial blank
	line in output
	(make_one): enlarge symtab to make room for __nm__ symbols
	(DATA auto-import support).
	(make_singleton_name_thunk): New function.
	(make_import_fixup_mark): New function.
	(make_import_fixup_entry): New function.
	(pe_create_import_fixup): New function.
	(add_bfd_to_link): Specify that 'name' argument is a CONST
	char *.
	* pe-dll.h: declare new variable pe_dll_extra_pe_debug;
	declare new functions pe_walk_relocs_of_symbol and
	pe_create_import_fixup.
	* emultempl/pe.em: add new options --enable-auto-import,
	--disable-auto-import, and --enable-extra-pe-debug.
	(make_import_fixup): New function.
	(pe_find_data_imports): New function.
	(pr_sym): New function.
	(gld_${EMULATION_NAME}_after_open): Add optional extra pe
	debugging. Call pe_find_data_imports.  Mark .idata as DATA, not
	CODE.

2001-08-02  Charles Wilson  <cwilson@ece.gatech.edu>

	* ld.texinfo: add additional documentation for
	--export-all-symbols.  Document --out-implib,
	--enable-auto-image-base, --disable-auto-image-base,
	--dll-search-prefix, --enable-auto-import, and
	--disable-auto-import.
	* ldint.texinfo: Add detailed documentation on auto-import
	implementation.

2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>

	* ld.texinfo (Simple Assignments): Fix computation in SECTIONS
	example.

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

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

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

	* ldcref.c (check_section_sym_xref): New function.
	(check_nocrossrefs): Call it.
	(check_nocrossref): Interate over h->refs here instead of..
	(check_refs): ..here.  Pass in the symbol name, section, and bfd
	rather than hash_entry pointers.
	(struct check_refs_info): Keep symbol name rather than hash entry.
	Remove "same".
	(check_reloc_refs): Tweak for above changes in check_refs_info.
	Only report references to section syms when symname is NULL to
	prevent duplicate messages for the same reloc.

2001-07-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* ldexp.c (exp_print_tree): Use stderr if config.map_file is not
	available.  Do not print NULL trees.
	(exp_print_token): Print unknown tokens with values > 126 as
	decimal values not ASCII characters.

	* ldlang.c (lang_leave_overlay): If a region is specified assign
	it to all sections inside the overlay unless they have been
	assigned to the own, non-default, memory region.

	* README: Add header for consistency with other README files.

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

	* emultempl/elf32.em (output_prev_sec_find): Never return
	bfd_abs_section_ptr, bfd_com_section_ptr nor
	bfd_und_section_ptr.

2001-07-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* Makefile.am (em32relf.c): Change dependency from generic.em to
	elf32.em.
	* Makefile.in: Regenerate.

2001-07-14  matthew green  <mrg@eterna.com.au>

	* configure.tgt (i386-*-netbsdelf*): New target.
	(i386-*-netbsd*): Set targ_extra_emuls to `elf_i386'

2001-07-13  Jakub Jelinek  <jakub@redhat.com>

	* emultempl/elf32.em (output_prev_sec_find): New.
	(place_orphan): Use it.

2001-07-11  H.J. Lu  <hjl@gnu.org>

	* ldmain.c (main): Fix typos in the last change.

2001-07-11  Jakub Jelinek  <jakub@redhat.com>

	* ldmain.c (main): Disallow -F and -f without -shared.

2001-07-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* emultempl/pe.em (after_open): Check for the output_bfd not
	having any coff_data structure allocated to it.

2001-07-09  David O'Brien  <obrien@FreeBSD.org>

	* emultempl/elf32.em: Do not assuming that contents of the buffer
	returned from basename function will remain unchanged accross other
	function calls.

2001-07-03  H.J. Lu  <hjl@gnu.org>

	* scripttempl/elf.sc (DYNAMIC_PAD): Revert the change made on
	2001-07-03. It creates dynamic entries even for static binaries.

2001-07-03  Jakub Jelinek  <jakub@redhat.com>

	* scripttempl/elf.sc (DYNAMIC_PAD): New variable.
	(DYNAMIC): Use it to reserve few dynamic entries for
	post-linking tools.

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

	* emulparams/hppa64linux.sh: New file.
	* configure.tgt: hppa*64*-*-linux* uses hppa64linux.sh
	* Makefile.am (ALL_64_EMULATIONS): Add ehppa64linux.o
	(ehppa64linux.c): Add rule to make it.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2001-06-21  Hans-Peter Nilsson  <hp@axis.com>

	* ld.texinfo (Options, -r): Mention restrictions when using
	different object formats.

2001-06-19  Hans-Peter Nilsson  <hp@axis.com>

	* ldlang.c (lang_check): Emit fatal error if relocatable link
	between different object flavours with relocations in input.

2001-06-19  H.J. Lu  <hjl@gnu.org>

	* ld.texinfo (-E, --export-dynamic): Mention --version-script.
	(--version-script): Mention the language support.

2001-06-19  H.J. Lu <hjl@gnu.org>

	* ldlang.c (lang_check): Revert the change mode on 2001-06-15.

2001-06-18  H.J. Lu <hjl@gnu.org>

	* Makefile.am (ld.1): Remove the prefix `$(srcdir)/'.
	(diststuff): Add $(MANS).
	* Makefile.in: Regenerated.

	* ld.1: Removed.

2001-06-18  Hans-Peter Nilsson  <hp@axis.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
	Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
	* mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
	* ld.h (args_type): Remove member export_dynamic.  All users
	changed to use struct bfd_link_info member.

	* Makefile.am (ecriself.c, ed10velf.c, ei386moss.c): Depend on
	$(srcdir)/emultempl/elf32.em, not $(srcdir)/emultempl/generic.em.
	* Makefile.in: Regenerate.

2001-06-18  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (init_os): Add the newline to the einfo call.
	(lang_check): Likewise.
	(lang_do_version_exports_section): Likewise.

2001-06-15  H.J. Lu  <hjl@gnu.org>

	* lexsup.c (parse_args); Save optind to report unrecognized
	option.

2001-06-15  Hans-Peter Nilsson  <hp@axis.com>

	* ldlang.c (lang_check): Emit fatal error if relocatable link
	between different object flavours.

	* lexsup.c (parse_args) <case OPTION_EXPORT_DYNAMIC, case 'E'>:
	Set new link_info member export_dynamic.
	* ldmain.c (main): Initialize new link_info member export_dynamic.

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

	* ldlang.c (walk_wild): Only call walk_wild_file if
	lookup_name returns something.
	(lookup_name): If load_symbols fails, return NULL.
	(load_symbols): Change to a boolean function.
	(open_input_bfds): If load_symbols fails then do not make the
	executable.

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

	* ldlang.c (record_bfd_errors): Remove.

	* emultempl/aix.em: Fix copyright dates.

2001-06-07  Andreas Jaeger  <aj@suse.de>

	* elf_x86_64.sh (NONPAGED_TEXT_START_ADDR): Increase.
	(TEXT_START_ADDR): Likewise.

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

	* configure.host: Set HOSTING_CRT0/HOSTING_LIBS correctly for s/390.

2001-06-05  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>

	* emultempl/pe.em (init): Reduce default stack reserve to 0x200000.

2001-05-31  H.J. Lu  <hjl@gnu.org>

	* ldlang.c (open_input_bfds): Don't change the bfd error
	handler whilst loading symbols.

2001-05-28  Nick Clifton  <nickc@cambridge.redhat.com>

	* configure.tgt: Remove i370-mvs architecture, it is not currently
	supported.

2001-05-25  H.J. Lu  <hjl@gnu.org>

	* emulparams/ppcmacos.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
	like emulparams/aixppc.sh.

2001-05-25  H.J. Lu  <hjl@gnu.org>

	* emultempl/beos.em (gld${EMULATION_NAME}_before_parse): Move
	setting of output_filename after bfd_scan_arch.
	* emultempl/pe.em: Likewise.

2001-05-25  H.J. Lu  <hjl@gnu.org>

	* emulparams/aixrs6.sh: Add SYSCALL_MASK and SYMBOL_MODE_MASK
	like emulparams/aixppc.sh.

	* emultempl/aix.em (sc): Use ${srcdir}/emultempl/ostring.sed
	instead of ${srcdir}/emultempl/stringify.sed.

2001-05-25  Timothy Wall  <twall@oculustech.com>

	* emulparams/elf64_aix.sh: Change settings to match IBM linker
	output.

2001-05-25  Alan Modra  <amodra@one.net.au>

	* configure.host: Replace linuxoldld with linux*oldld.
	* configure.tgt: Likewise.

2001-05-24  H.J. Lu  <hjl@gnu.org>

	* emultempl/stringify.sed: Removed again.

2001-05-24  H.J. Lu  <hjl@gnu.org>

	* emultempl/aix.em (OUTPUT_ARCH): Defined.
	(gld${EMULATION_NAME}_before_parse): Initialize
	ldfile_output_architecture, ldfile_output_machine and
	ldfile_output_machine_name from ${OUTPUT_ARCH} if possible.
	* emultempl/beos.em: Likewise.
	* emultempl/elf32.em: Likewise.
	* emultempl/linux.em: Likewise.
	* emultempl/mipsecoff.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/sunos.em: Likewise.

2001-05-24 Tom Rix <trix@redhat.com>

	* emultempl/aix.em : (gld${EMULATION_NAME}_read_file)
	udate import file format.
	(change_symbol_mode) New, same
	(is_syscall) New, same
	* emulparams/aixppc.sh : add SYSCALL_MASK and SYMBOL_MODE_MASK
	* emulparams/aixppc64.sh : same
	* emulparams/aixrs6.sh : same
	* emulparams/ppcmacos.sh : same
	* emultempl/aix.em : use strtoull to parse options
	* Makefile.am : add eaixppc64 emulation for xcoff64
	* Makefile.in : same
	* configure.tgt : same

	* scripttempl/aix.sc : default text section offset to 0x10000000
	default data section offset to 0x20000000
	add .sv3264 and .sv64 pseudo sections
	loader and debug sections use the currect section offset.

	* emultempl/aix.em : Add xcoff64 support
	Add -binitfini support
	(gld${EMULATION_NAME}_before_parse) -binitfini
	(gld${EMULATION_NAME}_parse_args) same
	(gld${EMULATION_NAME}_before_allocation) format change for special
	sections

	* emulparams/aixppc64.sh : New file for xcoff64 support

2001-05-23  Alexandre Oliva  <aoliva@redhat.com>

	* emultempl/elf32.em (ELF_INTERPRETER_SET_DEFAULT): Use this new
	variable to avoid non-portable shell construct.

2001-05-23  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* ldmain.c (get_emulation): Add -mips5 command line argument.

2001-05-22  Alexandre Oliva  <aoliva@redhat.com>

	* emulparams/elf_i386_ldso.sh: New, copied from elf_i386.sh.
	(ELF_INTERPRETER_NAME): Define it.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
	it.
	* configure.tgt (targ_emul, targ_extra_emuls)
	[i[3456]86-*-solaris2*, i[3456]86-*-solaris*]: Use elf_i386_ldso
	as primary, elf_i386 as extra.
	* Makefile.am (ALL_EMULATIONS): Added eelf_i386_ldso.o.
	(eelf_i386_ldso.c): New rule.
	* Makefile.in: Rebuilt.

2001-05-22  Nick Clifton  <nickc@redhat.com>

	* lexsup.c (ld_options):  Allow -I to be an alias for
	--dynamic-linker.  This is for Solaris compatability.
	* ld.texinfo: Document that -I can be used.
	* ld.1: Regenerate.

2001-05-16  Alan Modra  <amodra@one.net.au>

	* ldlang.c (wild_doit): Use linker_has_input to reliably determine
	whether an input section is the first one assigned to an output
	section.
	Assorted formatting fixes.

2001-05-14  DJ Delorie  <dj@delorie.com>

	* Makefile.am (ld.dvi): Search bfd/doc for texinfo files.
	* Makefile.in: Ditto.

2001-05-11  Jakub Jelinek  <jakub@redhat.com>

	* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
	.gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
	output sections.
	* emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.

2001-05-11  Jakub Jelinek  <jakub@redhat.com>

	* ldlang.c (lang_process): Call bfd_merge_sections.

2001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* ldgram.y: Fix typo.

2001-05-03  H.J. Lu  <hjl@gnu.org>

	* emultempl/elf32.em: Include "libiberty.h".
	(gld${EMULATION_NAME}_vercheck): Call basename () to get the
	basename of the bfd filename.
	(gld${EMULATION_NAME}_stat_needed): Likewise.
	(gld${EMULATION_NAME}_try_needed): Likewise.
	(gld${EMULATION_NAME}_open_dynamic_archive): Likewise.

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

	* emultempl/pe.em: Include <ctype.h>.

2001-05-02  Johan Rydberg  <jrydberg@opencores.org>

	* emulparams/elf32openrisc.sh: New file.

	* Makefile.am: Add OpenRISC target.
	* Makefile.in: Regenerated.

	* configure.tgt: Add openrisc-*-* mapping.

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

	* emultempl/aix.em: Replace buystring with xstrdup.
	* emultempl/beos.em: Replace buystring with xstrdup.

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

	* ldfile.c: Include "libiberty.h".
	* ldlex.l: Likewise.

	* ldmisc.c (buystring): Removed.
	* ldmisc.h: Likewise.

	* ldfile.c: Replace buystring with xstrdup.
	* ldlang.c: Likewise.
	* ldlex.l: Likewise.
	* ldmain.c: Likewise.
	* ldmisc.c: Likewise.
	* lexsup.c: Likewise.
	* mpw-eppcmac.c: Likewise.

2001-04-30  Andreas Jaeger  <aj@suse.de>

	* emulparms/elf_x86_64.sh (MAXPAGESIZE): Fix value.

2001-04-28  Paul Sokolovsky  <Paul.Sokolovsky@technologist.com>

	* ldlang.c (load_symbols): Give emulation a chance
	to process unrecognized file before fatal error is
	reported, not after.

2001-04-27  Sean McNeil <sean@mcneil.com>

	* configure.tgt: Add arm-vxworks target.
	* scripttempl/armcoff.sc: Support .text or .data as a section name
	prefix.
	Define _etext.

2001-04-13  J.T. Conklin  <jtc@redback.com>

	* ld.texinfo: Document --fatal-warnings.
	* ld.1: Regenerate.

	* ldmisc.c (vfinfo): Set flag to inhibit making executable if
	warnings have been turned into errors.
	* lexsup.c (OPTION_WARN_FATAL): Define.
	(ld_options): Entry for --fatal-warnings.
	(parse_args): Handle OPTION_WARN_FATAL.
	* ld.h (ld_config_type): Add fatal_warnings field.

2001-04-13  Jakub Jelinek  <jakub@redhat.com>

	* ldmain.c (main): Default to discard_sec_merge.
	* lexsup.c (OPTION_DISCARD_NONE): Define.
	(ld_options): Add --discard-none.
	(parse_args): Handle OPTION_DISCARD_NONE.
	* ldlang.c (wild_doit): SEC_MERGE should be set in the output
	section only if SEC_MERGE and SEC_STRINGS flags and entsize of
	all its input sections match.

2001-04-05  Steven J. Hill  <sjhill@cotw.com>

	* Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
	(ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
	(eelf32ltsmip.c): New target.
	(eelf64btsmip.c): Likewise.
	(eelf64ltsmip.c): Likewise.
	* Makefile.in: Regenerated.

	* configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
	target.
	(mips*-*-linux-gnu*): Likewise.

	* emulparams/elf32ltsmip.sh: New. Traditional little endian
	MIPS taget.
	* emulparams/elf64btsmip.sh: New. Traditional 64bit big endian
	target.
	* emulparams/elf64ltsmip.sh: New. Traditional 64bit little
	endian target.

2001-04-05  Hans-Peter Nilsson  <hp@axis.com>

	* emulparams/criself.sh (EXECUTABLE_SYMBOLS): Cannot provide
	correct value of __Stext here.
	(TEXT_START_SYMBOLS): Define; always define __Stext, to start of
	.startup section.

	* emulparams/crislinux.sh: Remove FIXME.

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

	* emulparams/hppalinux.sh (MAXPAGESIZE): Set to 64k.
	(TEXT_START_ADDR, TARGET_PAGE_SIZE): Likewise.

2001-03-27  Hans-Peter Nilsson  <hp@axis.com>

	* configure.tgt (cris-*-*): Change default emulation to criself.
	(cris-*-*aout*): New rule.

2001-03-27  Matthew Wilcox  <willy@ldl.fc.hp.com>

	* emulparams/hppalinux.sh (MAXPAGESIZE): Set to 0x4000.
	(TEXT_START_ADDR, TARGET_PAGE_SIZE): Ditto.

2001-03-26  Andreas Jaeger  <aj@suse.de>

	* ld.texinfo (Overview): Fix syntax in texi code.

2001-03-25  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* ld.texinfo: Put @c man indications to generate the ld man page.
	When generating man, define all the variables.  Define SEEALSO
	and SYNOPSIS.  Re-organize some lines to avoid the cross references.
	* Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variables.
	(ld.1): Generate from ld.texinfo.
	* Makefile.in: Regenerate.

2001-03-23  Mark Elbrecht <snowball3@bigfoot.com>

	* scripttempl/i386go32.sc: Support the GCC flags '-ffunction-sections'
	and '-fdata-sections'. Set the VMA of STABS sections to zero.

2001-03-17  Ulrich Drepper  <drepper@redhat.com>

	* emultmpl/elf32.em (gld${EMULATION_NAME}_search_needed): If NAME
	is an absolute path look only for this file and not along the path.

2001-03-17  Ulrich Drepper  <drepper@redhat.com>

	* emultempl/elf32.em (OPTION_GROUP): New macro.
	Add new option Bgroup to longopts.
	(gld*_parse_args): Handle GROUP_OPTION and recognize -z defs.
	(gld*_list_options): Add -Bgroup and -z defs.
	* ld.1: Document -Bgroup and -z defs.
	* ld.texinfo: Likewise.

2001-03-07  Michael Meissner  <meissner@redhat.com>

	* scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal
	with sections created by -fdata-sections.
	(.dynbss,.bss): Ditto.

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

	* emultempl/m68kelf.em (m68k_elf_after_allocation): Call
	after_allocation_default, not gld..._before_allocation.

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/bootstrap.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.

2000-12-11  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.

2000-11-14  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/elf32avr.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>

	* lexsup.c: Add optional style to demangle switch
	* 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>

	* 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'.

2000-05-18  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>

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

2000-05-01  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.

2000-04-25  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.

2000-04-21  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.

2000-04-07  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".

	* scripttempl/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>

	* ldexp.c (fold_name): Make SIZEOF operator return byte count, not
	octet count.
	* 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.

2000-01-05  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:
