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

	* configure.in: Version 2.13.2.1 released, set is_release.
	* configure: Regenerate.

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

	* configure.in: Clear is_release on the branch again.
	* configure: Regenerate.

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

	* configure.in: Version 2.13.2 released, set is_release.
	* configure: Regenerate.

2002-12-20  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Bump version to 2.13.2.
	* configure: Regenerate.

2002-12-20  Paul Eggert  <eggert@twinsun.com>

	Port to POSIX 1003.1-2001.
	* acinclude.m4 (AM_INSTALL_LIBBFD): Do not rely on "test -o".
	* configure.in (build-warnings): Likewise.
	(Horrible hacks to build DLLs on Windows): Do not rely on "tail -1".
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

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

	* coff-h8300.c: Include libiberty.h.
	(h8300_reloc16_extra_cases): Check the hash table creator before
	referencing h8300 specific fields.  Stash the hash table pointer
	in a local var.  Comment typo fixes.
	(h8300_bfd_link_add_symbols): Likewise.

2002-12-17  Roger Sayle  <roger@eyesopen.com>

	* configure.host (ia64-*-hpux*): Support 64 bit targets using
	the HP compiler's "long long".

2002-12-15  Kazu Hirata  <kazu@cs.umass.edu>

	Merge from mainline:
	2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>
	* coff-h8300.c (h8300_reloc16_estimate): Do not optimize away
	jsr after a short jump.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.

2002-12-15  Daniel Jacobowitz  <drow@mvista.com>

	Merge from mainline:
	2002-11-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	* elf32-sh.c (sh_elf_relocate_section): Don't complain about
	unresolved debugging relocs in dynamic applications.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.

2002-12-10  Jason Thorpe  <thorpej@wasabisystems.com>

	* aoutx.h (set_section_contents): Allow an otherwise unrepresentable
	read-only section that lies after .text and before .data to be
	written into the output file and included in a_text.
	(translate_to_native_sym_flags): If an otherwise unrepresentable
	section was merged with .text, convert its symbols to N_TEXT
	symbols.
	* libaout.h (aout_section_merge_with_text_p): New macro.

2002-12-04  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (struct elf_m68k_link_hash_table): Add sym_sec
	member.
	(elf_m68k_link_hash_table_create): Initialize it.
	(elf_m68k_check_relocs): Handle symbols that are forced to be
	local due to visibility changes.
	(elf_m68k_adjust_dynamic_symbol): Likewise.
	(elf_m68k_size_dynamic_sections): Likewise.
	(elf_m68k_discard_copies): Likewise.
	(elf_m68k_relocate_section): Likewise.

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

	* elf64-ppc.c (edit_opd): Correct typo.

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

	* srec.c (srec_write_symbols): Restore '$' prefix to address
	accidentally removed in 2002-04-04 change.
	(srec_get_symtab): Use 0 instead of `(long) FALSE'.

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

	* elf.c (_bfd_elf_copy_private_section_data): Don't define bed.

2002-11-21  Richard Henderson  <rth@redhat.com>

	* elflink.h (elf_link_add_object_symbols): Don't overwrite the
	arch's st_other bits when merging visibilities.
	(elf_link_output_extsym): Tidy clearing of visibility field.

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

	Merge from mainline:
	2002-11-12  Thomas Moestl <tmm@FreeBSD.org>
	* elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): Correct
	references to large plt symbols.

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

	Merge from mainline.
	2002-11-07  Alan Modra  <amodra@bigpond.net.au>
	* elf64-ppc.c: Comment typo fixes.
	(ppc64_elf_merge_private_bfd_data): Allow BFD_ENDIAN_UNKNOWN input.

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

	Import this patch from mainline:

	2002-09-19  Nick Clifton  <nickc@redhat.com>

	* elflink.h (elf_fix_symbol_flags): When examining weak symbols,
	follow indirect links.

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

	* configure.in: Clear is_release on the branch after release.

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

	* configure.in: Bump version and set is_release.
	* configure: Regenerate.

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

	* po/da.po: Updated Danish translation.

2002-11-07  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Removed entries for elf32-i386qnx.c and
	elf32-i386qnx.lo.
	* Makefile.in: Regenerate.
	* config.bfd: Changed i[3456]86-*-nto-qnx* targ_defvec from
	bfd_elf32_i386qnx_vec to bfd_elf32_i386_vec.
	* configure.in: Removed support for bfd_elf32_i386qnx_vec.
	* configure: Regenerate.
	* elf32-i386qnx.c: Removed.
	* elf.c: Removed calls to QNX specific set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf32-i386.c: Removed QNX specific #ifdef ELF32_I386_C_INCLUDED.
	* targets.c: Removed bfd_elf32_i386qnx_vec.
	* elfxx-target.h: Removed QNX specific elf_backend_set_nonloadable_filepos,
	elf_backend_is_contained_by_filepos, and elf_backend_copy_private_bfd_data_p.
	* elf-bfd.h: Removed QNX specific set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.

2002-11-06  David O'Brien  <obrien@FreeBSD.org>
	    Alan Modra  <amodra@bigpond.net.au>

	* elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of
	dynamic relocs against section symbols for the output section vma.

2002-11-05  Elias Athanasopoulos  <eathan@otenet.gr>

	* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
	non-NULL before dereferencing.

2002-11-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* vms.c (vms_object_p): Restore the start address when returning
	NULL.

2002-10-31  David O'Brien  <obrien@FreeBSD.org>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't mix
	signed and unsigned in comparison.

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

	* bfd-in2.h: Regenerated.
	* po/SRC-POTFILES.in: Regenerated.
	* po/bfd.pot: Regenerated.

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

	* coffcode.h: Remove extraneous '\'.

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

	Merge from mainline:
	2002-10-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
	* aoutx.h (NAME(aout,swap_ext_reloc_in)): Cast bytes->r_index to
	unsigned int.  Cast RELOC_BASE10, RELOC_BASE13 and RELOC_BASE22 to
	unsigned int.
	(NAME(aout,final_link)): Cast enum used in assignment.
	(aout_link_write_symbols): Cast enums in comparisons, int values to
	boolean, enums in assignments to int.
	(aout_link_input_section_std): Cast rel->r_index to unsigned int.
	(aout_link_input_section_ext): Likewise.  Cast enums used in comparisons
	with unsigned ints.
	(aout_link_reloc_link_order): Cast enum to int in assignment.
	* archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr
	calls to char *.
	* bfd-in.h (bfd_set_section_vma): Cast enum true to unsigned int in
	assignment.
	* bfd-in2.h (bfd_set_section_vma): Likewise.
	* bfd.c (bfd_record_phdr): Cast enums in assignments.
	* binary.c (bfd_alloc): Cast enum to long.
	* coffgen.c (_bfd_coff_is_local_label_name): Cast return to boolean.
	* dwarf2.c (read_abbrevs): Add casts to enum types.
	(read_attribute_value): Likewise.
	(arange_add): Cast result of bfd_zalloc call.
	(comp_unit_contains_address): Return true and false.
	(comp_unit_find_nearest_line): Cast return to boolean.
	* format.c (bfd_check_format_matches, bfd_set_format): Likewise.
	* gen-aout.c: define macro '_' if not defined.
	* libbfd.c (bfd_realloc): Cast malloc and realloc to PTR.
	(bfd_bwrite): Cast bfd_realloc to bfd_byte *.
	(bfd_write_bigendian_4byte_int): Cast return to boolean.
	(bfd_seek): Cast bfd_realloc to bfd_byte *.
	(bfd_generic_is_local_label_name): Cast return to boolean.
	* libcoff.h (_bfd_coff_adjust_symndx): Remove extraneous '\'.
	* linker.c (_bfd_link_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(_bfd_generic_link_hash_newfunc): likewise.
	(_bfd_generic_final_link): Cast enum to unsigned int.
	* merge.c (sec_merge_emit): Cast return to boolean.
	(merge_strings): Add casts to const unsigned char *.
	* reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int.
	(bfd_generic_get_relocated_section_content): Cast enum to unsigned int.
	* section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(bfd_set_section_content): Add cast to PTR in comparison.
	* srec.c (S3Forced): Initialize to false.
	(srec_get_symtab): Cast return value from bfd_alloc to asymbol *.
	* stabs.c (_bfd_link_section_stabs): Cast enum to int in comparisons.
	(_bfd_discard_section_stabs): Likewise.  Also cast return to boolean.
	* syms.c (bfd_is_undefined_symclass): Cast return to boolean.
	(_bfd_stab_section_find_nearest_line): Cast enum to bfd_byte in
	comparisons.

	2002-10-23  Jakub Jelinek  <jakub@redhat.com>
	* elf64-alpha.c (elf64_alpha_check_relocs): Only put maybe_dynamic
	relocs into shared lib non-allocated reloc sections.

	2002-10-23  Nathan Tallent  <eraxxon@alumni.rice.edu>
	* dwarf2.c (add_line_info): Ensure that the line_info_table is
	sorted even when given an out-of-order line sequence.
	(lookup_address_in_line_info_table): When an exact VMA match is
	not found, return line information with the closest VMA.

	2002-10-21  Alan Modra  <amodra@bigpond.net.au>
	* targets.c (bfd_target_list): Don't return the default target twice.

	2002-10-19  H.J. Lu <hjl@gnu.org>
	* elflink.h (elf_link_add_object_symbols): Correctly handle
	DT_RPATH and DT_RUNPATH.

	2002-10-16  Jakub Jelinek  <jakub@redhat.com>
	* config.bfd (s390-*-linux*): Add targ64_selvecs.
	(s390x-*-linux*): Add targ_selvecs.

	2002-10-16  Alan Modra  <amodra@bigpond.net.au>
	* elflink.h (elf_link_add_object_symbols): Error out on dynamic objects
	loaded with --just-symbols.

	* elf32-i386qnx.c (TARGET_LITTLE_NAME): Define.

	2002-10-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	* config.bfd (sh*eb-*-linux*, sh*-*-linux*): Add the alternative
	endian vector to targ_selvecs.

	2002-10-08  H.J. Lu <hjl@gnu.org>
	* elf32-i386.c (elf_i386_relocate_section): Re-arrange the
	IE->LE transition for R_386_TLS_IE.

	2002-10-07  Mark Elbrecht  <snowball3@softhome.net>
	* cofflink.c (mark_relocs): Don't mark relocations in excluded
	sections.

	2002-10-05  Alexandre Oliva  <aoliva@redhat.com>
	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Set the type
	of the other two relocations packed with a REL32 to NONE.

	2002-10-02  Stephen Clarke <stephen.clarke@superh.com>
	* elf32-sh.c (elf_sh_link_hash_entry): Add gotplt_refcount.
	(sh_elf_link_hash_newfunc): Initialize it.
	(allocate_dynrelocs): Transfer gotplt refs from plt.refcount
	to got.refcount for symbols that are forced local or when
	we have direct got refs.
	(sh_elf_gc_sweep_hook): Adjust gotplt_refcount.  Use it
	to correctly adjust got.refcount and plt.refcount.
	(sh_elf_copy_indirect_symbol): Copy gotplt_refcount across.
	(sh_elf_check_relocs): Increment gotplt_refcount.

	2002-10-01  Jakub Jelinek  <jakub@redhat.com>
	* elf32-i386.c (elf_i386_relocate_section): Fix
	movl foo@indntpoff, %eax IE->LE transition.

	2002-09-28  Jason Thorpe  <thorpej@wasabisystems.com>
	* elf32-vax.c (elf_vax_size_dynamic_section): Don't strip
	.got sections.

	2002-09-27  Matt Thomas  <matt@3am-software.com>
	* elf32-vax.c (elf_vax_check_relocs): Remove unused
	local_got_refcounts usage.  Remove allocation of got slot.
	(elf_vax_gc_sweep_hook): Remove unused local_got_refcounts usage.
	Remove de-allocation of got slot.
	(elf_vax_size_dynamic_section): Fix some indentation.  Add hash
	traversal for elf_vax_instantiate_got_entries.  Allow empty .got
	sections to be GC'ed.
	(elf_vax_instantiate_got_entries): New function.
	(elf_vax_relocate_section): Simplify R_VAX_GOT32 handling.  Remove
	tests that are now handled by elf_vax_instantiate_got_entries.
	Assert GOT entry falls within .got section size.  Remove redundant
	comparisions.  Fix comments.

	2002-09-24  Jakub Jelinek  <jakub@redhat.com>
	* elf32-sparc.c (elf32_sparc_relocate_section): Put R_SPARC_RELATIVE
	addend into r_addend, not *r_offset.
	(elf32_sparc_finish_dynamic_symbol): Likewise.
	* elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Clear xword at
	R_SPARC_RELATIVE's r_offset.

	2002-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Cast signedness
	mismatch.

2002-10-14  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: Increment
	VALUE, not ADDEND.

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

	* coff-arm.c (record_arm_to_thumb_glue): Avoid type-punned pointers.
	(record_thumb_to_arm_glue): Likewise.
	* ecoff.c (ecoff_link_add_externals): Likewise.
	* elf32-arm.h (record_arm_to_thumb_glue): Likewise.
	(record_thumb_to_arm_glue): Likewise.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Likewise.
	* elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-alpha.c (elf64_alpha_create_dynamic_sections): Likewise.
	* elf64-ppc.c (func_desc_adjust): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	(sh64_elf64_create_dynamic_sections): Likewise.
	* elflink.c (_bfd_elf_create_got_section): Likewise.
	(_bfd_elf_create_dynamic_sections): Likewise.
	(_bfd_elf_create_linker_section): Likewise.
	* elflink.h (elf_add_default_symbol): Likewise.
	(elf_link_create_dynamic_sections): Likewise.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise.
	* elfxx-ia64.c (elfNN_ia64_aix_add_symbol_hook): Likewise.
	* elfxx-mips.c (mips_elf_create_got_section): Likewise.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_create_dynamic_sections): Likewise.
	* linker.c (generic_link_add_symbol_list): Likewise.
	* xcofflink.c (xcoff_link_add_symbols): Likewise.

	* elfxx-ia64.c (oor_brl, oor_ip): Conditionally define.

	* elf64-ppc.c (edit_opd): Only zero opd syms when function is
	completely removed.  Correct local sym adjustment.

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

	* elf64-ppc.c (edit_opd): Correct test for discarded sections.

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

	* elflink.h (elf_link_input_bfd): Remove BFD_VERSION_DATE dependent
	code.

	* elf64-ppc.c (ppc64_elf_build_stubs): Increment .glink indx.

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

	* elf.c (map_sections_to_segments): Correct test for start of
	writable section in the same page as end of read-only section.

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

	* elf64-ppc.c (ppc_build_one_stub): Don't build glink stubs here.
	(ppc64_elf_build_stubs): Build them here instead.

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

	Merge from mainline:
	2002-09-23  Alan Modra  <amodra@bigpond.net.au>
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Zero relocs
	for discarded FDEs.  Remove redundant assignment.
	* elflink.h (elf_bfd_discard_info): Save edited relocs.

	2002-09-23  Nathan Tallent  <eraxxon@alumni.rice.edu>
	* dwarf2.c (decode_line_info): Update to correctly decode
	the (non-standard DWARF2) out-of-order address sequences
	generated by the Intel C++ 6.0 compiler for ia64-Linux.

	2002-09-22  H.J. Lu <hjl@gnu.org>
	* elf64-alpha.c (elf64_alpha_merge_ind_symbols): Don't merge
	the relocation count between different .reloc sections.

	2002-09-22  Mark Elbrecht  <snowball3@softhome.net>
	* config.bfd: For DJGPP targets, match with any cpu and any machine.

	2002-09-21  Alan Modra  <amodra@bigpond.net.au>
	* elfcode.h (elf_slurp_reloc_table_from_section): Make "symcount"
	unsigned.  Move "symcount" assignment out of loop.

	2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>
	* dwarf2.c (_bfd_dwarf2_find_nearest_line): If address length is
	zero, set it to 8 for (non-standard) 64-bit DWARF2 formats
	(e.g. IRIX64).

	2002-09-19  Jakub Jelinek  <jakub@redhat.com>
	* reloc.c (BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE,
	BFD_RELOC_386_TLS_GOTIE): Add.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf32-i386.c (elf_howto_table): Add R_386_TLS_TPOFF, R_386_TLS_IE
	and R_386_TLS_GOTIE.
	(elf_i386_reloc_type_lookup): Handle it.
	(struct elf_i386_link_hash_entry): Change tls_type type to unsigned
	char instead of enum, change GOT_* into defines.
	(GOT_TLS_IE_POS, GOT_TLS_IE_NEG, GOT_TLS_IE_BOTH): Define.
	(elf_i386_tls_transition): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	(elf_i386_check_relocs): Likewise.  Avoid crash if local symbol is
	accessed both as normal and TLS symbol.  Move R_386_TLS_LDM and
	R_386_PLT32 cases so that R_386_TLS_IE can fall through.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_gc_sweep_hook): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(allocate_dynrelocs): Allocate 2 .got and 2 .rel.got entries if
	tls_type is GOT_TLS_IE_BOTH.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_finish_dynamic_symbol): Use tls_type & GOT_TLS_IE to catch
	all 4 GOT_TLS_* TLS types.

	2002-09-18  Daniel Jacobowitz  <drow@mvista.com>
	* elfcode.h (elf_slurp_reloc_table_from_section): Check
	correct relocation count.

	2002-09-17  Daniel Jacobowitz  <drow@mvista.com>
	* bfd-in.h (bfd_get_dynamic_symcount): Define.
	* bfd.c (struct _bfd): Add dynsymcount.
	* bfd-in2.h: Regenerated.
	* elf.c (_bfd_elf_canonicalize_dynamic_symtab): Set
	abfd->dynsymcount.
	* elfcode.h (elf_slurp_reloc_table_from_section): Check
	for overflow.

	2002-09-17  Alan Modra  <amodra@bigpond.net.au>
	* elf64-alpha.c (alpha_elf_size_info): Make static.

	2002-09-17  Jakub Jelinek  <jakub@redhat.com>
	* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Clear .got word
	even if generating R_PPC_RELATIVE reloc.
	(ppc_elf_relocate_section): Make sure relocation is performed if
	skip == -2.  Clear memory at r_offset when creating dynamic
	relocation.

	2002-09-16  David O'Brien  <obrien@FreeBSD.org>
	* elf32-i386-fbsd.c: Always label using the EI_OSABI method.
	It is benign for FreeBSD < 4.1.  Minor reformatting.
	* elf64-alpha-fbsd.c: Likewise.

	2002-09-16  Nathan Tallent  <eraxxon@alumni.rice.edu>
	* ecoff.c (_bfd_ecoff_slurp_symbolic_info) <ioptMax>: Fix error
	reading ECOFF information: 'ioptMax' refers to the actual *size*
	of the optimization symtab, not the number of entries.

	2002-09-16  Jakub Jelinek  <jakub@redhat.com>
	* elf_i386_relocate_section (R_386_TLS_TPOFF32): Negate addend.

	2002-09-13  Daniel Jacobowitz  <drow@mvista.com>
	* elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update
	ELF_LINK_HASH_NEEDS_PLT logic.

	2002-09-11  Nick Clifton  <nickc@redhat.com>
	* po/da.po: New Danish translation file.
	* configure.in (LINGUAS): Add 'da'.
	* configure: Regenerate.

	2002-09-11  Jakub Jelinek  <jakub@redhat.com>
	* elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is
	NULL.
	(elf_i386_relocate_section): Return false after printing error about
	unresolvable relocation.

	2002-09-11  Jeffrey Law  <law@redhat.com>
	* elf32-h8300.c (elf32_h8_relax_section): Fix typo.

	2002-09-06  Andrew Haley  <aph@cambridge.redhat.com>
	* elf.c (_bfd_elf_find_nearest_line): Check functionname_ptr and
	line_ptr before deciding we've found a symbol.

	2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
	* bfd-in.h (align_power): Cast constants to bfd_vma type.
	* bfd-in2.h (align_power): Likewise.

	2002-08-24  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	* elf32-sh.c (sh_elf_copy_indirect_symbol): New.
	(create_got_section, allocate_dynrelocs, readonly_dynrelocs):
	Likewise.
	(struct elf_sh_pcrel_relocs_copied): Removed.
	(struct elf_sh_dyn_relocs): New.
	(struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied
	field with dyn_relocs.
	(struct elf_sh_link_hash_table): Add short-cuts to get dynamic
	sections and sym_sec.
	(sh_elf_link_hash_newfunc): Clear dyn_relocs.
	(sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec.
	(sh_elf_create_dynamic_sections): Use create_got_section instead
	of _bfd_elf_create_got_section.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_create_dynamic_sections): Use short-cuts to the dynamic
	sections.
	(sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections,
	sh_elf_relocate_section, sh_elf_check_relocs,
	sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections):
	Likewise.
	(sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the
	dynamic relocations and avoiding the copy relocation when we
	didn't find any dynamic relocations in the section which has
	contents or is read-only.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(sh_elf_size_dynamic_sections): Don't reset the size of
	.rela.got section even if dynamic_sections_created flag is off.
	Don't use sh_elf_discard_copies. Scan all input bfd and use
	allocate_dynrelocs. Call readonly_dynrelocs to determine
	whether we need DT_TEXTREL.
	(sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine
	whether the symbol was never referred to.
	(sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL.
	(sh_elf_gc_sweep_hook): Fill with the real sweep function.
	(sh_elf_check_relocs): Call create_got_section if the short-cut
	to .got is null. Increment reference counters only instead of
	allocating space on dynamic sections here. Don't conditionalize
	uninitialized got.offset value when marking the symbol as a
	global offset table entry. Keep relocations for symbols satisfied
	by a dynamic library to avoid copy relocations for the symbol.
	Set dynobj field of an elf hash table if needed.
	(sh_elf_finish_dynamic_sections): Handle null section pointer
	correctly.
	(elf_backend_copy_indirect_symbol): Defined.
	(elf_backend_can_refcount): Defined.

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

	2002-08-21  Stephen Clarke <stephen.clarke@superh.com>
	* bfd/elf32-sh.c (sh_elf_size_dynamic_sections): Zero
	initialize dynamic section.
	* bfd/elf64-sh64.c (sh64_elf64_size_dynamic_sections):
	Likewise.

	2002-08-13  H.J. Lu <hjl@gnu.org>
	* elflink.h (NAME(bfd_elf,size_dynamic_sections): Don't count
	definitions in shared objects when checking symbol with
	undefined version.

	2002-08-10  H.J. Lu <hjl@gnu.org>
	* elflink.h (elf_add_default_symbol): Preserve section across
	elf_merge_symbol.

	2002-08-09  Nick Clifton  <nickc@redhat.com>
	* po/sv.po: Updated Swedish translation.

	2002-08-08  Alan Modra  <amodra@bigpond.net.au>
	* elflink.h (elf_link_output_extsym): Don't output symbols from
	SEC_EXCLUDE sections.

	* aoutx.h (aout_link_write_symbols): Correct handling of warning syms.

	2002-08-08  H.J. Lu <hjl@gnu.org>
	* elflink.h (elf_add_default_symbol): Don't warn a defintion
	overrides an indirect versioned symbol.

	2002-08-07  Alan Modra  <amodra@bigpond.net.au>
	* elf64-ppc.c (edit_opd): Arrange to drop symbols for discarded .opd
	entries.

	2002-08-07  Jakub Jelinek  <jakub@redhat.com>
	* elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
	for R_386_TLS_TPOFF32 relocs against symndx 0.

	2002-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
	* elfxx-mips.c (mips_elf_global_got_index): Avoid segfault if
	g->global_gotsym is NULL.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* xcofflink.c (xcoff_write_global_symbol): Set n_scnum for abs_section.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* elf64-ppc.c (ppc64_elf_howto_raw): Zero all src_mask entries.

	2002-08-06  H.J. Lu <hjl@gnu.org>
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Check symbol
	with undefined version if needed.
	(elf_link_assign_sym_version): Match a default symbol with a
	version without definition. No need to hide the default
	definition separately.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* coff-rs6000.c: Formatting fixes.
	(xcoff_calculate_relocation): Use PARAMS in declaration.
	(xcoff_complain_overflow): Likewise.
	(xcoff_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff_vec): Likewise.
	(bfd_pmac_xcoff_backend_data): Likewise.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c: Formatting fixes.
	(xcoff64_calculate_relocation): Use PARAMS in declaration.
	(xcoff64_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff64_vec): Likewise.
	(bfd_xcoff_aix5_backend_data): Likewise.
	(aix5coff64_vec): Likewise.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* coff-rs6000.c: (xcoff_rtype2howto): Don't place reloc address in
	addend.
	* coff64-rs6000.c: (xcoff64_rtype2howto): Likewise.

	2002-08-06  Alan Modra  <amodra@bigpond.net.au>
	* coff-rs6000.c (xcoff_howto_table): Revert some of last change to
	mask entries.  Use complain_overflow_dont for R_REF.
	(xcoff_reloc_type_ba): Revert last change.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Likewise.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Likewise.
	(xcoff64_ppc_relocate_section): Likewise.
	(xcoff64_howto_table): Revert some of last change to mask entries.
	Use complain_overflow_dont for R_REF.

	* coff-rs6000.c (xcoff_howto_table): Fix src_mask entries.  Make all
	relocs with bitsize == 16 have size = 1.
	(xcoff_reloc_type_ba): Correct src_mask and dst_mask adjustment.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Correct src_mask and
	dst_mask adjustment.
	(xcoff64_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	(xcoff64_howto_table): Fix src_mask entries.  Make all relocs with
	bitsize == 16 have size = 1.

	2002-07-31  Nick Clifton  <nickc@redhat.com>
	* bfd.c (bfd_alt_mach_code): Rename parameter 'index' to
	'alternative' in order to avoid shadowing global symbol of the
	same name.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

	2002-07-30  Alan Modra  <amodra@bigpond.net.au>
	* aoutx.h (some_aout_object_p): Clean up tdata properly on error.
	* archive.c (bfd_generic_archive_p): Likewise.
	* coff-rs6000.c (_bfd_xcoff_archive_p): Likewise.
	(_bfd_xcoff_archive_p): Use bfd_scan_vma in place of strtol.
	* coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
	(xcoff64_archive_p): Likewise.
	(xcoff64_openr_next_archived_file): Likewise.
	(xcoff64_archive_p): Clean up tdata properly on error.
	* coffgen.c (coff_real_object_p): Likewise.
	(coff_object_p): Release filehdr and opthdr.
	* ecoff.c (_bfd_ecoff_archive_p): Clean up tdata properly on error.
	* ieee.c (ieee_archive_p): Likewise.
	* ihex.c (ihex_object_p): Likewise.
	(ihex_mkobject): Always allocate tdata.
	* peicode.h (pe_ILF_object_p): Release bfd_alloc'd buffer on error.
	* srec.c (srec_mkobject): Always allocate tdata.
	(srec_object_p): Clean up tdata properly on error.
	(symbolsrec_object_p): Likewise.
	* versados.c (versados_object_p): Likewise.
	* vms-misc.c (_bfd_vms_get_record): Use bfd_malloc instead of malloc,
	and bfd_realloc instead of realloc.
	(add_new_contents): Use bfd_alloc instead of bfd_malloc for sections.
	* vms.c (vms_initialize): Always allocate tdata.  Use bfd_alloc in
	place of bfd_malloc, simplifying error freeing.  Free hash table too.
	(vms_object_p): Clean up tdata on error.
	(vms_mkobject): Don't complain on stderr if vms_initialize fails.
	(vms_close_and_cleanup): Adjust for bfd_alloc use.

	2002-07-17  Ian Rickards  <irickard@arm.com>
	* dwarf2.c (concat_filename): If we can't establish the directory
	just return the filename.

	2002-07-16  Alan Modra  <amodra@bigpond.net.au>
	* elflink.h: Formatting fixes, tidy prototypes.
	(elf_link_assign_sym_version): Move common code out of loop.

	2002-07-04  Bruno Haible  <bruno@clisp.org>
	* elf32-i386.c: Don't defined ELF_ARCH etc. if this file is included
	by a target variant implementation.
	* elf64-alpha.c: Likewise.
	* elf32-i386-fbsd.c: New file.
	* elf64-alpha-fbsd.c: New file.
	* targets.c: Support bfd_elf32_i386_freebsd_vec and
	bfd_elf64_alpha_freebsd_vec.
	* configure.in: Accept the vectors bfd_elf32_i386_freebsd_vec,
	bfd_elf64_alpha_freebsd_vec.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i386-fbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386-fbsd.c.
	(BFD64_BACKENDS): Add elf64-alpha-fbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-alpha-fbsd.c.
	(elf32-i386-fbsd.lo, elf64-alpha-fbsd.lo): Add dependencies.
	* config.bfd: For FreeBSD targets, set targ_defvec to a FreeBSD
	specific targets. Define OLD_FREEBSD_ABI_LABEL if appropriate.

2002-09-21  David O'Brien  <obrien@FreeBSD.org>

	Merge from mainline:
	2002-08-17  Andrew Cagney  <ac131313@redhat.com>
	* elf.c (bfd_elf_get_elf_syms): Change type of `esym' to
	`bfd_byte'.

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

	* coffcode.h (coff_set_arch_mach_hook): Handle W65MAGIC.

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

	* configure.in: Unset is_release.
	* configure: Regenerate.

	* elf-bfd.h (struct elf_backend_data): Add struct elf_backend_data
	param to elf_backend_copy_indirect_symbol.
	(_bfd_elf_link_hash_copy_indirect): Likewise.
	* elflink.h (elf_add_default_symbol, elf_fix_symbol_flags): Adjust
	calls to copy_indirect_symbol.
	* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
	* elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
	* elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
	* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elf.c (_bfd_elf_link_hash_copy_indirect): Likewise.  Properly
	test refcounts for "used" values.

2002-08-15  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Add
	missing check for whether the symbol is referenced by DSO before
	unexporting it as an unneeded dynamic symbol.

2002-08-05  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Bump version, set is_release.
	* configure: Regenerated.

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

	Merge from mainline:
	2002-07-31  Jakub Jelinek  <jakub@redhat.com>
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Swap tls_type
	if _bfd_elf_link_hash_copy_indirect will swap got.refcount.

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

	Merge from mainline:
	2002-07-30  Nick Clifton  <nickc@redhat.com>
	* po/sv.po: Updated Swedish translation.

	2002-07-30  Jakub Jelinek  <jakub@redhat.com>
	* elf.c (elf_fake_sections): Fix up .tbss sh_size and sh_type.

	2002-07-26  Chris Demetriou  <cgd@broadcom.com>
	* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Merge ASE
	flags into resulting BFD.

	2002-07-25  Alan Modra  <amodra@bigpond.net.au>
	* elf-bfd.h (_bfd_elf32_link_record_local_dynamic_symbol): Define
	as elf_link_record_local_dynamic_symbol.
	(_bfd_elf64_link_record_local_dynamic_symbol): Likewise.
	(elf_link_record_local_dynamic_symbol): Declare.  Now returns int.
	* elflink.h (elf_link_record_local_dynamic_symbol): Move to..
	* elflink.c: .. here.  Use bfd_elf_get_elf_syms.  Check whether an
	attempt is made to record a symbol in a discarded section, and
	return `2' in that case.

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

	From John Reiser <jreiser@BitWagon.com>
	* elf32-i386.c (elf_i386_link_hash_table_create): Clear
	tls_ldm_got.refcount.

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: Updates Spanish translation.

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

	* configure.in: Bump version for snapshot.
	* configure: Regenerated.

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

	* po/bfd.pot: Regenerated.

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

	* elf-bfd.h (struct elf_backend_data): Add new bitfield
	'want_p_paddr_set_to_zero'.
	* elfxx-target.h: Set default value for want_p_paddr_set_to_zero
	to false;
	* elfxx-ia64.c: Set want_p_paddr_set_zero for HPUX target.
	* elf.c (copy_private_bfd_data): Test want_p_paddr_set_zero.

2002-07-23  Gabor Keresztfalvi  <keresztg@mail.com>

	* nlmcode.h (nlm_swap_auxiliary_headers_out): Swapped the order of
	the MeSsAgEs and CoPyRiGhT tags to make >=NW4.x NLM loaders to
	show the Copyright string.

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

	* po/fr.po: New French translation.
	* po/sv.po: New Swedish translation.

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

	* elflink.h (elf_link_input_bfd): Don't change internal symbols
	when outputting relocs.

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

	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only insert
	DT_PLTGOT into the dynamic section if there is a PLT.

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

	* elfxx-ia64.c: (elfNN_ia64_modify_segment_map): Properly scan
	PT_IA_64_UNWIND segments for a given section.

2002-07-16  Moritz Jodeit  <moritz@jodeit.org>

	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Correct order of memset args.

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

	* elflink.h (elf_link_input_bfd): Don't call reloc_emitter when
	reloc section size is zero.  Correct reloc output location.

	Merge from mainline.
	2002-07-14  H.J. Lu <hjl@gnu.org>
	* elflink.h (elf_link_assign_sym_version): Hide the default
	definition if there is a hidden versioned definition.

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

	* elf-hppa.h (elf_hppa_reloc_final_type): Use R_PARISC_PCREL16F as
	the final type for the e_fsel selector when generating PA2.0W code.
	(elf_hppa_relocate_insn): Provide support for PA2.0W 16-bit format 1
	relocations.

2002-07-12  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): Drop nonsensical
	dynamic reference test in assertion when initializing GOT with
	static contents.  Just assert that there are either no dynamic
	sections, the symbol is defined in the regular objects or that the
	symbol is undef weak.  Tweak comment.
	(elf_cris_finish_dynamic_symbol): Emit .got reloc for a program
	only if the symbol isn't defined in the program and isn't undef
	weak.
	(elf_cris_adjust_dynamic_symbol): Simplify condition for getting
	rid of PLT entry: only do it if the symbol isn't defined in a DSO.
	When doing so, clear ELF_LINK_HASH_NEEDS_PLT.  Tweak comments.
	(elf_cris_discard_excess_program_dynamics): Don't consider
	ELF_LINK_HASH_REF_DYNAMIC when omitting .got runtime relocs.

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

	* elf32-i386.c (elf_i386_relocate_section): Don't complain about
	unresolved debugging relocs in dynamic applications.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

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

	* elf64-ppc.c (ONES): Define.
	(ppc64_elf_howto_table): Use ONES here to avoid warnings.  Fill in
	missing src_mask fields.  Tweak R_PPC64_NONE, R_PPC64_COPY.  Fill
	in missing dst_mask fields on R_PPC64_PLT32, R_PPC64_PLTREL32.

	* elf64-ppc.c (ppc64_elf_get_symbol_info): Delete.
	(ppc64_elf_set_private_flags): Delete.
	(ppc64_elf_section_from_shdr): Delete.
	(ppc64_elf_merge_private_bfd_data): Remove flag checking/merging code.
	(ppc64_elf_fake_sections): Delete.
	(bfd_elf64_bfd_set_private_flags): Don't define.
	(bfd_elf64_get_symbol_info): Likewise.
	(elf_backend_section_from_shdr): Likewise.
	(elf_backend_fake_sections): Likewise.

2002-07-10  Marco Walther  <Marco.Walther@sun.com>

	* elf.c: (assign_section_numbers) Set sh_entsize for .stab only
	when not already set.
	* elf64-sparc.c: (sparc64_elf_fake_sections): New function.
	(elf_backend_fake_sections): Define.

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

	* merge.c (_bfd_merge_section): Remove redundant output_section check.
	Formatting.
	(_bfd_merge_sections): Don't set SEC_EXCLUDE on unused sections.

2002-07-09  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): Move sanity-check for
	NULL sym_hashes to just before use.
	<case R_CRIS_32_GOTREL>: In test for local symbol, accept also
	symbol with non-default visibility.
	<case R_CRIS_32_GOTREL, case R_CRIS_32_PLT_GOTREL>: Ditto.
	<case R_CRIS_8_PCREL, case R_CRIS_16_PCREL, case R_CRIS_32_PCREL>:
	Ditto.
	(cris_elf_gc_sweep_hook): Only decrease h->plt.refcount for
	symbol with non-default visibility.
	(cris_elf_check_relocs): At tests for local symbol before
	increasing h->plt.refcount, also check for non-default
	visibility.  Ditto when checking for local symbol to eliminate
	pc-relative runtime relocs.

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

	* elf.c: Formatting.
	(IS_SOLARIS_PT_INTERP): Add p_paddr and p_memsz checks.
	(INCLUDE_SECTION_IN_SEGMENT): Remove IS_SOLARIS_PT_INTERP.
	(copy_private_bfd_data): Set p_vaddr on broken Solaris PT_INTERP
	segments.

2002-07-07  Mark Mitchell  <mark@codesourcery.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* cofflink.c (_bfd_coff_final_link): On PE COFF systems, take into
	account the impact of relocation count overflow when computing
	section offsets.
	* coffcode.h (coff_write_relocs): Use obj_pe when deciding whether
	or not to apply the PE COFF reloc overflow handling.  Fix a
	fencepost error in deciding whether or not to use that technique.

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

	* elf-bfd.h (struct elf_reloc_cookie): Remove locsym_shndx,
	change type of locsyms.
	(bfd_elf_get_elf_syms): Declare.
	* elf.c (bfd_elf_get_elf_syms): New function.
	(group_signature): Use bfd_elf_get_elf_syms.
	(bfd_section_from_r_symndx): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Likewise.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.  Reorganise to increase
	locality of various data structures.  Properly free internal relocs.
	(elf_bfd_final_link): Properly free internal relocs.
	(elf_link_check_versioned_symbol): Use bfd_elf_get_elf_syms.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.  Properly free internal relocs.
	(elf_gc_sweep): Properly free internal relocs.
	(elf_reloc_symbol_deleted_p): No need to swap syms in.
	(elf_bfd_discard_info): Use bfd_elf_get_elf_syms.  Properly free
	internal relocs.
	* elf-m10200.c (mn10200_elf_relax_section): Use bfd_elf_get_elf_syms.
	Properly free possibly cached info.
	(mn10200_elf_relax_delete_bytes): Remove symbol swapping code.
	(mn10200_elf_symbol_address_p): Pass in internal syms.  Remove
	symbol swapping code.
	(mn10200_elf_get_relocated_section_contents): Use bfd_elf_get_elf_syms.
	Properly free possibly cached info.
	* elf-m10300.c (mn10300_elf_relax_section): As above for elf-m10200.c.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): As above for elf-m10200.c.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-m32r.c (m32r_elf_relax_section): As above for elf-m10200.c.
	(m32r_elf_relax_delete_bytes): Likewise.
	(m32r_elf_get_relocated_section_contents): Likewise.
	* elf32-sh.c (sh_elf_reloc_loop): Free section contents using
	elf_section_data to determine whether cached.
	(sh_elf_relax_section): As above for elf-m10200.c.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): As above.
	* elf64-alpha.c (elf64_alpha_relax_section): As above.  Also delay
	reading of local syms.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): As above.
	* elfxx-ia64.c (elfNN_ia64_relax_section): As above.
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Properly free internal
	relocs.
	* elf32-arm.h (bfd_elf32_arm_process_before_allocation): Properly
	free internal relocs and section contents.  Don't read symbols.
	* elf32-hppa.c (get_local_syms): Use bfd_elf_get_elf_syms.
	(elf32_hppa_size_stubs): Don't free local syms.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Delay
	reading of local syms.  Use bfd_elf_get_elf_syms.  Properly free
	possibly cached info.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Use bfd_elf_get_elf_syms.
	* elf64-ppc.c (struct ppc_link_hash_table): Delete bfd_count and
	all_local_syms.
	(get_local_syms): Delete function.
	(edit_opd): Use bfd_elf_get_elf_syms.  Free on error exit.  Cache
	on exit.
	(ppc64_elf_size_stubs): Use bfd_elf_get_elf_syms.  Free/cache on exit.

2002-07-05  Jim Wilson  <wilson@redhat.com>

	* syms.c (decode_section_type): New.
	(bfd_decode_symclass): Call decode_section_type.

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

	* merge.c (_bfd_merged_section_offset): Avoid accessing byte before
	section content start.
	Reported by Michael Schumacher <mike@hightec-rt.com>.

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

	* section.c (_bfd_strip_section_from_output):  Remove unnecessary
	link order code.  Don't actually remove the output section here;
	Just set a flag for the linker to do so.
	* elflink.c (_bfd_elf_link_renumber_dynsyms): Test for removed
	sections when setting up output section dynsyms.

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

	* elflink.h (elf_link_add_object_symbols): Revert 1999-09-02 hpux
	fudge.
	* elf.c (bfd_section_from_shdr): Work around broken hpux shared
	libs here instead.

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

	* elf64-s390.c (create_got_section): Set .got section alignment to
	8 bytes.
	(elf_s390_check_relocs): Set .rela.dyn section alignment to 8 bytes.

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

	* elf.c (_bfd_elf_reloc_type_class): Fix comment grammar.

2002-07-01  Matt Thomas  <matt@3am-software.com>

	* elf32-vax.c (elf32_vax_print_private_bfd_data): Change EF_*
	to EF_VAX_*.

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

	* elfxx-mips.c (ABI_64_P): Fix comment.
	(MIPS_ELF_OPTIONS_SECTION_NAME,MIPS_ELF_STUB_SECTION_NAME): Use the
	new section names for N64 ABI.
	(mips_elf_output_extsym): No special _gp_disp handling for NewABI.
	(mips_elf_calculate_relocation): Code formatting.
	(mips_elf_create_dynamic_relocation): Likewise.
	(_bfd_mips_elf_fake_sections): IRIX6 needs this hack, too.
	(_bfd_mips_elf_size_dynamic_sections): Handle GOT_PAGE for any NewABI.
	(_bfd_mips_elf_relocate_section): No special handling for R_MIPS_64
	in any NewABI.
	(_bfd_mips_elf_finish_dynamic_symbol): No special _gp_disp handling
	for NewABI.
	(_bfd_mips_elf_modify_segment_map): Handle any N64 ABI.
	(_bfd_mips_elf_gc_sweep_hook): NewABI GOT relocs should be handled
	here, too.

2002-07-01  Andreas Schwab  <schwab@suse.de>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Only convert
	R_X86_64_64 to R_X86_64_RELATIVE.

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

	* vaxbsd.c: New BFD backend for VAX BSD and Ultrix.
	* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Add new backend.
	Run "make dep-am".
	* config.bfd (vax-*-bsd* | vax-*-ultrix*): Use vaxbsd_vec instead of
	host_aout_vec.
	* configure.in (vaxbsd_vec): Add.
	* targets.c (vaxbsd_vec): Add.
	* Makefile.in: Rebuild.
	* configure: Rebuild.
	* po/SRC-POTFILES.in: Rebuild.

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

	* elflink.h (elf_gc_mark): Pass in the section whose relocs we are
	examining to gc_mark_hook, rather than the bfd.
	(elf_gc_sections): Adjust.
	* elf-bfd.h (struct elf_backend_data <gc_mark_hook>): Likewise.
	* elf-m10300.c (mn10300_elf_gc_mark_hook): Likewise.
	* elf32-arm.h (elf32_arm_gc_mark_hook): Likewise.
	* elf32-avr.c (elf32_avr_gc_mark_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
	* elf32-d10v.c (elf32_d10v_gc_mark_hook): Likewise.
	* elf32-fr30.c (fr30_elf_gc_mark_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
	* elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
	* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Likewise.
	* elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
	* elf32-sparc.c (elf32_sparc_gc_mark_hook): Likewise.
	* elf32-v850.c (v850_elf_gc_mark_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_mark_hook): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Likewise.
	* elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
	* elf64-sh64.c (sh_elf64_gc_mark_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_gc_mark_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
	* elf32-frv.c (elf32_frv_gc_mark_hook): Likewise.  Also remove
	redundant local sym tests.
	* elf64-ppc.c (struct ppc_link_hash_entry): Add is_entry.
	(link_hash_newfunc): Init is_entry.
	(ppc64_elf_copy_indirect_symbol): Copy is_entry.
	(ppc64_elf_link_hash_table_create): Init all_local_syms.
	(create_linkage_sections): Use bfd_make_section_anyway rather than
	bfd_make_section.
	(ppc64_elf_mark_entry_syms): New function.
	(ppc64_elf_check_relocs): Don't bother testing elf_bad_symtab.  Set
	up opd entry to function section map.
	(ppc64_elf_gc_mark_hook): Special case opd section relocs, and
	relocs that reference the opd section.
	(edit_opd): New function.
	(ppc64_elf_size_dynamic_sections): Call get_local_syms and edit_opd.
	(ppc64_elf_setup_section_lists): Don't calculate htab->bfd_count here.
	(get_local_syms): Do so here.  Exit if we already have local syms.
	Remove bogus comment imported from elf32-hppa.c.  Don't attempt to
	read local syms on non-ELF input.
	(ppc64_elf_size_stubs): Call _bfd_elf64_link_read_relocs rather
	than duplicating it's function here.  Adjust free of internal
	relocs to suit.
	(ppc64_elf_relocate_section): Adjust local syms in opd section.
	* elf64-ppc.h (ppc64_elf_mark_entry_syms): Declare.
	* elf32-hppa.c (elf32_hppa_size_stubs): Call
	_bfd_elf32_link_read_relocs rather than duplicating it's function
	here.  Adjust free of internal relocs to suit.

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

	* elf64-x86-64.c (elf64_x86_64_check_relocs): Certain relocations
	are not allowed in shared libs code, enforce -fPIC.

2002-06-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmo.c (mmo_write_loc_chunk): Don't eliminate leading and
	trailing zero-sequences when there's previous left-over data.

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

	* elf64-hppa.c (elf64_hppa_reloc_type_class): New function.
	(elf64_hppa_finish_dynamic_sections): Check other_rel_sec, dlt_rel_sec
	and opd_rel_sec in order for starting rela section.  Check _raw_size.
	(elf_backend_reloc_type_class): Define.

2002-06-27  Kevin Buettner <kevinb@redhat.com>

	* dwarf2.c (decode_line_info): Handle older, non-standard, 64-bit
	DWARF2 formats.

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

	* cpu-powerpc.c: Comment on ordering of arch_info.
	* elf32-ppc.c (ppc_elf_object_p): New function.
	(elf_backend_object_p): Define.
	* elf64-ppc.c (ppc64_elf_object_p): New function.
	(elf_backend_object_p): Define.

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

	* configure.in (vax-*-netbsd*): Set COREFILE to netbsd-core.lo.
	* configure: Regenerate.

2002-06-25  Jason Eckhardt  <jle@rice.edu>

	* dwarf2.c (decode_line_info): Check unit->addr_size
	to read in the proper number of prologue bytes.

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

	* config.bfd (powerpc-*-aix5*): Only create a selvecs for
	aix5coff64_vec if 64-bit bfd support has been enabled.
	(powerpc64-*-aix5*): Only define if 64-bit bfd support has
	been enabled.

	* targets.c (_bfd_target_vector[]): Only include
	aix5coff64_vec if 64-bit bfd support has been enabled.

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

	* elf64-ppc.c (ppc_add_stub): Replace strcpy/strncpy with memcpy.
	* elf32-hppa.c (hppa_add_stub): Likewise.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Likewise.
	* elflink.h (elf_add_default_symbol): Fix comment typo.
	(elf_add_default_symbol): Replace strcpy and strncpy with memcpy.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_assign_sym_version): Likewise.
	* hash.c (bfd_hash_lookup): Likewise.
	* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
	* section.c (bfd_get_unique_section_name): Likewise.
	* syms.c (_bfd_stab_section_find_nearest_line): Likewise.
	* elf.c (_bfd_elf_make_section_from_phdr): Likewise.
	(assign_section_numbers): Likewise.
	(_bfd_elfcore_make_pseudosection): Likewise.
	(elfcore_grok_lwpstatus): Likewise.
	(elfcore_grok_win32pstatus): Likewise.
	(elfcore_write_note): Constify input params.  Use PTR instead of
	void *.  Include terminating NUL in namesz.  Correct padding.
	Support NULL "name" param.  Use memcpy instead of strcpy.
	(elfcore_write_prpsinfo): Constify input params.
	(elfcore_write_prstatus): Likewise.  Use PTR instead of void *.
	(elfcore_write_lwpstatus): Likewise.
	(elfcore_write_pstatus): Likewise.
	(elfcore_write_prfpreg): Likewise.
	(elfcore_write_prxfpreg): Likewise.
	* elf-bfd.h (elfcore_write_note): Update declaration.
	(elfcore_write_prpsinfo): Likewise.
	(elfcore_write_prstatus): Likewise.
	(elfcore_write_pstatus): Likewise.
	(elfcore_write_prfpreg): Likewise.
	(elfcore_write_prxfpreg): Likewise.
	(elfcore_write_lwpstatus): Likewise.

2002-06-25  Jason Eckhardt  <jle@rice.edu>

	* ecoff.c (ecoff_set_symbol_info): Set BSF_FUNCTION for
	symbols of type stProc and stStaticProc.

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

	* ecoff.c: VArious formatting fixes.

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

	* coff-rs6000.c (xcoff_generate_rtinit): Fix typo.

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

	* aout-adobe.c: Don't compare against "true" or "false.
	* aout-target.h: Likewise.
	* aoutx.h: Likewise.
	* archive.c: Likewise.
	* bout.c: Likewise.
	* cache.c: Likewise.
	* coff-a29k.c: Likewise.
	* coff-alpha.c: Likewise.
	* coff-i386.c: Likewise.
	* coff-mips.c: Likewise.
	* coff-or32.c: Likewise.
	* coff64-rs6000.c: Likewise.
	* coffcode.h: Likewise.
	* coffgen.c: Likewise.
	* cpu-ns32k.c: Likewise.
	* ecoff.c: Likewise.
	* ecofflink.c: Likewise.
	* elf.c: Likewise.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-d30v.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-mcore.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elfcode.h: Likewise.
	* elfcore.h: Likewise.
	* elflink.h: Likewise.
	* elfxx-mips.c: Likewise.
	* i386os9k.c: Likewise.
	* ieee.c: Likewise.
	* libbfd.c: Likewise.
	* linker.c: Likewise.
	* mmo.c: Likewise.
	* nlm32-alpha.c: Likewise.
	* nlm32-i386.c: Likewise.
	* nlm32-ppc.c: Likewise.
	* nlm32-sparc.c: Likewise.
	* nlmcode.h: Likewise.
	* oasys.c: Likewise.
	* pdp11.c: Likewise.
	* peicode.h: Likewise.
	* reloc.c: Likewise.
	* som.c: Likewise.
	* srec.c: Likewise.
	* tekhex.c: Likewise.
	* vms.c: Likewise.
	* xcofflink.c: Likewise.
	* elf64-sparc.c: Edit comment to not use "== false".

	* aoutf1.h: Don't use "? true : false".
	* ecoff.c: Likewise.
	* format.c: Likewise.
	* ieee.c: Likewise.
	* linker.c: Likewise.
	* mmo.c: Likewise.
	* oasys.c: Likewise.

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

	* elflink.h (elf_link_add_archive_symbols): For the default
	version, check references with only one `@' first.

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

	* elf64-hppa.c (elf64_hppa_mark_milli_and_exported_functions): New
	function.
	(allocate_global_data_dlt):  Don't add millicode symbols to dynamic
	symbol table.
	(allocate_global_data_opd, allocate_dynrel_entries): Likewise.
	(elf64_hppa_size_dynamic_sections): Revise to use
	elf64_hppa_mark_milli_and_exported_functions.
	(elf64_hppa_finish_dynamic_symbol): Remove code to keep millicode
	symbols out of dynamic symbol table.

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

	* Makefile.in: Regenerate.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

	* elflink.h: Comment typo fixes.

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

	* elf-bfd.h (elf_link_loaded_list): New structure.
	(elf_link_hash_table): Add "loaded".
	* elf.c (_bfd_elf_link_hash_table_init): Initialize "loaded".
	* elflink.h (elf_link_check_versioned_symbol): New function.
	(elf_link_output_extsym): Call elf_link_check_versioned_symbol.

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

	* elflink.h (size_dynamic_sections): If the target does not
	support an ELF style hash table, return true, indicating that
	nothing needed to be done, rather than false, indicating that the
	section's size could not be computed.

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

	From Catherine Moore, Michael Meissner, Dave Brolley:
	* po/SRC-POTFILES.in: Add cpu-frv.c and elf32-frv.c
	* targets.c: Support bfd_elf32_frv_vec.
	* reloc.c: Add FRV relocs.
	* configure.in: Add support for bfd-elf32-frv-vec.
	* config.bfd (targ_cpu): Add support for frv-*-elf.
	* archures.c: Add frv arch and machines.
	* Makefile.am (ALL_MACHINES): Add cpu-frv.lo.
	(ALL_MACHINES_CFILES): Add cpu-frv.c.
	(BFD32_BACKENDS): Add elf32-frv.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-frv.c
	(cpu-frv.lo): New target.
	(elf32-frv.lo): New target.
	* cpu-frv.c: New file.
	* elf32-frv.c: New file.

2002-06-18  Jakub Jelinek  <jakub@redhat.com>

	* elfcode.h (elf_object_p): Sanity check eh_shoff == 0 implies
	e_shnum == 0.
	Only read the first section header if e_shoff is non-zero.
	Don't consider e_shstrndx if there are no sections.

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

	* elf32-d10v.c (elf_d10v_howto_table): Change R_D10V_10_PCREL_R,
	R_D10V_10_PCREL_L and R_D10V_18_PCREL to use
	complain_overflow_bitfield.

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

	* opncls.c (bfd_openr): Remove redundant bfd_set_error.
	(bfd_fdopenr): Likewise.
	(bfd_openstreamr): Likewise.
	(bfd_openw): Likewise.

	* targets.c: Sort target vecs.
	(_bfd_target_vector): Add aix5coff64_vec, bfd_elf32_sh64_vec,
	bfd_elf32_sh64l_vec, bfd_elf32_sh64lnbsd_vec,
	bfd_elf32_sh64nbsd_vec, bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec,
	bfd_elf64_sh64lnbsd_vec, bfd_elf64_sh64nbsd_vec.
	* configure.in: Sort target vecs.  Add m88kmach3_vec.
	* configure: Regenerate.

2002-06-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (bpo_reloc_request_sort_fn): Use member
	bpo_reloc_no to break sort order ties, not address of items.

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

	* elf-hppa.h (elf_hppa_final_link): Fix formatting in comment.
	Skip excluded sections in determing __gp value.
	(elf_hppa_final_link_relocate): Use the symbol's address in
	R_PARISC_FPTR64 relocations that don't need an opd entry.
	* elf64-hppa.c (allocate_dynrel_entries): Simplify code.
	(elf64_hppa_finalize_dynreloc): Likewise.
	(elf64_hppa_size_dynamic_sections): Move comments and fix typo.
	(elf64_hppa_finish_dynamic_symbol): Break up assert.

2002-06-14  Sergey Grigoriev  <serge@leopold.Physik.Uni-Augsburg.DE>

	* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Enable 16 byte
	alignment for .bss, .data and .text sections so that sse and sse2
	code will work.
	* pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.

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

	config.bfd: Add support for sh[1234]l*-*-elf* | sh3el*-*-elf*,
	sh[1234]*-elf*.

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

	* elflink.h (elf_bfd_final_link): Improve error handling for missing
	dynamic sections.

	* elf64-hppa.c (allocate_global_data_opd): We don't need an opd entry
	for a symbol that has no output section.
	(allocate_dynrel_entries): Correct comment.
	(elf64_hppa_finalize_dynreloc): Likewise.  Don't create an opd entry
	unless we want one.
	(elf64_hppa_finalize_opd): Prevent segfault if dyn_h is NULL.
	(elf64_hppa_finalize_dlt): Likewise.  Prevent segfault for symbols
	with no section.  Remove unnecessary parentheses.

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

	* coffcode.h (coff_compute_section_file_positions): Add data
	section to AIX loader alignment check.

	* coff-rs6000.c (_bfd_xcoff_mkobject): Set default text section
	alignment to 4 bytes.
	(_bfd_xcoff_copy_private_bfd_data): Use text and data alignment
	power accessor macro.
	(do_shared_object_padding): Remove invalid assertion.

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

	* section.c (_bfd_strip_section_from_output): Set SEC_EXCLUDE
	for removed output sections.

2002-06-10  Geoffrey Keating  <geoffk@redhat.com>

	* merge.c (merge_strings): Use htab_create_alloc with calloc, not
	htab_alloc.
	* elf-strtab.c (_bfd_elf_strtab_finalize): Likewise.

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

	* elf.c (copy_private_bfd_data): Don't cast to bfd_size_type to
	work around a long long bug in gcc 2.96 on mips.

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

	* Makefile.am (BFD32_BACKENDS): Add vax1knetbsd.lo.
	(BFD32_BACKENDS_CFILES): Add vax1knetbsd.c.
	Regenerate dependency lists.
	* Makefile.in: Regenerate.
	* config.bfd (vax-*-netbsdelf*, vax-*-netbsdaout*): Add
	vax1knetbsd_vec to targ_selvecs.
	* configure.in: Add vax1knetbsd_vec.
	* configure: Regenerate.
	* targets.c (_bfd_target_vector): Add vax1knetbsd_vec.
	* vax1knetbsd.c: New file.
	* vaxnetbsd.c: Update copyright years.
	(TARGET_PAGE_SIZE): Set to 0x1000.
	(DEFAULT_MID): Set to M_VAX4K_NETBSD.

2002-06-08  Matt Thomas  <matt@3am-software.com>

	* libaout.h (enum machine_type): Add M_VAX4K_NETBSD.

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

	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Make static.

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

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

	* armnetbsd.c: Replace CONST with const.
	* corefile.c: Likewise.
	* elf32-dlx.c: Likewise.
	* elf64-mips.c: Likewise.
	* mmo.c: Likewise.
	* ns32knetbsd.c: Likewise.

	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Check the hash
	table is elf64-sparc.

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

	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Simplify code.
	Fix RELA addends to get not shifted in the result. Don't do special
	handling of R_MIPS_64 for NewABI.

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

	* aoutx.h (NAME(aout,slurp_symbol_table)): Use bfd_zmalloc.
	(NAME(aout,slurp_reloc_table)): Likewise.
	* coff-mips.c (mips_relax_section): Use bfd_zalloc.
	* coff-rs6000.c (xcoff_write_armap_big): Use bfd_zmalloc.
	(xcoff_write_archive_contents_big): Likewise.
	(xcoff_generate_rtinit): Likewise.
	(xcoff_generate_rtinit): Likewise, and check error return.
	* coff64-rs6000.c (xcoff64_generate_rtinit): Likewise.
	* coffgen.c (coff_section_symbol): Use bfd_zalloc.
	(coff_get_normalized_symtab): Likewise.
	(coff_make_empty_symbol): Likewise.
	(bfd_coff_set_symbol_class): Likewise.
	* cofflink.c (coff_link_add_symbols): Likewise.
	* ecoff.c (_bfd_ecoff_make_empty_symbol): Likewise.
	* ecofflink.c (ecoff_write_shuffle): Use bfd_zmalloc.
	(bfd_ecoff_write_accumulated_debug): Likewise.
	* elf64-alpha.c (get_got_entry): Use bfd_zalloc.
	* i386linux.c (bfd_i386linux_size_dynamic_sections): Likewise.
	* i386lynx.c (NAME(lynx,slurp_reloc_table)): Use bfd_zmalloc.
	* ieee.c (do_with_relocs): Use bfd_zalloc.
	* m68klinux.c (bfd_m68klinux_size_dynamic_sections): Likewise.
	* pdp11.c (NAME(aout,slurp_symbol_table)): Use bfd_zmalloc.
	(NAME(aout,slurp_reloc_table)): Likewise.
	(NAME(aout,squirt_out_relocs)): Don't memset when zalloc'd.
	* reloc16.c (bfd_coff_reloc16_relax_section): Use bfd_zmalloc.
	* som.c (som_build_and_write_symbol_table): Likewise.
	(som_slurp_string_table): Likewise.
	(som_slurp_symbol_table): Likewise.
	(som_bfd_ar_write_symbol_stuff): Likewise.
	* sparclinux.c (bfd_sparclinux_size_dynamic_sections): Use bfd_zalloc.
	* sunos.c (bfd_sunos_size_dynamic_sections): Likewise.
	* tekhex.c (find_chunk): Likewise.  Get rid of unused "sname".
	* vms-gsd.c (_bfd_vms_slurp_gsd): Use bfd_zmalloc.
	* xcofflink.c (xcoff_link_add_symbols): Use bfd_zalloc/bfd_zmalloc.

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

	* elf-bfd.h (struct bfd_elf_section_data <group_name>): Replace with
	"group" union.
	(elf_group_name): Update.
	(elf_group_id): Define.
	(bfd_elf_set_group_contents): Declare.
	* elf.c (elf_fake_sections): Qualify use of elf_group_name.
	(set_group_contents): Rename to bfd_elf_set_group_contents.  Remove
	ATTRIBUTE_UNUSED from failedptrarg.  If elf_group_id is set, use
	that sym for the signature.
	(_bfd_elf_compute_section_file_positions): Don't call
	set_group_contents for "ld -r" case.
	(swap_out_syms): Use bfd_zalloc.
	* elflink.h (elf_link_add_archive_symbols): Likewise.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise.
	(elf_bfd_final_link): Call bfd_elf_set_group_contents.

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

	* elf64-ppc.c (ppc64_elf_relocate_section): Allow unresolved
	relocs in opd for non-shared too.

2002-06-06  Jeffrey Law <law@redhat.com

	* elf32-h8300.c (elf32_h8_relax_section): Ignore uninteresting
	relocations.

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

	* merge.c: Include libiberty.h.
	* elf-strtab.c: Include libiberty.h.

2002-06-06  Elias Athanasopoulos  <eathan@otenet.gr>

	* peXXigen.c (pe_print_idata): Remove unused variable.

2002-06-06  David Heine <dlheine@tensilica.com>

	* elf.c (assign_file_positions_for_segments): Remove unallocated
	sections from the section to segment mapping for PT_LOAD segments.
	Update comment about empty loadable segments.

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

	* stabs.c (_bfd_link_section_stabs): Check that the symbol offset
	is within the .stabstr section.

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

	* elf-bfd.h (struct elf_size_info <swap_symbol_in>): Function args
	are "const PTR", not "const PTR *".
	(bfd_elf32_swap_symbol_in): Likewise.
	(bfd_elf64_swap_symbol_in): Likewise.
	* elfcode.h (elf_swap_symbol_in): Change input args to const PTR.
	(elf_slurp_symbol_table): Adjust call to elf_swap_symbol_in.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_record_local_dynamic_symbol): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_reloc_symbol_deleted_p): Likewise.
	* elf-m10200.c (mn10200_elf_relax_section): Likewise.
	(mn10200_elf_relax_delete_bytes): Likewise.
	(mn10200_elf_symbol_address_p): Likewise.
	(mn10200_elf_get_relocated_section_contents): Likewise.
	* elf-m10300.c (mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-hppa.c (get_local_syms): Likewise.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Likewise.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf32-sh.c (sh_elf_relax_section): Likewise.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relax_section): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-ppc.c (get_local_syms): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.

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

	* config.bfd (sh64l*-*-elf*, shl*-*-elf*): New configurations.

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

	* elf.c (group_signature): Swap in the whole symbol, and handle
	extracting section symbol names.
	(setup_group): Add comment.
	(set_group_contents): When called from objcopy or ld, arrange for
	section contents to be written.  Write group member output section
	indices to allow objcopy to reorganize sections.
	(_bfd_elf_copy_private_section_data): Copy group info.

	* elf-bfd.h (struct elf_size_info): Add swap_symbol_in field.
	(bfd_elf32_swap_symbol_in): Update prototype.
	(bfd_elf64_swap_symbol_in): Likewise.
	* elfcode.h (elf_swap_symbol_in): Change input args to const PTR *.
	(elf_slurp_symbol_table): Adjust call to elf_swap_symbol_in.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_record_local_dynamic_symbol): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_reloc_symbol_deleted_p): Likewise.
	* elf-m10200.c (mn10200_elf_relax_section): Likewise.
	(mn10200_elf_relax_delete_bytes): Likewise.
	(mn10200_elf_symbol_address_p): Likewise.
	(mn10200_elf_get_relocated_section_contents): Likewise.
	* elf-m10300.c (mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-hppa.c (get_local_syms): Likewise.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Likewise.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf32-sh.c (sh_elf_relax_section): Likewise.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relax_section): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-ppc.c (get_local_syms): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
	* elfcode.h (NAME(_bfd_elf,size_info)): Update initialiser.
	* elf64-alpha.c (alpha_elf_size_info): Likewise.
	* elf64-hppa.c (hppa64_elf_size_info): Likewise.
	* elf64-mips.c (mips_elf64_size_info): Likewise.
	* elf64-s390.c (s390_elf64_size_info): Likewise.
	* elf64-sparc.c (sparc64_elf_size_info): Likewise.

2002-06-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* elf32-mips.c (elf32_mips_ignore_discarded_relocs): Move to...
	elfxx-mips.c (_bfd_mips_elf_ignore_discarded_relocs): ... here.
	elf64-mips.c (elf_backend_ignore_discarded_relocs): Use
	_bfd_mips_elf_ignore_discarded_relocs.
	elfxx-mips.h (_bfd_mips_elf_ignore_discarded_relocs): Declare.

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

	* elfxx-mips.c (mips_elf_calculate_relocation): Call
	_bfd_elf_rel_local_sym for STT_SECTION relocations against
	the SEC_MERGE section.

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

	* coff-alpha.c: Update copyright date.
	* coff-mips.c: Likewise.
	* xcoff-target.h: Likewise.

	* bfd-in.h: Remove "taken from the source" comment.
	* libbfd-in.h: Likewise.
	* libcoff-in.h: Likewise.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

	* elf.c (bfd_elf_discard_group): Return true.
	* elf-bfd.h (bfd_elf_discard_group): Declare.
	* bfd-in.h (bfd_elf_discard_group): Don't declare here.
	* section.c (bfd_discard_group): Rename to bfd_generic_discard_group.
	* bfd.c (bfd_discard_group): Define.
	* targets.c (struct bfd_target): Add _bfd_discard_group.
	(BFD_JUMP_TABLE_LINK): Here too.
	* libbfd-in.h (_bfd_nolink_bfd_discard_group): Define.
	* aout-adobe.c (aout_32_bfd_discard_group): Define.
	* aout-target.h (MY_bfd_discard_group): Define.
	* aout-tic30.c (MY_bfd_discard_group): Define.
	* binary.c (binary_bfd_discard_group): Define.
	* bout.c (b_out_bfd_discard_group): Define.
	* coff-alpha.c (_bfd_ecoff_bfd_discard_group): Define.
	* coffcode.h (coff_bfd_discard_group): Define.
	* coff-mips.c (_bfd_ecoff_bfd_discard_group): Define.
	* elfxx-target.h (bfd_elfNN_bfd_discard_group): Define.
	* i386msdos.c (msdos_bfd_discard_group): Define.
	* i386os9k.c (os9k_bfd_discard_group): Define.
	* ieee.c (ieee_bfd_discard_group): Define.
	* ihex.c (ihex_bfd_discard_group): Define.
	* mmo.c (mmo_bfd_discard_group): Define.
	* nlm-target.h (nlm_bfd_discard_group): Define.
	* oasys.c (oasys_bfd_discard_group): Define.
	* ppcboot.c (ppcboot_bfd_discard_group): Define.
	* som.c (som_bfd_discard_group): Define.
	* srec.c (srec_bfd_discard_group): Define.
	* tekhex.c (tekhex_bfd_discard_group): Define.
	* versados.c (versados_bfd_discard_group): Define.
	* vms.c (vms_bfd_discard_group): Define.
	* xcoff-target.h (_bfd_xcoff_bfd_discard_group): Define.
	* coff64-rs6000.c (rs6000coff64_vec): Update initialiser.
	(aix5coff64_vec): Likewise.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Likewise.

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

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64-com.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64-com.c.
	(elf32-sh64-com.lo): New dependency list.
	* Makefile.in: Regenerate.
	* configure.in (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec)
	(bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec): Add
	elf32-sh64-com.lo.
	* configure: Regenerate.
	* elf32-sh64.c (sh64_address_in_cranges)
	(sh64_get_contents_type, sh64_address_is_shmedia): Move to...
	(crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb):
	(crange_bsearch_cmpl): Prepend _bfd_sh64_ to name and move to...
	* elf32-sh64-com.c: ...here.  New file.

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

	* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Remove
	ATTRIBUTE_UNUSED on used params.
	* elf32-vax.c (elf_vax_gc_mark_hook): Remove unnecessary checks
	before calling bfd_section_from_elf_index on local syms.
	* elf64-sh64.c (sh_elf64_gc_mark_hook): Likewise.

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

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64-nbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64-nbsd.c.
	(BFD64_BACKENDS): Add elf64-sh64-nbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-sh64-nbsd.c.
	(elf32-sh64-nbsd.lo, elf64-sh64-nbsd.lo): New rules.
	* Makefile.in: Regenerate.
	* config.bfd (sh5le-*-netbsd*, sh5-*-netbsd*, sh64le-*-netbsd*)
	(sh64-*-netbsd*): New targets.
	* configure.in: Add bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec,
	bfd_elf64_sh64nbsd_vec, and bfd_elf64_sh64lnbsd_vec.
	* configure: Regenerate.
	* elf32-sh64-nbsd.c: New file.
	* elf64-sh64-nbsd.c: New file.
	* targets.c: Add extern decls for bfd_elf32_sh64nbsd_vec,
	bfd_elf32_sh64lnbsd_vec, bfd_elf64_sh64nbsd_vec, and
	bfd_elf64_sh64lnbsd_vec.

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

	* elf.c (setup_group): Set SEC_LINK_ONCE on GRP_COMDAT groups.
	(bfd_section_from_shdr): Likewise.  Set section name of group
	sections from signature.
	(group_signature): Split out from setup_group.  Ensure symbol table
	is available.
	(bfd_elf_discard_group): New function.
	(_bfd_elf_make_section_from_shdr): Don't set SEC_LINK_ONCE on
	.gnu.linkonce* sections if they are members of a group.
	(set_group_contents): Set GRP_COMDAT flag.
	* section.c (bfd_discard_group): New function.
	* bfd-in.h (bfd_elf_discard_group): Declare.
	* bfd-in2.h: Regenerate.
	* elf-bfd.h (struct bfd_elf_section_data): Add linkonce_p field.
	(elf_linkonce_p): Define.

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

	* elf.c (bfd_section_from_shdr): Make "name" const.
	* elf-bfd.h (elf_backend_section_from_shdr): Likewise.
	* elf32-i370.c (i370_elf_section_from_shdr): Likewise.
	* elf32-ppc.c (ppc_elf_section_from_shdr): Likewise.
	* elf32-sh64.c (sh64_backend_section_from_shdr): Likewise.
	* elf32-v850.c (v850_elf_section_from_shdr): Likewise.
	* elf64-alpha.c (elf64_alpha_section_from_shdr): Likewise.
	* elf64-hppa.c (elf64_hppa_section_from_shdr): Likewise.
	* elf64-ppc.c (ppc64_elf_section_from_shdr): Likewise.
	* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_section_from_shdr): Likewise.

2002-06-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* elfxx-mips.c (ABI_64_P): Use backend's data to determine the
	ABI.

2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>

	* elf32-arc.c: Fix formatting.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-dlx.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-i386qnx.c: Likewise.
	* elf32-or32.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf32-xstormy16.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-mmix.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elf64-x86-64.c: Likewise.

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

	* elf64-alpha.c (elf64_alpha_relocate_section): Don't dereference
	null when there are no got entries for a symbol.
	(elf64_alpha_relax_find_tls_segment): Rearrange to avoid
	uninitialized variable warning.

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

	* elf64-alpha.c (elf64_alpha_relax_with_lituse): Don't test for
	undefined symbols here.
	(elf64_alpha_relax_section): Do it here.  Also test for not
	defined in the current module.
	(elf64_alpha_relocate_section_r): Split out of ...
	(elf64_alpha_relocate_section): ... here.  Don't dereference
	NULL when looking up local got entries.

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

	* elf64-alpha.c (elf64_alpha_relax_with_lituse): Reject undefined
	symbols from JSR relaxation.
	(elf64_alpha_size_plt_section_1): New.
	(elf64_alpha_calc_dynrel_sizes): Split out .rela.got bits ...
	(elf64_alpha_size_rela_got_1): ... here.
	(elf64_alpha_size_dynamic_sections): Split out .rela.got bits ...
	(elf64_alpha_size_rela_got_section): ... here.
	(elf64_alpha_size_plt_section): New.
	(elf64_alpha_relax_section): Call them.
	(elf64_alpha_size_got_sections): Remove output_bfd arg.
	(elf64_alpha_finish_dynamic_symbol): Check gotent use_count.

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

	* elf64-alpha.c (alpha_get_dtprel_base, alpha_get_tprel_base): New.
	(elf64_alpha_relocate_section): Use them.  Reject LE TLS relocs
	in shared libraries.  Fix DTPRELHI and TPRELHI value.
	(INSN_ADDQ, INSN_RDUNIQ): New.
	(struct alpha_relax_info): Add symtab_hdr, tls_segment, first_gotent.
	(elf64_alpha_relax_with_lituse): Return boolean.  Remove irelend
	argument.  Reject dynamic symbols.  Use LITUSE symbolic constants.
	(elf64_alpha_relax_got_load): Rename from relax_without_lituse.
	Handle GOTDTPREL and GOTTPREL relocations.
	(elf64_alpha_relax_gprelhilo): New.
	(elf64_alpha_relax_tls_get_addr): New.
	(elf64_alpha_relax_find_tls_segment): New.
	(elf64_alpha_relax_section): Handle TLS relocations.
	(ALPHA_ELF_LINK_HASH_TLS_IE): New.
	(elf64_alpha_check_relocs): Set it.

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

	* elf64-alpha.c (elf64_alpha_relax_section): Don't store computed gp.

	* elf64-alpha.c (elf64_alpha_check_relocs): Fix typo on maybe_dynamic
	check; don't suppress dynamic relocs for non-allocated sections.

	* elf64-alpha.c: Remove dead code.

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

	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Don't allocate
	space for bss .plt.

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

	* Makefile.am (BFD32_BACKENDS): Add elf32-i386qnx.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386qnx.c.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* config.bfd: Add i[3456]86-*-nto-qnx* support.
	* configure.in: Add bfd_elf32_i386qnx_vec support.
	* configure: Regenerate.
	* elf-bfd.h (struct elf_backend_data): Add set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf.c (assign_file_positions_for_segments): Call backend
	set_nonloadable_filepos.  Fix non-K&R call to _bfd_error_handler.
	(IS_CONTAINED_BY_FILEPOS): Define.
	(INCLUDE_SECTION_IN_SEGMENT): Also test IS_CONTAINED_BY_FILEPOS.
	(copy_private_bfd_data): Use IS_CONTAINED_BY_FILEPOS.  Typo fix.
	Fix non-K&R call to _bfd_error_handler.
	(_bfd_elf_copy_private_section_data): Use backend
	copy_private_bfd_data_p.
	* elf32-i386.c: Don't include elfxx-target.h when
	ELF32_I386_C_INCLUDED is defined.
	* elf32-i386qnx.c: New QNX elf backend file.
	* elfxx-target.h: Add elf_backend_set_nonloadable_filepos,
	elf_backend_is_contained_by_filepos, and
	elf_backend_do_copy_private_bfd_data.
	* targets.c: Add bfd_target bfd_elf32_i386qnx_vec.

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

	* elfarm-oabi.c (bfd_elf32_arm_add_glue_sections_to_bfd): Define.
	Move other similar defines to start of file.

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

	* coff-rs6000.c (xcoff_rtype2howto): Handle 16 bit R_RBA.
	* coff64-rs6000.c (xcoff64_rtype2howto): Same.

2002-05-30  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (ALPHA_ELF_LINK_HASH_LU_TLSGD,
	ALPHA_ELF_LINK_HASH_LU_TLSLDM, ALPHA_ELF_LINK_HASH_LU_FUNC): New.
	(ALPHA_ELF_GOT_ENTRY_RELOCS_DONE): Remove.
	(ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Remove.
	(struct alpha_elf_got_entry): Add reloc_type, reloc_done, reloc_xlated.
	(struct alpha_elf_obj_tdata): Rename total_got_entries and
	n_local_got_entries to total_got_size and local_got_size.
	(elf64_alpha_howto, elf64_alpha_reloc_map): Update for TLS relocs.
	(alpha_got_entry_size): New.
	(elf64_alpha_relax_with_lituse): Use it.
	(elf64_alpha_relax_without_lituse): Likewise.
	(MAX_GOT_SIZE): Rename from MAX_GOT_ENTRIES.
	(get_got_entry): New.
	(elf64_alpha_check_relocs): Handle TLS relocs.  Reorganize.
	(elf64_alpha_adjust_dynamic_symbol): Test LU_FUNC as a mask.
	(elf64_alpha_merge_ind_symbols): Check gotent->reloc_type.
	(elf64_alpha_can_merge_gots, elf64_alpha_merge_gots): Likewise.
	(elf64_alpha_calc_got_offsets_for_symbol): Use alpha_got_entry_size.
	(elf64_alpha_calc_got_offsets): Likewise.
	(alpha_dynamic_entries_for_reloc): New.
	(elf64_alpha_calc_dynrel_sizes): Use it.
	(elf64_alpha_size_dynamic_sections): Likewise.
	(elf64_alpha_relocate_section): Handle TLS relocations.
	* reloc.c: Add Alpha TLS relocations.
	* bfd-in2.h, libbfd.h: Rebuild.

2002-05-29 Ralf Habacker <ralf.habacker@freenet.de>

	* peXXigen.c (pe_print_idata): Remove double printed
	import table lines; add Bound-To comment.

2002-05-29  Matt Thomas  <matt@3am-software.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-vax.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-vax.c.
	(elf32-vax.lo): New rule.
	* Makefile.in: Regenerate.
	* configure.in (bfd_elf32_vax_vec)
	(vaxnetbsd_vec): New vectors.
	* configure: Regenerate.
	* config.bfd (vax-*-netbsdelf*)
	(vax-*-netbsdaout*)
	(vax-*-netbsd*): New targets.
	* elf32-vax.c: New file.
	* reloc.c: Add VAX relocations.
	* bfd-in2.h: Regenerate.
	* targets.c (_bfd_target_vector): Add bfd_elf32_vax_vec.

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

	* config.bfd (arm-*-netbsd*): Add bfd_elf32_littlearm_vec
	and bfd_elf32_bigarm_vec to targ_selvecs.

2002-05-29  Ralf Habacker  <ralf.habacker@freenet.de>

	* peXXigen.c (pe_print_idata): Fix seg faults on printing import tables
	with auto-imported symbols.

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

	* elf32-arm.h (bfd_elf32_arm_get_bfd_for_interworking): Don't add glue
	sections only record bfd.
	(bfd_elf32_arm_add_glue_sections_to_bfd): New function.
	* bfd-in.h (bfd_elf32_arm_add_glue_sections_to_bfd): Declare it.
	* bfd-in2.h: Regenerate.

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

	* syms.c (_bfd_stab_section_find_nearest_line): Move
	declaration and initialisation of saw_line and saw_func out of
	for loop.

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

	* elf64-ppc.c (ppc64_elf_get_symbol_info): New function.
	(bfd_elf64_get_symbol_info): Define.
	* elfxx-target.h (bfd_elfNN_get_symbol_info): Only define if undef.

2002-05-29  Andrey Volkov  <avolkov@transas.com>

	* cpu-h8300.c: Make default h8300 machine first in machine list.

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

	* config.bfd: Added DLX configuraton.
	* Makefile.am: Added DLX configuraton.
	* configure.in: Added DLX configuraton.
	* archures.c: Add DLX architecure.
	* reloc.c: Add DLX relocs.
	* targets.c: Added DLX target vector.
	* configure: Regenerate.
	* Makefile.in: Regenreate.
	* bfd-in2.h: Regenreate.
	* elf32-dlx.c: New file: Support DLX target.
	* cpu-dlx.c: New file: Support DLX target.

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

	* elf32-m68k.c (elf32_m68k_print_private_bfd_data): Formatting.

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Revert last change.
	(ppc64_elf_check_relocs): Don't set up function descriptor symbol
	strings to point inside function code sym string.
	(func_desc_adjust): Likewise.
	(ppc64_elf_hide_symbol): Rewrite code to look up function code sym.

2002-05-24  Michal Ludvig  <mludvig@suse.cz>

	* elf64-x86-64.c (elf64_x86_64_grok_prstatus): Added.
	(elf64_x86_64_grok_psinfo): Added.

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

	* config.bfd: Add a target for i386-netbsdpe.

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

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy is_func
	and is_func_descriptor.
	(func_desc_adjust): Hide function code sym in shared libs unless
	there is a matching exported function descriptor sym.

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

	* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL
	for symbols from SHF_TLS section.
	(_bfd_elf_print_private_bfd_data): Add PT_TLS.
	(elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections.
	(map_sections_to_segments): Build PT_TLS segment if necessary.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Account for PT_TLS segment.
	(swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from
	SEC_THREAD_LOCAL sections to STT_TLS.
	* reloc.c: Add 386 and IA-64 TLS relocs.
	* section.c (SEC_THREAD_LOCAL): Define.
	(SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS):
	Remove.
	* elflink.h (elf_link_add_object_symbols): Support .tcommon.
	(size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS
	unconditionally.
	(struct elf_final_link_info): Add first_tls_sec.
	(elf_bfd_final_link): Set first_tls_sec.
	Compute elf_hash_table (info)->tls_segment.
	(elf_link_output_extsym): Handle STT_TLS symbols.
	(elf_link_input_bfd): Likewise.
	* syms.c (BSF_THREAD_LOCAL): Define.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff,
	elf_i386_mkobject, elf_i386_object_p): New functions.
	(elf_howto_table): Add TLS relocs.
	(elf_i386_reloc_type_lookup): Support TLS relocs.
	(elf_i386_info_to_howto_rel): Likewise.
	(struct elf_i386_link_hash_entry): Add tls_type.
	(struct elf_i386_obj_tdata): New.
	(elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type):
	New macros.
	(struct elf_i386_link_hash_table): Add tls_ldm_got.
	(link_hash_newfunc): Clear tls_type.
	(elf_i386_check_relocs): Support TLS relocs.
	(elf_i386_gc_sweep_hook): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define.
	* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset,
	dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done,
	want_tprel, want_dtpmod, want_dtprel.
	(elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions.
	(ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to
	R_IA64_LTOFF_TPREL22.
	(elf_code_to_howto_index): Add TLS relocs.
	(elfNN_ia64_check_relocs): Support TLS relocs.
	(allocate_global_data_got): Account for TLS .got data.
	(allocate_dynrel_entries): Account for TLS dynamic relocations.
	(elfNN_ia64_install_value): Supprt TLS relocs.
	(set_got_entry): Support TLS relocs.
	(elfNN_ia64_relocate_section): Likewise.

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

	* elf32-arm.h (elf32_arm_final_link_relocate): For the Thumb
	BLX reloc round the relocation up rather than down.
	* coff-arm.c (coff_arm_relocate_section): Likewise.

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

	* linker.c (_bfd_generic_link_add_one_symbol): Allow multiple
	definition.

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

	* elf64-ppc.c (ppc64_elf_size_stubs): Don't strip .branch_lt.
	(ppc64_elf_relocate_section): Handle unresolved relocs in opd.

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

	* elf64-ppc.c (ppc64_elf_relocate_section): Return false for
	unresolved relocs.
	(ppc64_elf_size_dynamic_sections): Check for splt NULL.

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

	* bfd/bfd.c (bfd_get_arch_size): Remove bfd_set_error call for
	non-ELF targets.

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

	* elf-bfd.h (elf_backend_emit_relocs): Change prototype to return
	an error value.
	* elflink.h (elf_link_output_relocs): Likewise. Improve error message.
	return with false on error.
	(elf_link_input_bfd): Check reloc_emitter return value.

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

	* config.bfd (armeb-*-netbsdelf*): New target.

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

	* elf64-ppc.c (ppc_build_one_stub): Point undefined function syms
	at the plt call stub.

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

	* cpu-mips.c (mips_compatible): Don't try to check machine
	compatibility.

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

	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_out):  Fix C_FILE auxent.

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

	* elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.
	(ppc64_elf_relocate_section): Don't warn about reloc overflow when
	we've already warned about an undefined symbol.  Report more
	detail on reloc errors.

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

	* acinclude.m4 (AM_INSTALL_LIBBFD): New.
	* configure.in: Invoke AM_INSTALL_LIBBFD.
	* Makefile.am (install-data-local): Revert 2002-05-13.  Move to..
	(install_libbfd): .. New target.
	(uninstall_libbfd): Likewise.
	(install-bfdlibLTLIBRARIES): Likewise.
	(uninstall-bfdlibLTLIBRARIES): Likewise.
	(bfdlibdir): New.
	(bfdincludedir): New.
	(lib_LTLIBRARIES): Rename to bfdlib_LTLIBRARIES.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2002-05-17  Stuart Balfour <sbalfour@cisco.com>

	* hash.c (bfd_hash_lookup): Remove computation of len from inside
	hash loop.

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

	* config.bfd: Add targets for sh64-linux (little endian and
	big endian).

2002-05-15  Laurent Pinchart <laurent.pinchart@skynet.be>

	* peXXigen.c (pe_print_idata): Do not assume that the first thunk
	is located in the same section as the import table.  Instead
	check, and if necessary load the section containing the thunk.

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

	* aix5ppc-core.c (xcoff64_core_p): Replace bfd_read with
	bfd_bread.
	(xcoff64_core_file_matches_executable_p): Replace bfd_read
	with bfd_bread.

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

	* aix5ppc-core.c: Warning fixes.
	* aout-adobe.c (aout_32_bfd_link_just_syms): Define.
	* aout-target.h (MY_bfd_link_just_syms): Define.
	* aout-tic30.c (MY_bfd_link_just_syms): Define.
	* bfd.c (bfd_link_just_syms): Define.
	* binary.c (binary_bfd_link_just_syms): Define.
	* bout.c (b_out_bfd_link_just_syms): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Update initializer.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_link_just_syms): Define.
	* elf-bfd.h (enum elf_link_info_type): Add ELF_INFO_TYPE_JUST_SYMS.
	(elf_discarded_section): Check for ELF_INFO_TYPE_JUST_SYMS.
	(_bfd_elf_link_just_syms): Declare.
	* elf.c (_bfd_elf_link_just_syms): New function.
	* elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Check that
	sections haven't already been discarded by the linker.
	* elflink.h (elf_link_add_object_symbols): Likewise for stab
	sections and SEC_MERGE sections.
	(elf_bfd_discard_info): Similarly here.
	* elfxx-target.h (bfd_elfNN_bfd_link_just_syms): Define.
	* i386msdos.c (msdos_bfd_link_just_syms): Define.
	* i386os9k.c (os9k_bfd_link_just_syms): Define.
	* ieee.c (ieee_bfd_link_just_syms): Define.
	* ihex.c (ihex_bfd_link_just_syms): Define.
	* libbfd-in.h (_bfd_nolink_bfd_link_just_syms): Define.
	(_bfd_generic_link_just_syms): Declare.
	* libecoff.h (_bfd_ecoff_bfd_link_just_syms): Define.
	* linker.c (_bfd_generic_link_just_syms): New function.
	* mmo.c (mmo_bfd_link_just_syms): Define.
	* nlm-target.h (nlm_bfd_link_just_syms): Define.
	* oasys.c (oasys_bfd_link_just_syms): Define.
	* ppcboot.c (ppcboot_bfd_link_just_syms): Define.
	* som.c (som_bfd_link_just_syms): Define.
	* srec.c (srec_bfd_link_just_syms): Define.
	* targets.c (struct bfd_target): Add _bfd_link_just_syms.
	(BFD_JUMP_TABLE_LINK): And here.
	* tekhex.c (tekhex_bfd_link_just_syms): Define.
	* versados.c (versados_bfd_link_just_syms): Define.
	* vms.c (vms_bfd_link_just_syms): Define.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

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

	* elf32-mips.c: Remove superfluous definitions copied from
	elfxx-mips.c.
	(bfd_elf32_bigmips_vec,bfd_elf32_littlemips_vec): Use the
	SGIish vectors to check the special case.
	(mips_elf_hi16_reloc): Fix comment.
	(mips_elf_got16_reloc): Likewise.
	(_bfd_mips_elf32_gprel16_reloc): Likewise.
	(elf_reloc_map): Code cleanup.
	(mips_reloc_map): Add comment.
	(bfd_elf23_bfd_reloc_type_lookup): Code cleanup.
	(mips_elf32_rtype_to_howto): Likewise.
	(mips_elf32_discard_info): Likewise.
	(elf32_mips_irix_compat): Invert logic: Only SGIish vectors
	lead to IRIX compatibility now.

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

	* elfxx-mips.c: Call it IRIX, not Irix in comments.

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

	* config.bfd (shle-*-netbsdelf*): Add target which includes
	sh64 support.

2002-05-13  David Edelsohn  <edelsohn@gnu.org>

	* configure.in: Revert 2002-04-07.  Instead, auto-configure
	HAVE_ST_C_IMPL.
	* configure: Regenerate.
	* config.in: Regenerate.
	* rs6000-core.c (CNEW_IMPL): Guard use of c_impl with HAVE_ST_C_IMPL
	or AIX_5_CORE.

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

	* configure.in (sparc*-*-openbsd*): Support sparc64-openbsd
	corefiles as well.2
	* configure: Regenerate.

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

	* Makefile.am (install-data-local): Install headers to
	$(exec_prefix)/include.
	* Makefile.in: Regenerate.

2002-05-11  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
	    Daniel Jacobowitz  <drow@mvista.com>

	* coff-sh.c (sh_reloc_map): Map to R_SH_IMM32 for non-PE.  Don't
	map BFD_RELOC_RVA.

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

	* config.bfd (alpha*-*-openbsd*, sparc64*-*-openbsd*,
	hppa*-*-openbsd*): New targets.
	* configure.in (alpha*-*-openbsd*): Set COREFILE.
	* configure: Regenerate.

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

	* coff64-rs6000.c (xcoff64_reloc_type_br): New function for
	xcoff64_ppc_relocate_section.
	* coff-rs6000.c : Extern common xcoff_reloc_type functions.
	* libxcoff.h: Common xcoff_reloc_type function declaration.

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

	* elf32-i386.c (elf_i386_relocate_section): Remove overflow checks
	added in 2002-05-09 commit.

	* elf32-hppa.c (elf32_hppa_size_stubs): Revert part of 2002-05-04,
	don't look for stubs on all undefined syms.

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

	* elf64-ppc.c (RA_REGISTER_MASK, RA_REGISTER_SHIFT): Delete.
	(ppc64_elf_howto_raw <R_PPC64_RELATIVE>): Not pc_relative or
	pcrel_offset.

	* elf32-i386.c (elf_howto_table): Comments.
	(elf_i386_relocate_section): Handle more relocs for relocatable
	linking and against SEC_MERGE sections.

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

	* elf32-ppc.c (ppc_elf_create_got): New function.
	(ppc_elf_create_dynamic_sections): Call ppc_elf_create_got before
	_bfd_elf_create_dynamic_sections.  Correct .plt flags.
	(ppc_elf_check_relocs): Use ppc_elf_create_got in place of
	_bfd_elf_create_got_section.

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

	* elf-bfd.h (struct elf_backend_data): Add rela_normal.
	* elfxx-target.h (elf_backend_rela_normal): Define.
	(elfNN_bed): Init rela_normal.
	* elflink.h (elf_link_input_bfd <emit_relocs>): Handle adjustment
	for section symbols here if rela_normal.  Simplify abs section test.
	* elf-m10200.c (mn10200_elf_relocate_section): If relocatable,
	return immediately.  Remove code handling relocatable linking.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elf32-arm.h (elf32_arm_relocate_section): Likewise #ifndef USE_REL.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf-m10200.c (elf_backend_rela_normal): Define.
	* elf-m10300.c (elf_backend_rela_normal): Define.
	* elf32-fr30.c (elf_backend_rela_normal): Define.
	* elf32-i370.c (elf_backend_rela_normal): Define.
	* elf32-i860.c (elf_backend_rela_normal): Define.
	* elf32-m68k.c (elf_backend_rela_normal): Define.
	* elf32-mcore.c (elf_backend_rela_normal): Define.
	* elf32-openrisc.c (elf_backend_rela_normal): Define.
	* elf32-ppc.c (elf_backend_rela_normal): Define.
	* elf32-s390.c (elf_backend_rela_normal): Define.
	* elf32-xstormy16.c (elf_backend_rela_normal): Define.
	* elf64-ppc.c (elf_backend_rela_normal): Define.
	* elf64-s390.c (elf_backend_rela_normal): Define.
	* elf64-x86-64.c (elf_backend_rela_normal): Define.
	* elfxx-ia64.c (elf_backend_rela_normal): Define.
	* elf32-arm.h (elf_backend_rela_normal): Define #ifndef USE_REL.
	* elf32-m32r.c (elf_backend_rela_normal): Likewise.

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

	* elf32-arm.h (elf32_arm_final_link_relocate): Convert
	'reloc_signed_max' and 'reloc_signed_min' into half-word offsets.

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

	* elflink.h (elf_link_input_bfd <emit_relocs>): Adjust r_offset
	when not relocatable.  Fix reloc_emitter call for K&R.

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

	* elf64-ppc.c (ppc64_elf_relocate_section): Reinstate code
	reloading local sym addend mistakenly removed in 2002-05-01 change.

	* dwarf2.c (struct line_head): Make prologue_length a bfd_vma.
	(read_abbrevs): Change "offset" param to bfd_vma.
	(parse_comp_unit): Change "version" and addr_size to unsigned ints.
	Change "abbrev_offset" to bfd_vma.
	(read_indirect_string): Use correct conversion chars in error
	message format string, cast bfd_vma's to unsigned long.
	(read_abbrevs): Likewise.
	(read_attribute_value): Likewise.
	(decode_line_info): Likewise.
	(scan_unit_for_functions): Likewise.
	(parse_comp_unit): Likewise.

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

	* coffswap.h (coff_swap_reloc_in): Remove XCOFF support.
	(coff_swap_reloc_out): Same.
	* coff-rs6000.c: (xcoff_swap_reloc_in): Moved from coffswap.h.
	(xcoff_swap_reloc_out): Same.
	(xcoff_rtype2howto): Renamed from _bfd_xcoff_rtype2howto. Special
	case some 16 bit relocs. Add reloc value to output.
	(xcoff_howto_table): Remove 64 bit R_POS, add 16 bit
	R_RBR. Improve names.
	(_bfd_xcoff_reloc_type_lookup): Adjust for removal of 64 bit R_POS.
	(bfd_xcoff_backend_data): Update with new reloc swap names.
	(bfd_pmac_xcoff_backend_data) : Same.
	* coff64-rs6000.c: (xcoff64_swap_reloc_in): Moved from coffswap.h.
	(xcoff64_swap_reloc_out): Same.
	(xcoff64_rtype2howto): Special case some 16 bit relocs and 32 bit
	R_POS. Add reloc value to output.
	(xcoff64_howto_table): Move 64 bit R_POS to first entry.  Add 16
	bit R_RBR. Improve names, masks.
	(xcoff64_reloc_type_lookup): Adjust for move of 64 bit R_POS.
	(bfd_xcoff_backend_data): Update with new reloc swap names.
	(bfd_xcoff_aix5_backend_data) : Same.

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

	* elf32-hppa.c (struct elf32_hppa_link_hash_table): Add
	bfd_count top_index, input_list, all_local_syms.
	(elf32_hppa_setup_section_lists): New function, split from
	elf32_hppa_size_stubs.
	(elf32_hppa_next_input_section): Likewise.
	(group_sections): Likewise.
	(get_local_syms): Likewise.
	(elf32_hppa_size_stubs): Adjust for split out functions.  Look for
	stubs on undefined syms too.
	(elf32_hppa_set_gp): Use bfd_link_hash* instead of elf_link_hash*.
	Only access htab elf fields when we have an elf hash table.
	* elf32-hppa.h (elf32_hppa_setup_section_lists): Declare.
	(elf32_hppa_next_input_section): Declare.

2002-05-04  Bob Byrnes  <byrnes@curl.com>

	* opncls.c (_bfd_new_bfd_contained_in): Check return value of
	_bfd_new_bfd.

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

	* elfxx-mips.c (mips_elf_link_hash_entry): Add forced_local.
	(mips_elf_link_hash_newfunc): Initialize forced_local to false.
	(mips_elf_record_global_got_symbol): Call _bfd_mips_elf_hide_symbol
	to hide a global symbol.
	(_bfd_mips_elf_hide_symbol): Return if forced_local is true. Set
	forced_local to true.

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

	* elf64-alpha.c (elf64_alpha_relocate_section): Force relative relocs
	vs SHN_UNDEF to zero.

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

	* elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_SECTOFF>): Change to a
	16 bit reloc.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(ppc64_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.
	* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_SECTOFF>): Correct.
	(ppc_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.

	* elf64-ppc.c (ppc64_elf_addr16_ha_reloc): Delete.
	(ppc64_elf_ha_reloc): New function.
	(ppc64_elf_brtaken_reloc): New function.
	(ppc64_elf_sectoff_reloc): New function.
	(ppc64_elf_sectoff_ha_reloc): New function.
	(ppc64_elf_toc_reloc): New function.
	(ppc64_elf_toc_ha_reloc): New function.
	(ppc64_elf_toc64_reloc): New function.
	(ppc64_elf_unhandled_reloc): New function.
	(ppc64_elf_howto_raw): Use the above.
	<R_PPC64_RELATIVE>: Mark pc_relative, pcrel_offset.
	<R_PPC64_SECTOFF>: Not pc_relative or pcrel_offset.  Fix dst_mask.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(IS_ABSOLUTE_RELOC): Update.
	(struct ppc_link_hash_table): Add have_undefweak.
	(ppc64_elf_link_hash_table_create): Init.
	(func_desc_adjust): Set have_undefweak.
	(ppc64_elf_func_desc_adjust): Call func_desc_adjust earlier.  Only
	add the .sfpr blr when have_undefweak.
	(ppc64_elf_setup_section_lists): Check hash table flavour.
	(ppc64_elf_next_input_section): Move output_section->owner test to
	ppc64elf.em.
	(ppc64_elf_set_toc): Rename to ppc64_elf_toc, remove info param
	and relocatable test.  Return TOCstart and don't set elf_gp.
	(ppc64_elf_relocate_section): Correct BRTAKEN/BRNTAKEN branch
	offset calculation.  Add assert on weak sym branch tweaks.
	* elf64-ppc.h (ppc64_elf_set_toc): Delete.
	(ppc64_elf_toc): Declare.
	(ppc64_elf_next_input_section): Update.

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

	* syms.c (_bfd_stab_section_find_nearest_line): Don't bomb on NULL
	file_name.

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

	* elf64-ppc.c (CROR_151515, CROR_313131): Define.
	(ppc64_elf_relocate_section): Use them.  Don't look for plt calls
	on R_PPC64_ADDR24 relocs.  Require a nop or no link reg on plt
	call branches.  Correct undefined weak destination.
	(ppc64_elf_func_desc_adjust): Always create at least one blr in
	.sfpr, and correct case where either only savef* or restf* is
	needed.

	Long branch stubs, multiple stub sections.
	* elf64-ppc.h (ppc64_elf_setup_section_lists): Declare.
	(ppc64_elf_next_input_section): Declare.
	* elf64-ppc.c: Move linker-only prototypes.
	(STUB_SUFFIX): Define.
	(enum ppc_stub_type): New.
	(struct ppc_stub_hash_entry): New.
	(struct ppc_branch_hash_entry): New.
	(struct ppc_link_hash_entry): Add stub_cache, oh.
	(struct ppc_link_hash_table): Add stub_hash_table etc.  Remove
	sstub.  Add sbrlt, srelbrlt, has_14bit_branch, stub_iteration.
	Rename plt_overflow to stub_error.
	(ppc_stub_hash_lookup): Define.
	(ppc_branch_hash_lookup): Define.
	(stub_hash_newfunc): New function.
	(branch_hash_newfunc): New function.
	(link_hash_newfunc): Init new fields.
	(ppc64_elf_link_hash_table_create): Likewise.
	(ppc64_elf_link_hash_table_free): New function.
	(ppc_stub_name): New function.
	(ppc_get_stub_entry): New function.
	(ppc_add_stub): New function.
	(create_linkage_sections): Use bfd_make_section_anyway.  Create
	.branch_lt and .rela.branch_lt sections.  Don't create .stub.
	(ppc64_elf_check_relocs): Set has_14bit_branch on R_PPC64_REL14*,
	and set up for plt call stubs.  Link func and func desc syms.
	(ppc64_elf_gc_sweep_hook): Handle REL14* as per REL24.
	(func_desc_adjust): Avoid hash lookup when func desc sym available
	via shortcut, and set links when processing.
	(ppc64_elf_hide_symbol): Likewise.
	(allocate_dynrelocs): Don't allocate stub section here.
	(ppc64_elf_size_dynamic_sections): Handle sbrlt and srelbrlt.
	Remove sstub code.
	(ppc_type_of_stub): New function.
	(build_one_stub): Delete.
	(ppc_build_one_stub): New function.
	(ppc_size_one_stub): New function.
	(ppc64_elf_setup_section_lists): New function.
	(ppc64_elf_next_input_section): New function.
	(group_sections): New function.
	(get_local_syms): New function.
	(ppc64_elf_size_stubs): Rewrite.
	(ppc64_elf_build_stubs): Rewrite.
	(ppc64_elf_relocate_section): Look up stub entry for REL24
	relocs.  Don't propagate REL14* to dynamic objects.  Look for long
	branch stubs if REL14* or REL24 relocs won't reach.
	(bfd_elf64_bfd_link_hash_table_free): Define.

2002-04-30  Mark Mitchell  <mark@codesourcery.com>

	* bfd/config.bfd: Add support for powerpc-*-windiss.

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

	* xcofflink.c (xcoff_link_add_symbols): Always copy undef C_EXT
	symbol names into the hash table.

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

	* coff-rs6000.c (xcoff_calculate_relocation) : Function table for
	calulating relocations.
	(xcoff_complain_overflow) : Function table for relocation errors.
	(xcoff_ppc_relocate_section): Use relocation and complain function
	tables.
	(xcoff_complain_overflow_unsigned_func): New complain function.
	(xcoff_complain_overflow_signed_func): Same.
	(xcoff_complain_overflow_bitfield_func): Same.
	(xcoff_complain_overflow_dont_func): Same.
	(xcoff_reloc_type_crel): New recot function.
	(xcoff_reloc_type_br): Same.
	(xcoff_reloc_type_ba): Same.
	(xcoff_reloc_type_toc): Same.
	(xcoff_reloc_type_rel): Same.
	(xcoff_reloc_type_neg): Same.
	(xcoff_reloc_type_pos): Same.
	(xcoff_reloc_type_fail): Same.
	(xcoff_reloc_type_noop): Same.
	* libxcoff.h : Declare common parts for xcoff64.
	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Use relocation
	and complain function tables.

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

	* elf64-x86-64.c (struct elf64_x86_64_dyn_relocs): Comment typo.
	* elf32-hppa.c (elf32_hppa_final_link): Formatting.

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

	* opncls.c (bfd_make_readable): Call bfd_section_list_clear.
	* xcofflink.c (xcoff_link_add_dynamic_symbols): Likewise.

	* elflink.h (elf_bfd_final_link): Ensure input bfd class is the
	same as the output before calling elf_link_input_bfd.

	* coffcode.h (coff_compute_section_file_positions): Set
	section_tail after shuffling section list.

2002-04-24  Christian Groessler <chris@groessler.org>

	* coff-z8k.c (extra_case): Fix R_IMM32 relocations: The
	addresses are 23bit with a special layout, not plain 32bit
	values.  Prevent relocation of immediate values.

2002-04-24  Chris G. Demetriou  <cgd@broadcom.com>

	* elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): If MDMX or
	MIPS-16 ASE flags are set, print something to indicate that.

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

	* elf32-hppa.c (hppa_type_of_stub): Correct and simplify condition
	under which a plt call stub is used.
	(final_link_relocate): Similarly.
	(allocate_plt_static): Clear h-plabel except when plt entry is
	exclusively used for a plabel.
	(allocate_dynrelocs): Use the above to simplify plt sizing.
	(struct elf32_hppa_link_hash_table): Add has_22bit_branch.
	(elf32_hppa_link_hash_table_create): Init.
	(BL22_RP): Define.
	(hppa_build_one_stub): Use BL22_RP if has_22bit_branch.
	(elf32_hppa_check_relocs): Set has_22bit_branch.

	* elf32-hppa.c (elf32_hppa_check_relocs): Remove debug message.
	(final_link_relocate): Likewise.

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

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't build
	search table if some FDE is DW_EH_PE_aligned encoded either.
	(_bfd_elf_write_section_eh_frame): Handle terminating FDE specially.

2002-04-22  Richard Smith  <richard@ex-parrot.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* elf-eh-frame.c (struct eh_cie_fde): Add per_encoding_relative.
	(_bfd_elf_discard_section_eh_frame): Set it for CIEs with pcrel
	encoded personality.
	(_bfd_elf_write_section_eh_frame): Adjust pcrel encoded personality
	for CIE/FDE removal.

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

	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Fix C_FILE auxent.

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

	* archures.c (bfd_lookup_arch): Move the list order comment..
	(struct bfd_arch_info): ..to where it belongs.
	* bfd-in2.h: Regenerate.

	* archures.c (bfd_lookup_arch): Add comment on list order.
	(bfd_default_set_arch_mach): Use bfd_lookup_arch.
	* cpu-powerpc.c (bfd_powerpc_archs): Re-order so that the default
	is always at head of list.

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

	* coff-arm.c (coff_thumb_pcrel_12, coff_thumb_pcrel_9,
	insert_thumb_branch, record_thumb_to_arm_glue): Suppress
	definition of these functions for ARM_WINCE builds as they are
	not used.
	(SWAP_IN_RELOC_OFFSET, SWAP_OUT_RELOC_OFFSET): Do not define
	for ARM_WINCE builds.

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

	* coff-arm.c (bfd_arm_process_before_allocation):

2002-04-17  J"orn Rennecke <joern.rennecke@superh.com>

	* cpu-sh.c (scan_mach): Delete.
	(arch_info_struct): Replace scan_mach with bfd_default_scan.
	(bfd_sh_arch): Likewise.

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

	* ihex.c (ihex_write_object_contents): Fix check for records
	crossing 64K boundaries.

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

	* elf32-m32r.c (m32r_elf_add_symbol_hook): Check the hash table
	type rather than just assuming entries are ELF.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_add_symbol_hook): Use bfd_link_hash_entry
	rather than elf_link_hash_entry.

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

	* elf32-mips.c (mips_elf32_object_p): Revert 0404 fragment: allow
	n32 binaries.

2002-04-15  Michael Snyder  <msnyder@redhat.com>

	* opncls.c (bfd_close): Write contents if writeable.
	Minor formatting tidy-ups.

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

	* elf32-ppc.c (ppc_elf_add_symbol_hook): Check the hash table type.

2002-04-12  Michael Snyder  <msnyder@redhat.com>

	* bfd-in.h (bfd_get_section_lma): New access macro.
	Minor white-space fix-up.

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

	* elf.c (prep_headers): Don't zero EI_OSABI, EI_ABIVERSION or
	header pad.

2002-04-09  DJ Delorie  <dj@redhat.com>

	* elfarm-nabi.c (elf32_arm_howto_table): Fix ABS16 masks.

2002-04-09  Casper S. Hornstrup <chorns@users.sourceforge.net>

	* coffcode.h (coff_read_word): New.
	(coff_compute_checksum): New.
	(coff_apply_checksum): New.
	(coff_write_object_contents): Call coff_apply_checksum () to
	apply checksum to PE image.

2002-04-08  Randolph Chung  <tausq@debian.org>

	* elf32-hppa.c (hppa_unwind_entry_compare): Move to elf-hppa.h.
	(elf32_hppa_final_link): Split out sorting logic to..
	* elf-hppa.h (elf_hppa_sort_unwind): ..here.
	(elf_hppa_final_link): Call elf_hppa_sort_unwind.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* configure.in: Add missing ``|'' to powerpc-*-aix4.[4-9]*
	pattern.
	* configure: Re-generate.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* configure.in: Only define AIX_CORE_DUMPX_CORE when AIX version
	is greater or equal to 4.3.3.
	* configure: Regenerate.
	Fix PR gdb/344.

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

	* elf32-cris.c (cris_elf_howto_table) <R_CRIS_16_PCREL,
	R_CRIS_32_PCREL>: Fix typo in name.
	(cris_elf_check_relocs): Always create .rela.got here when
	R_CRIS_16_GOTPLT or R_CRIS_32_GOTPLT is seen.
	(elf_cris_adjust_gotplt_to_got): Don't create .rela.got here;
	assume it's created.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* aout-adobe.c (aout_32_bfd_link_hash_table_free): Define.
	* aout-target.h (MY_bfd_link_hash_table_free): Conditionally
	define.
	* aout-tic30.c (MY_bfd_link_hash_table_free): Likewise.
	* bfd.c (bfd_link_hash_table_free): Define.
	* binary.c (binary_bfd_link_hash_table_free): Define.
	* bout.c (b_out_bfd_link_hash_table_free): Define.
	* coff-rs6000.c (rs6000coff_vec): Include
	_bfd_generic_link_hash_table_free.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_link_hash_table_free): Conditionally define.
	* elf-m10300.c (elf32_mn10300_link_hash_table_free): New function.
	(bfd_elf32_bfd_link_hash_table_free): Define.
	* elf32-hppa.c (elf32_hppa_link_hash_table_free): New function.
	(bfd_elf32_bfd_link_hash_table_free): Define.
	* elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Conditionally
	define.
	* i386msdos.c (msdos_bfd_link_hash_table_free): Define.
	* i386os9k.c (os9k_bfd_link_hash_table_free): Define.
	* ieee.c (ieee_bfd_link_hash_table_free): Define.
	* ihex.c (ihex_bfd_link_hash_table_free): Define.
	* libbfd-in.h (_bfd_nolink_bfd_link_hash_table_free): Define.
	(_bfd_generic_link_hash_table_free): Add prototype.
	* libcoff-in.h (_bfd_xcoff_bfd_link_hash_table_free): Add prototype.
	* libecoff.h (_bfd_ecoff_bfd_link_hash_table_free): Define.
	* linker.c (_bfd_generic_link_hash_table_free): New function.
	* mmo.c (mmo_bfd_link_hash_table_free): Define.
	* nlm-target.h (nlm_bfd_link_hash_table_free): Define.
	* oasys.c (oasys_bfd_link_hash_table_free): Define.
	* ppcboot.c (ppcboot_bfd_link_hash_table_free): Define.
	* som.c (som_bfd_link_hash_table_free): Define.
	* srec.c (srec_bfd_link_hash_table_free): Define.
	* tekhex.c (tekhex_bfd_link_hash_table_free): Define.
	* versados.c (versados_bfd_link_hash_table_free): Define.
	* vms.c (vms_bfd_link_hash_table_free): New function.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_free): New function.

	* coff-arm.c (coff_arm_link_hash_table_create): Use bfd_malloc
	instead of bfd_alloc.
	* coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
	* coff-mcore.c (coff_mcore_link_hash_table_create): Likewise.
	* coff-ppc.c (ppc_coff_link_hash_table_create): Likewise.
	* cofflink.c (_bfd_coff_link_hash_table_create): Likewise.
	* ecoff.c (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
	* elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
	* elf.c (_bfd_elf_link_hash_table_create): Likewise.
	* elf32-arm.h (elf32_arm_link_hash_table_create): Likewise.
	* elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
	* elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
	* elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
	* elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
	* elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf32-sh.c (sh_elf_link_hash_table_create): Likewise.
	* elf64-alpha.c (elf64_alpha_bfd_link_hash_table_create): Likewise.
	* elf64-ppc.c (ppc64_elf_link_hash_table_create): Likewise.
	* elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
	* elf64-sparc.c (sparc64_elf_bfd_link_hash_table_create): Likewise.
	* elf64-x86-64.c (elf64_x86_64_link_hash_table_create): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
	* linker.c (_bfd_generic_link_hash_table_create): Likewise.
	* m68klinux.c (linux_link_hash_table_create): Likewise.
	* sparclinux.c (linux_link_hash_table_create): Likewise.
	* sunos.c (sunos_link_hash_table_create): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.

	* targets.c: Add _bfd_link_hash_table_free to xvec.

	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

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

	* dep-in.sed: Cope with absolute paths.
	* Makefile.am (dep.sed): Subst TOPDIR, and not INCDIR.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* coff-arm.c: Fix copyright date.
	* cpu-h8300.c: Likewise.
	* cpu-i370.c: Likewise.
	* cpu-s390.c: Likewise.
	* cpu-mips.c: Likewise.
	* po/SRC-POTFILES.in: Regenerate.

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

	* Makefile.am: Add elfxx-mips.c to the known backends.
	(elf32-mips.lo): remove dependency to coff/external.h.
	* Makefile.in: Regenerate.
	* configure.in: Add elfxx-mips.lo to all vectors using elf32-mips.lo
	Remove elf32-mips.lo from 64 bit vectors. Update dependencies
	accordingly.
	* configure: Regenerate.
	* elf-bfd.h: Move all MIPS ELF specific prototypes to elfxx-mips.h.
	(irix_compat_t): IRIX compatibility level, moved from elf32-mips.c.
	(elf_backend_mips_irix_compat, elf_backend_mips_rtype_to_howto): New
	MIPS specific backend functions.
	* elf32-mips.c: Moved most code to elfxx-mips.c.
	(mips_elf_hi16_reloc): Rename from _bfd_mips_elf_hi16_reloc and make
	static.
	(mips_elf_lo16_reloc): Likewise, was _bfd_mips_elf_lo16_reloc.
	(mips_elf_got16_reloc): Likewise, was _bfd_mips_elf_got16_reloc.
	(mips_elf_gprel32_reloc): Likewise, was _bfd_mips_elf_gprel32_reloc.
	(mips_elf32_rtype_to_howto): Rename from mips_rtype_to_howto. Changed
	interface to allow selection of the right REL or RELA howto table.
	(mips_elf32_object_p): Rename from _bfd_mips_elf_object_p and made
	static. Let it refuse n32 objects.
	(elf32_mips_grok_prstatus): Rename from _bfd_elf32_mips_grok_prstatus.
	(elf32_mips_grok_psinfo): Rename from _bfd_elf32_mips_grok_psinfo.
	(elf32_mips_discard_info): Rename from _bfd_elf32_mips_discard_info.
	(elf32_mips_ignore_discarded_relocs): Rename from
	_bfd_elf32_mips_ignore_discarded_relocs.
	(elf32_mips_write_section): Rename from _bfd_elf32_mips_write_section.
	(elf32_mips_irix_compat): New function, replaces IRIX_COMPAT.
	(elf_mips_howto_table_rela): Remove.
	* elf64-mips.c: Moved most code to elfxx-mips.c.
	(bfd_elf64_bfd_reloc_type_lookup): Make static.
	(mips_elf64_rtype_to_howto): New function.
	(mips_elf64_object_p): Likewise.
	(elf64_mips_irix_compat): Likewise.
	* elfxx-mips.c: New file containing common code merged together from
	elf32-mips.c and elf64-mips.c.
	* elfxx-mips.h: New file containing MIPS specific prototypes from
	elf-bfd.h.
	* elfxx-target.h: Add handling for elf_backend_mips_irix_compat and
	elf_backend_mips_rtype_to_howto.

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

	* srec.c (MAXCHUNK, Chunk): Revise comments.
	(srec_write_record): Correct buffer size.
	(srec_write_header): Do without intermediate buffer.
	(srec_write_section): Validate Chunk.
	(srec_write_terminator): Pass NULL instead of dummy buffer.
	(srec_write_symbols): Pass file and symbol names directly to
	bfd_bwrite so sprintf won't overflow buffer.

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

	* elf32-sparc.c (elf32_sparc_relocate_section): Don't emit dynamic
	PC relative relocs against hidden symbols.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.

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

	* elf.c (_bfd_elf_make_section_from_shdr): When setting section
	LMAs, loop over segments until p_vaddr and p_memsz specify an
	extent enclosing the section.

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

	* ihex.c (ihex_write_object_contents): Do not allow records to
	cross a 64K boundary - wrap if necessary.

2002-04-01  Nathan Williams  <nathanw@wasabisystems.com>

	* elf.c (elfcore_netbsd_get_lwpid): Fix off-by-one error
	which caused the returned LWP ID to always be 0.

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

	* elf32-sparc.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(elf32_sparc_relocate_section): Use it to figure out when to
	initialize .got entries.
	* elf64-sparc.c: Similarly.

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

	* linker.c (link_action): Ignore duplicate warning syms.
	(_bfd_generic_link_write_global_symbol): Follow warning symbol link.
	* elflink.h (elf_adjust_dynstr_offsets): Likewise.
	(elf_adjust_dynamic_symbol): Likewise.
	(elf_export_symbol): Likewise.
	(elf_link_find_version_dependencies): Likewise.
	(elf_link_assign_sym_version): Likewise.
	(elf_link_sec_merge_syms): Likewise.
	(elf_link_output_extsym): Likewise.
	(elf_gc_sweep_symbol): Likewise.
	(elf_gc_propagate_vtable_entries_used): Likewise.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	(elf_gc_allocate_got_offsets): Likewise.
	(elf_collect_hash_codes): Likewise.
	* elflink.c (elf_link_renumber_hash_table_dynsyms): Likewise.
	* elf-hppa.h (elf_hppa_unmark_useless_dynamic_symbols): Likewise.
	(elf_hppa_remark_useless_dynamic_symbols): Likewise.
	* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Likewise.
	* elf32-arm.h (elf32_arm_discard_copies): Likewise.
	* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Likewise.
	(elf_cris_discard_excess_dso_dynamics): Likewise.
	* elf32-hppa.c (clobber_millicode_symbols): Likewise.
	(mark_PIC_calls): Likewise.
	(allocate_plt_static): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-i386.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-i370.c (i370_elf_adjust_dynindx): Likewise.
	* elf32-m68k.c (elf_m68k_discard_copies): Likewise.
	* elf32-mips.c (mips_elf_output_extsym): Likewise.
	(mips_elf_sort_hash_table_f): Likewise.
	(mips_elf_check_mips16_stubs): Likewise.
	* elf32-s390.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-sh.c (sh_elf_discard_copies): Likewise.
	* elf32-xstormy16.c (xstormy16_relax_plt_check): Likewise.
	(xstormy16_relax_plt_realloc): Likewise.
	* elf64-alpha.c (elf64_alpha_calc_got_offsets_for_symbol): Likewise.
	(elf64_alpha_output_extsym): Likewise.
	* elf64-hppa.c (elf64_hppa_mark_exported_functions): Likewise.
	* elf64-mips.c (mips_elf64_sort_hash_table_f): Likewise.
	(mips_elf64_check_mips16_stubs): Likewise.
	(mips_elf64_output_extsym): Likewise.
	* elf64-ppc.c (func_desc_adjust): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf64-s390.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf64-sh64.c (sh64_elf64_discard_copies): Likewise.
	* elf64-x86-64.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elfxx-ia64.c (elfNN_ia64_global_dyn_sym_thunk): Likewise.
	* aoutx.h (aout_link_write_other_symbol): Likewise.
	* cofflink.c (_bfd_coff_write_task_globals): Likewise.
	(_bfd_coff_write_global_sym): Likewise.
	* i386linux.c (linux_tally_symbols): Likewise.
	* m68klinux.c (linux_tally_symbols): Likewise.
	* sparclinux.c (linux_tally_symbols): Likewise.
	* pdp11.c (aout_link_write_other_symbol): Likewise.
	* sunos.c (sunos_scan_dynamic_symbol): Likewise.
	* xcofflink.c (xcoff_build_ldsyms): Likewise.
	(xcoff_write_global_symbol): Likewise.

	* cofflink.c (_bfd_coff_final_link): Formatting.
	* cpu-mips.c (mips_compatible): Make static, prototype.
	* elf32-i386.c (elf_i386_check_relocs): Formatting.
	* elf32-sh.c (sh_elf_size_dynamic_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_output_extsym): Likewise.
	* elf64-mips.c (mips_elf64_sort_hash_table): Likewise.
	(mips_elf64_final_link): Likewise.
	* elflink.h (elf_link_find_version_dependencies): Remove duplicate
	prototype.

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

	* coff-arm.c (SWAP_IN_RELOC_OFFSET): Define.
	(SWAP_OUT_RELOC_OFFSET): Define.

2002-03-27  Gregory Steuck <greg@nest.cx>

	* elf.c (_bfd_elf_get_symtab_upper_bound): Leave space for
	terminating NULL if empty symbol table.
	(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.

2002-03-26  H.J. Lu  (hjl@gnu.org)

	* elflink.h (elf_link_input_bfd): Revert the last change since
	the gcc exception handling isn't fixed yet.

2002-03-26  H.J. Lu  (hjl@gnu.org)

	* elflink.h (elf_link_input_bfd): Complain about relocations
	against local symbols in discarded sections.

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

	* elflink.h (elf_gc_mark): Don't recurse into non-ELF sections.

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

	* elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
	section file offset for !SEC_LOAD sections.

2002-03-21  Richard Earnshaw  <rearnsha@arm.com>

	* elf32-arm.h (elf32_arm_final_link_relocate <case R_ARM_GOTOFF>,
	<case R_ARM_GOT>): Handle relocations to Thumb functions.

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

	* coff64-rs6000.c (_bfd_xcoff64_put_symbol_name): Prototype.
	Whitespace changes.
	* archive.c: Update copyright date.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

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

	* dwarf2.c (struct funcinfo): Move up.
	(lookup_address_in_function_table): New argument function_ptr.
	Set it.
	(lookup_address_in_line_table): New argument function.  If function
	is non-NULL, use it to handle ``addr'' before the first line note of
	the function.
	(comp_unit_find_nearest_line): Update and swap calls to
	lookup_address_in_function_table and lookup_address_in_line_table.
	* syms.c (_bfd_stab_section_find_nearest_line): Use the first
	N_SLINE encountered if we see an N_FUN before any N_SLINE.

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

	* coff-rs6000.c (_bfd_xcoff_stat_arch_elt): Renamed from
	_bfd_xcoff_generic_stat_arch_elt.  Fix format check.
	* coff64-rs6000.c :  Use _bfd_xcoff_stat_arch_elt.

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

	* xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Look through all
	dynamic objects in archives.

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

	* elflink.h (NAME(bfd_elf,record_link_assignment)): Don't set
	STT_NOTYPE symbols to STT_OBJECT.

2002-03-18  Jan Hubicka  <jh@suse.cz>

	* cpu-i386.c (bfd_x86_64_arch): Rename to "i386:x86-64"

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

	* aix5ppc.core.c : New file for AIX 5 64 bit core support.
	* bfd-in.h : Add bfd_xcoff_ar_archive_set_magic declaration.
	* coff-rs6000 (do_pad) : New function for archive padding.
	(do_copy) : New function for object file copying in archives.
	(do_shared_object_padding) : New function for padding shared
	objects to their text section alignment in archives.
	(bfd_xcoff_ar_achive_set_magic) : Stub.
	(xcoff_write_armap_big) : Use do_copy and do_pad.
	(xcoff_write_archive_contents_big) : Use do_shared_object_padding,
	do_copy and do_pad.
	* coff64-rs6000.c (xcoff64_write_ojbect_contents) : Use
	bfd_xcoff_magic_number.
	(xcoff64_bad_format_hook) : New function for _bfd_bad_format_hook
	fop.
	(xcoff_backend_data_r) : Use xcoff64_bad_format_hook.
	(bfd_xcoff_aix5_backend_data) : New Aix 5 backend data.
	(aix5coff64_vec) : New Aix 5 target aix5coff64-rs6000.
	* rs6000-core.c : Update copyright date.
	* xcofflink.c (bfd_xcoff_size_dynamic_sections): Check for NULL
	csectpp.
	* coffcode.h (coff_new_section_hook) : Use new accessor macros.
	(coff_set_arch_mach_hook) : Add Aix 5 U64_TOCMAGIC magic #.
	(coff_set_flags) : Use bfd_xcoff_magic_number.
	* libxcoff.h (bfd_xcoff_is_xcoff64): Add U64_TOCMAGIC.
	* configure.in : Add powerpc-*-aix5 and rs6000-*-aix5 support.
	* Makefile.am : Same.
	* config.bfd : Same.
	* targets.c : Same.
	* configure : Regnerate.
	* Makefile.in : Same.
	* bfd-in2.h : Same.

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

	* po/fr.po: Updated version.

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

	* libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success.
	* libbfd.h: Regenerate.
	* archive.c (coff_write_armap): Pass on failures from
	bfd_write_bigendian_4byte_int.

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

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the BFD
	error to bfd_error_nonrepresentable_section for reinit_array
	section in DSO.

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

	* coffcode.h (coff_slurp_symbol_table): When adding BSF_WEAK flag,
	OR it in rather than replacing previously selected flags.

	* elfxx-target.h (TARGET_BIG_SYM): Set ar_max_namelen to 15.
	(TARGET_LITTLE_SYM): Set ar_max_namelen to 15.

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

	* cpu-mips.c (mips_compatible): New.  Don't check bits_per_word.
	(N): Use the above.
	* elflink.h (elf_bfd_final_link): Revert last change.  Instead,
	ensure reloc size matches before calling elf_link_input_bfd.
	Add an assert to check reloc size when counting output relocs.

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

	* mmo.c (mmo_get_loc): Return NULL rather than false.

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

	* po/fr.po: Updated version.

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

	* archures.c (bfd_default_compatible): Test bits_per_word.
	* cpu-i386.c (i386_compatible): Remove.  Replace occurrences with
	bfd_default_compatible.
	* cpu-i370.c (i370_compatible): Likewise.
	* cpu-sparc.c (sparc_compatible): Likewise.
	* cpu-h8300.c (compatible): Test in->arch == out->arch.

	* elflink.h: Formatting fixes.
	(elf_link_output_extsym): Merge undefined and undef weak cases.

	* elflink.h (elf_bfd_final_link): Only call elf_link_input_bfd
	when word size of input matches output word size.

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

	* cpu-i386.c (i386_compatible): New.  Use it instead of
	bfd_default_compatible.

2002-03-07  H.J. Lu  (hjl@gnu.org)

	* coff-sh.c (shcoff_reloc_map): Use bfd_reloc_code_real_type
	as the type for bfd_reloc_val.

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

	* elf-hppa.h (elf_hppa_is_dynamic_loader_symbol): New function.
	(elf_hppa_relocate_section): Ignore undefined dynamic loader symbols.
	(elf_hppa_final_link_relocate): Correct relocations for indirect
	references to local data through the DLT.  Fix .opd creation for
	local symbols using R_PARISC_LTOFF_FPTR32 and R_PARISC_FPTR64
	relocations.  Use e_lsel selector for R_PARISC_DLTIND21L,
	R_PARISC_LTOFF_FPTR21L and R_PARISC_LTOFF_TP21L as per
	"Processor-Specific ELF for PA_RISC, Version 1.43" document.
	Similarly, use e_rsel for DLT and LTOFF 'R' relocations.
	* elf32-hppa.c (final_link_relocate): Revise relocation selectors
	as per "Processor-Specific ELF for PA_RISC, Version 1.43" document.

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

	* merge.c (_bfd_merge_sections): Don't segfault if there
	is nothing to merge due to GC.

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

	* elf32-hppa.c (clobber_millicode_symbols): Remove hack to keep
	symbols that have been forced local.

	* elflink.h (elf_bfd_final_link): Call elf_link_output_extsym
	to output forced local syms for non-shared link.
	(elf_link_output_extsym): Tweak condition for calling backend
	adjust_dynamic_symbol so that previous behaviour is kept.
	Whitespace changes throughout file.

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

	* elf.c (bfd_section_from_shdr): Handle special sections,
	.init_array, .fini_array and .preinit_array.
	(elf_fake_sections): Likewise.

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Create the
	DT entry only if the section is in output for .init_array,
	.fini_array and .preinit_array. Complain about .preinit_array
	section in DSO.
	(elf_bfd_final_link): Warn zero size for .init_array,
	.fini_array and .preinit_array sections.

	* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Remove
	SHT_INIT_ARRAY, SHT_FINI_ARRAY and SHT_PREINIT_ARRAY.
	(elfNN_ia64_fake_sections): Remove .init_array, .fini_array and
	.preinit_array.

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

	* configure.in (WIN32LIBADD): Don't eval PICFLAG assignment.
	* configure: Regenerate.

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

	* coff64-rs6000.c (xcoff64_howto_table): Replace howto types with
	symbolic equiv.
	* coff-rs6000.c (xcoff_howto_table): Same.

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

	* elflink.h (size_dynamic_sections): If section named
	".preinit_array" exists, create DT_PREINIT_ARRAY and
	DT_PREINIT_ARRAYSZ entries in dynamic table.  Analogously for
	".init_array" and ".fini_array".
	(elf_bfd_final_link): Handle DT_PREINIT_ARRAYSZ, DT_INIT_ARRAYSZ,
	DT_FINI_ARRAYSZ, DT_PREINIT_ARRAY, DT_INIT_ARRAY, and
	DT_FINI_ARRAY.

2002-02-26  Andrew Macleod  <amacleod@cygnus.com>

	* elflink.h (elf_bfd_final_link): Don't crash on SHN_UNDEF local
	dynsyms.

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

	* elf64-hppa.h: Update copyright date.

	* elf64-ppc.c (ppc64_elf_check_relocs): Warning fix.
	(ppc64_elf_relocate_section): Don't generate power4 style branch
	hints for *_BRTAKEN and *_BRNTAKEN relocs.

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

	* elf64-sh64.c (sh_elf64_relocate_section): Fix a typo from my
	last patch.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

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

	* elf64-x86-64.c: Major rework that introduces all recent changes
	to the x86-64 backend.  Get a closer match to elf32-i386.
	(struct elf64_x86_64_dyn_relocs): Rename from
	elf64_x86_64_pcrel_relocs_copied, add additional fields.  Change
	all users.
	(struct elf64_x86_64_link_hash_table): Add short cuts to some
	sections.
	(link_hash_newfunc): Rename from elf64_x86_64_link_hash_newfunc,
	remove casts, initialize new hash members.
	(create_got_section): New.
	(elf64_x86_64_create_dynamic_sections): New.
	(elf64_x86_64_copy_indirect_symbol): New.
	(elf64_x86_64_check_relocs): Don't allocate space for dynamic
	relocs, .got or .relgot here but do it in allocate_dynrelocs.
	Reference count possible .plt and .got entries.  Don't test input
	section SEC_READONLY here to try to avoid copy relocs, and keep
	dyn_relocs regardless of ELF_LINK_NON_GOT_REF.  Don't set
	DF_TEXTREL here.  Delay setting of variables until needed.  Cache
	pointer to "sreloc" section in elf_section_data. Tweak condition
	under which .got created.  Report files with bad relocation
	section names.
	(elf64_x86_64_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
	Reference count possible .plt entries.  Don't deallocate .got and
	.relgot space here.
	(elf64_x86_64_adjust_dynamic_symbol): Handle nocopyreloc.  Don't
	do copy reloc processing for weakdefs.  Remove redundant casts and
	aborts.  Delay setting of vars until needed.  Move creation of
	dynamic symbols and allocation of .plt and .rela.plt to
	allocate_dynrelocs.  Replace BFD_ASSERT with abort.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(allocate_dynrelocs): New.
	(readonly_dynrelocs): New.
	(elf64_x86_64_size_dynamic_sections): Call readonly_dynrelocs.
	Allocate space for dyn relocs.  Replace BFD_ASSERT with abort.
	Zero out the dynamic allocated content space.
	(elf64_x86_64_discard_copies): Removed.
	(elf64_x86_64_relocate_section): Make use of dynamic section
	short-cuts.  Localise vars, and delay setting.  Better error
	reporting, replace BFD_ASSERT with abort.  Check
	ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined in the
	regular object file and tread the weak definition as the normal
	one.  Don't discard relocs for undefweak or undefined symbols and
	check !DEF_REGULAR as well as DEF_DYNAMIC in test for avoided copy
	relocs.
	(elf64_x86_64_finish_dynamic_symbol): Don't copy relocs for
	symbols that have been forced local.  Use same test to decide if
	we can use a relative reloc for got as relocate_section.  Expand
	SHN_UNDEF comment.  Move expressions out of function calls.
	Replace BFD_ASSERT with abort.
	(bfd_elf64_bfd_final_link): Removed.
	(elf_backend_copy_indirect_symbol): Define.

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

	* coff-rs6000.c (xcoff_howto_table): Add 16 bit R_BA.
	(_bfd_xcoff_reloc_type_lookup): Use it.
	* coff64-rs6000.c (xcoff64_howto_table): Same.
	(xcoff64_reloc_type_lookup): Same.

2002-02-20  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* osf-core.c (osf_core_vec):  OSF/1 (Digital Unix) core files are
	little endian.

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

	* archures.c (bfd_mach_s390_esa): Rename to bfd_mach_s390_31.
	(bfd_mach_s390_esame): Rename to bfd_mach_s390_64.
	* bfd-in2.h: Regenerate.
	* cpu-s390.c (arch_info_struct): Use renamed architecture defines.
	Replace architecture name "s390" with "s390:31-bit" and "s390:esame"
	with "s390:64-bit".
	* elf32-s390.c (elf_howto_table): Add 32 bit pc relative relocations.
	(elf_s390_reloc_type_lookup): Likewise.
	(elf_s390_check_relocs): Likewise.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_object_p): Use renamed architecture define.
	* elf64-s390.c (elf_s390_object_p): Use renamed architecture define.

2002-02-19  Frank Ch. Eigler  <fche@redhat.com>

	* syms.c (stt[]): Sorted.  Added .init/.fini -> "t" mapping.

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

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Enable
	absptr -> pcrel optimization for shared libs.
	Only create minimal .eh_frame_hdr if absptr FDE encoding in shared
	library cannot be converted to pcrel.
	(_bfd_elf_eh_frame_section_offset): Return -2 if making absptr
	relative.
	* elf32-i386.c (elf_i386_relocate_section): If
	_bfd_elf_section_offset returned -2, skip, but make sure the
	relocation is installed.
	* elf32-arm.h (elf32_arm_final_link_relocate): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elf64-sparc.c	(sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Handle
	_bfd_elf_section_offset returning -2 the same way as -1.
	* elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
	* elf32-mips.c (mips_elf_create_dynamic_relocation): Add FIXME
	and BFD_ASSERT.
	* elf64-mips.c (mips_elf64_create_dynamic_relocation): Likewise.

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

	* xcofflink.c (bfd_xcoff_link_gernate_rtinit): Add -brtl support.
	(bfd_xcoff_size_dynamic_sections): Same.
	* bfd-in.h (bfd_xcoff_link_generate_rtinit): Same.
	(bfd_xcoff_size_dynamic_sections): Same.
	* coff-rs6000.c (xcoff_generate_rtinit): Same.
	* coff-rs646000.c (xcoff64_generate_rtinit): Same.
	* libxcoff.h (struct xcoff_backend_data_rec): Same.
	* xcofflink.c (xcoff_build_ldsyms, xcoff_link_add_symbols): Clean.
	* bfd-in2.h: Regenerate.

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

	* elf64-ppc.c (STFD_FR0_0R1, LFD_FR0_0R1, BLR): Define.
	(struct ppc_link_hash_table): Add sfpr.
	(ppc64_elf_link_hash_table_create): Init it.
	(ppc64_elf_create_dynamic_sections): Split creation of .stub and
	.glink out to..
	(create_linkage_sections): ..here.  Make .sfpr too.
	(ppc64_elf_check_relocs): Call create_linkage_sections, and set
	dynobj early.
	(MIN_SAVE_FPR, MAX_SAVE_FPR): Define.
	(ppc64_elf_func_desc_adjust): Look for missing ._savef* and
	._restf* functions, and create as needed.
	(func_desc_adjust): Only force_local for shared libs.

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

	* configure.in: Bump version number post 2.12 branching.
	* configure: Regenerate.

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

	* mmo.c: Correct and improve comments.
	(mmo_write_chunk): Store trailing byte in bfd buffer; don't
	zero-pad.  Use input to fill up non-empty bfd buffer.
	(mmo_flush_chunk): New function.
	(mmo_write_loc_chunk): Add parameter last_vmap, all callers
	changed.  Don't emit location specifier if VMA is same as
	*LAST_VMAP after omitting leading zero contents.  Call
	mmo_flush_chunk before emitting location specifier.
	(mmo_write_loc_chunk_list): Call mmo_flush_chunk when finished
	with mmo_write_loc_chunk calls.
	(mmo_internal_write_section): Call mmo_flush_chunk after
	mmo_write_chunk.
	(mmo_write_symbols_and_terminator): Move :Main to first position
	in symbol array.  Add faked one if it does not exist if there are
	other symbols.  Don't add it if there are no symbols at all.  Move
	out test for value of :Main from symbol loop.  Rename table
	fakemain to maintable and variable mainsym to fakemain.

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

	* elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: A target
	section with no got matches any got.  Simplify error generaion.

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

	Support arbitrary length fill patterns.
	* linker.c (bfd_new_link_order): Zero all fields with bfd_zalloc.
	(_bfd_default_link_order): Remove bfd_fill_link_order code.
	Call default_data_link_order.
	(default_fill_link_order): Delete.
	(default_data_link_order): New function.
	* elf32-mips.c (_bfd_mips_elf_final_link): Replace occurrences
	of bfd_fill_link_order with bfd_data_link_order.
	* elf64-alpha.c (elf64_alpha_final_link): Likewise.
	* elf64-mips.c (mips_elf64_final_link): Likewise.

	* bfd.c (bfd_scan_vma): Clamp overflows to max bfd_vma value.
	Correct value returned in "end" for "0x<non-hex>".

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

	* cpu-arm.c (processors): Replace 'arch' field with 'mach'.
	(scan): Test against 'mach' field in info structure.

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

	* elf.c (elf_fake_sections): Use SHT_NOBITS when SEC_NEVER_LOAD.

2002-02-14  Matt Fredette  <fredette@netbsd.org>

	* elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
	EF_M68000.

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

	* elf.c (_bfd_elf_make_section_from_shdr): Do not insist on
	non-zero physical addresses when adjusting the LMAs of new
	sections.

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

	* elf-hppa.h (elf_hppa_reloc_final_type): New function stripped
	from _bfd_elf_hppa_gen_reloc_type.
	(_bfd_elf_hppa_gen_reloc_type): Remove duplicate prototype.
	* elf32-hppa.h (elf32_hppa_reloc_final_type): Add protptype.
	* elf32-hppa.c: Include elf32-hppa.h before elf-hppa.h.
	* elf64-hppa.h (elf64_hppa_reloc_final_type): Add protptype.

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

	* elf-m10300.c (mn10300_elf_relax_section): Skip section before
	loading its contents if there's nothing to do in it.

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

	* elf64-ppc.c (ppc64_elf_size_stubs): Correct test for crossing
	64k boundary.

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Add dynamic
	DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
	(ppc64_elf_finish_dynamic_sections): Set values for them.

2002-02-11  Michael Snyder  <msnyder@redhat.com>

	* elf-bfd.h (elfcore_write_lwpstatus): Add prototype.
	* elf.c (elfcore_grok_pstatus): Add prototype.
	(elfcore_grok_lwpstatus): Add prototype.
	(elfcore_write_lwpstatus): New function.
	(elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy.

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

	* elf32-sh.c: Added missing prototypes.
	* elf32-sh64.c: Likewise.
	(sh_elf_align_loads): Mark unused args as such.
	* elf64-sh64.c: Added missing prototypes.
	(struct elf_sh64_link_hash_entry): Fix typo.
	(sh_elf64_relocate_section): Fix info argument passed to
	_bfd_elf_section_offset.

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

	* Makefile.am: "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

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

	* coff-rs6000.c (xcoff_generate_rtinit): Silence uninitialized
	variable warnings.
	* elf32-sh.c (sh_elf_relax_section): Silence signed/unsigned
	comparison warning.
	* trad-core.c (trad_unix_core_file_p): Silence pointer/integer
	cast warnings for the common case.

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

	* config.bfd (sh-*-linux*, sh-*-elf* | sh-*-rtemself*): Add sh64
	vectors.
	(sh-*-netbsdelf*): New, to trump sh*-*-netbsdelf* and add sh64
	vectors.

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

	* elf64-alpha.c (elf64_alpha_howto): Add R_ALPHA_BRSGP.
	(elf64_alpha_reloc_map, elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* reloc.c (BFD_RELOC_ALPHA_BRSGP): New.
	* bfd-in2.h, libbfd.h: Rebuild.

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

	* elf64-mmix.c (_bfd_mmix_finalize_linker_allocated_gregs): Check
	that base-plus-offset reloc accounting is consistent.
	(mmix_elf_relax_section): Keep base-plus-offset reloc accounting
	up to date for undefined symbols.

2002-02-08  Eric Christopher  <echristo@redhat.com>

	From Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* elf32-mips.c (_bfd_mips_elf_fake_sections): Don't create .rela
	sections for the O32 ABI.

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

	* elf32-arm.h: Fix formatting of _("...").
	* elf32-d10v.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-mips.c: Likewise.

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

	* coff-or32.c: Fix compile time warning messages.

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

	Contribute sh64-elf.
	2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
	* reloc.c (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
	R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
	R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
	R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
	R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
	R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
	R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
	R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8, R_SH_GOTPLT10BY8,
	R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64, R_SH_RELATIVE64):
	New relocs.
	* libbfd.h, bfd-in2.h: Rebuilt.
	* elf32-sh.c (sh_elf_howto_table): Define new relocs.
	(sh_reloc_map): Map them.
	(PLT_ENTRY_SIZE, elf_sh_plt0_entry_be, elf_sh_plt0_entry_le,
	elf_sh_plt_entry_be, elf_sh_plt_entry_le, elf_sh_pic_plt_entry_be,
	elf_sh_pic_plt_entry_le, elf_sh_plt0_entry, elf_sh_plt_entry,
	elf_sh_pic_plt_entry, elf_sh_sizeof_plt, elf_sh_plt_plt0_offset,
	elf_sh_plt0_gotplt_offset, elf_sh_plt_temp_offset,
	elf_sh_plt_symbol_offset, elf_sh_plt_reloc_offset,
	movi_shori_putval) [INCLUDE_SHMEDIA]: New.
	(elf_sh_link_hash_entry) [INCLUDE_SHMEDIA]: Add
	datalabel_got_offset.
	(sh_elf_link_hash_newfunc): Initialize it.
	(sh_elf_relocate_section): Augment the scope of
	seen_stt_datalabel.  Introduce GOTPLT support.	Extend GOTPC, PLT,
	GOT and GOTOFF handling to new SHmedia relocation types.  Support
	GOT_BIAS.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_finish_dynamic_symbol) [TARGET_SHMEDIA]: Set up values in
	PLT entries using movi_shori_putval.  Support GOT_BIAS.
	(sh_elf_finish_dynamic_sections): Likewise.
	* elf32-sh64.c (shmedia_prepare_reloc): Do not add addend to
	relocation, it's now done by the caller.
	(GOT_BIAS): New.
	* elf64-sh64.c (GOT_BIAS, PLT_ENTRY_SIZE, elf_sh64_sizeof_plt,
	elf_sh64_plt_plt0_offset, elf_sh64_plt0_gotplt_offset,
	elf_sh64_plt_temp_offset, elf_sh64_plt_symbol_offset,
	elf_sh64_plt_reloc_offset, ELF_DYNAMIC_INTERPRETER,
	elf_sh64_pcrel_relocs_copied, elf_sh64_link_hash_entry,
	elf_sh64_link_hash_table, sh64_elf64_link_hash_traverse,
	sh64_elf64_hash_table): New.
	(sh_elf64_howto_table): Introduce new relocs.
	(sh_elf64_info_to_howto): Accept new PIC relocs.
	(sh_elf64_relocate_section): Augment the scope of
	seen_stt_datalabel.  Support new PIC relocs.
	(sh_elf64_check_relocs): Support new PIC relocs.
	(elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le,
	elf_sh64_plt_entry_be, elf_sh64_plt_entry_le,
	elf_sh64_pic_plt_entry_be, elf_sh64_pic_plt_entry_le,
	elf_sh64_plt0_entry, elf_sh64_plt_entry, elf_sh64_pic_plt_entry,
	sh64_elf64_link_hash_newfunc, sh64_elf64_link_hash_table_create,
	movi_shori_putval, movi_3shori_putval,
	sh64_elf64_create_dynamic_sections,
	sh64_elf64_adjust_dynamic_symbol, sh64_elf64_discard_copies,
	sh64_elf64_size_dynamic_sections,
	sh64_elf64_finish_dynamic_symbol,
	sh64_elf64_finish_dynamic_sections): New.
	(elf_backend_create_dynamic-sections,
	bfd_elf64_bfd_link_hash_table_create,
	elf_backend_adjust_dynamic_symbol,
	elf_backend_size_dynamic_sections,
	elf_backend_finish_dynamic_symbol,
	elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
	elf_backend_plt_readonly, elf_backend_want_plt_sym,
	elf_backend_got_header_size, elf_backend_plt_header_size):
	Define.
	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-sh.c: Renumbered and renamed some SH5 relocations to
	match official numbers and names; moved unmaching ones to the
	range 0xf2-0xff.
	* elf32-sh64.c, elf64-sh64.c: Likewise.
	2001-03-12  DJ Delorie	<dj@redhat.com>
	* elf32-sh.c (sh_elf_relax_section): Don't relax SHmedia
	sections.
	2001-03-12  DJ Delorie	<dj@redhat.com>
	* elf32-sh64.c (shmedia_prepare_reloc): Validate relocs that must
	be aligned.
	* elf64-sh64.c (sh_elf64_relocate_section): Ditto.
	2001-01-14  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (bfd_elf32_bfd_copy_private_section_data): Define.
	(sh64_elf_fake_sections): Set type to SHT_SH5_CR_SORTED for a
	.cranges section with SEC_SORT_ENTRIES set.
	(sh64_backend_section_from_shdr): Set SEC_SORT_ENTRIES on an
	incoming sorted .cranges section.
	(sh64_bfd_elf_copy_private_section_data): New.
	(sh64_elf_final_write_processing): Only sort .cranges and modify
	start address if called by linker.
	2001-01-08  Ben Elliston  <bje@redhat.com>
	* elf32-sh64.c (sh64_elf_final_write_processing): Activate
	Hans-Peter Nilsson's set bit 0 patch from	2001-01-06.
	* elf64-sh64.c (sh64_elf64_final_write_processing): Ditto.
	2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh_elf64_howto_table): No open brace at start of
	line.  Add comments before all entries.
	<R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct and clarify describing
	comment.
	(sh_elf64_reloc): Correct head comment.
	(sh_elf64_relocate_section): Correct spacing.
	<relocating for a local symbol>: Do not honour STO_SH5_ISA32;
	instead call reloc_dangerous callback.
	<case R_SH_SHMEDIA_CODE>: New case.
	(sh_elf64_gc_mark_hook): Correct spacing.
	(sh_elf64_check_relocs): Ditto.
	* elf32-sh64.c (shmedia_prepare_reloc) <case R_SH_SHMEDIA_CODE>:
	New case.
	* elf32-sh.c: Correct #endif comments for #ifndef-wrapped
	functions.
	(sh_elf_howto_table) <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct,
	clarify describing comment.  Add comments before all entries.
	(sh_elf_relocate_section) <relocating for a local symbol>: Do not
	honour STO_SH5_ISA32; instead call reloc_dangerous callback.
	2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
	Sort .cranges section in final link.  Prepare to set bit 0 on
	entry address.
	* elf32-sh64.c (struct sh64_find_section_vma_data): New.
	(sh64_elf_link_output_symbol_hook): Fix typo in prototype.
	(sh64_elf_set_mach_from_flags): Set SEC_DEBUGGING on incoming
	.cranges section.
	(sh64_backend_section_from_shdr): New, to recognize
	SHT_SH5_CR_SORTED on incoming .cranges section.
	(elf_backend_section_from_shdr): Define.
	(sh64_elf_final_write_processing): Sort outgoing .cranges
	section.  (New, temporarily disabled:) Set bit 0 on entry address
	according to ISA type.
	(sh64_find_section_for_address): New.
	(crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb,
	crange_bsearch_cmpl): Move here from opcodes/sh64-dis.c.
	(sh64_address_in_cranges): Move here from opcodes/sh64-dis.c.  Use
	bfd_malloc, not xmalloc.
	(sh64_get_contents_type): Move here from opcodes/sh64-dis.c.  Make
	global.
	* elf32-sh64.c (sh64_elf64_final_write_processing): New, (but
	temporarily disabled) setting bit 0 on entry address.
	(elf_backend_final_write_processing): Define.
	2001-01-05  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh.c (sh_elf_howto_table) <R_SH_PT_16>: Adjust fields to
	be a proper relocation for PTA and PTB rather than a marker.
	<R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
	R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
	R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
	R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL>:
	Zero src_mask.
	* elf64-sh64.c: Ditto.
	(sh_elf64_relocate_section) <case R_SH_PT_16>: New case.
	* elf32-sh64.c: Include opcodes/sh64-opc.h
	(shmedia_prepare_reloc): Take a bfd_link_info pointer as first
	argument.  Drop const qualifiers from "bfd *" and "bfd_byte *"
	parameters.  No unused parameters.  Caller changed.
	<case R_SH_PT_16>: New case.
	* Makefile.am (elf32-sh64.lo): Add dependency on sh64-opc.h.
	* Makefile.in: Regenerate.
	2000-12-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh64_elf64_fake_sections): Set SHF_SH5_ISA32 for
	all code sections.
	(sh_elf64_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
	(sh64_elf_merge_private_data): Ditto.
	* elf32-sh64.c (sh64_elf_fake_sections): Use sh64_elf_section_data
	to access stored section flags.
	(sh64_elf_final_write_processing): Return immediately unless
	called by linker.  Use sh64_elf_section_data (cranges) to get size
	of linker-generated cranges entries.
	(sh64_elf_copy_private_data): Add missing "return true".
	(sh64_elf_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
	(sh_elf64_merge_private_data): Ditto.
	2000-12-19  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh64_elf64_fake_sections): New, copy of
	elf64-sh64.c:sh64_elf_fake_sections.
	(elf_backend_fake_sections): Define as sh64_elf64_fake_sections.
	2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (sh64_elf_copy_private_data_internal): Delete.
	(sh64_elf_final_write_processing): New.
	(elf_backend_final_write_processing): Define.
	(sh64_elf_fake_sections): Get header flags from tdata field.
	(sh64_elf_copy_private_data): Do not call
	sh64_elf_copy_private_data_internal, just copy e_flags field.
	(sh64_elf_merge_private_data): Do not call
	sh64_elf_copy_private_data_internal.
	2000-12-12  Hans-Peter Nilsson	<hpn@cygnus.com>
	Remove EF_SH64_ABI64, let ELF size make difference.
	Remove SH64-specific BFD section flag.
	* elf32-sh64.c (sh64_elf_fake_sections): Recognize section as
	containing SHmedia through elf_section_data (asect)->tdata
	non-zero, not using a BFD section flag.
	(sh64_elf_set_mach_from_flags): Don't recognize EF_SH64_ABI64.
	(sh64_elf_merge_private_data): Similar.
	(elf_backend_section_flags): Don't define.
	(sh64_elf_backend_section_flags): Delete.
	* elf64-sh64.c (sh_elf64_set_mach_from_flags): Recognize EF_SH64,
	not EF_SH64_ABI64.
	(sh_elf64_merge_private_data): Similar.
	* section.c (Section flags definitions): Don't define
	SEC_SH_ISA_SHMEDIA.
	(bfd-in2.h): Regenerate.
	2000-12-09  Hans-Peter Nilsson	<hpn@cygnus.com>
	Make DataLabel references work with partial linking.
	* elf32-sh64.c: Fix formatting.
	(sh64_elf_link_output_symbol_hook): New.
	(elf_backend_link_output_symbol_hook): Define to
	sh64_elf_link_output_symbol_hook.
	(sh64_elf_add_symbol_hook): Make DataLabel symbol just global
	undefined if partial linking.  Adjust sanity check.
	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): New.
	(elf_backend_link_output_symbol_hook): Define to
	sh64_elf64_link_output_symbol_hook.
	(sh64_elf64_add_symbol_hook): Make DataLabel symbol just global
	undefined if partial linking.  Adjust sanity check.
	2000-12-07  Hans-Peter Nilsson	<hpn@cygnus.com>
	Implement semantics for inter-file DataLabel references.
	* elf64-sh64.c (DATALABEL_SUFFIX): Define.
	(sh64_elf64_add_symbol_hook): New.
	(sh_elf64_relocate_section): If passing an indirect symbol with
	st_type STT_DATALABEL on the way to a symbol with st_other
	STO_SH5_ISA32, do not bitor 1 to the relocation.
	(elf_backend_add_symbol_hook): Define to
	sh64_elf64_add_symbol_hook.
	* elf64-sh32.c: Tweak comments.
	(DATALABEL_SUFFIX): Define.
	(sh64_elf_add_symbol_hook): New.
	(elf_backend_add_symbol_hook): Define to sh64_elf_add_symbol_hook.
	* elf32-sh.c (sh_elf_relocate_section): If passing an indirect
	symbol with st_type STT_DATALABEL on the way to a symbol with
	st_other STO_SH5_ISA32, do not bitor 1 to the relocation.
	2000-12-05  Hans-Peter Nilsson	<hpn@cygnus.com>
	Pass through STT_DATALABEL.
	* elf32-sh64.c (sh64_elf_get_symbol_type): New.
	(elf_backend_get_symbol_type): Define.
	* elf64-sh64.c (sh64_elf64_get_symbol_type): New.
	(elf_backend_get_symbol_type): Define.
	2000-11-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c: Tweak comments.
	(sh64_elf_copy_private_data_internal): Add prototype.
	(bfd_elf32_bfd_set_private_flags): Define.
	(sh64_elf_copy_private_data_internal): Compare machine name, not
	textual BFD target name, to check whether to copy section flag
	SHF_SH5_ISA32.
	(sh64_elf_merge_private_data): Validize bfd_get_arch_size.
	Tweak section-contents-type-mismatch message.
	(shmedia_prepare_reloc): Add ATTRIBUTE_UNUSED markers.
	Validize reloc-types.
	* elf64-sh64.c: New file.
	* targets.c (bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec): Declare.
	* Makefile.am (BFD64_BACKENDS): Add elf64-sh64.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-sh64.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* config.bfd (sh64-*-elf*): Add bfd_elf64_sh64_vec and
	bfd_elf64_sh64l_vec.
	* configure.in: Handle bfd_elf64_sh64_vec and
	bfd_elf64_sh64l_vec.
	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	2000-11-29  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (sh64_elf_set_mach_from_flags): Do not recognize
	anything else but EF_SH64 and EF_SH64_ABI64.
	(sh64_elf_merge_private_data): Emit error for anything else but
	EF_SH64 and EF_SH64_ABI64.
	* config.bfd: Remove bfd_elf32_shblin_vec and bfd_elf32_shlin_vec
	from targ_selvecs.
	* configure.in: Add cofflink.lo to bfd_elf32_sh64_vec and
	bfd_elf32_sh64l_vec as a temporary measure.
	* configure: Regenerate.
	2000-11-27  Hans-Peter Nilsson	<hpn@cygnus.com>
	* cpu-sh.c (arch_info_struct): Include sh5 item
	unconditionalized.
	* config.bfd (sh64-*-elf*): Do not set targ_cflags.
	Add targ_selvecs bfd_elf32_sh_vec, bfd_elf32_shl_vec,
	bfd_elf32_shblin_vec and bfd_elf32_shlin_vec.
	* elf32-sh64.c: Tweak comments.
	(sh64_elf_set_mach_from_flags): Recognize all machine flags that
	are proper subsets of SH64 as bfd_mach_sh5.  Add EF_SH64_ABI64.
	(sh64_elf_copy_private_data_internal): Wrap long line.
	(sh64_elf_merge_private_data): Rewrite to allow objects from
	SH64 subsets to be linked together.
	(INCLUDE_SHMEDIA): Define.
	* elf32-sh.c (sh_elf_relocate_section) <local symbol>:
	Parenthesize plus-expression inside or-expression.
	<global symbol>: Ditto.
	(sh_elf_set_mach_from_flags): Remove code refusing
	deleted EF_SH64_32BIT_ABI flag.
	2000-11-26  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh.c (sh_elf_howto_table) <R_SH_IMM_LOW16_PCREL,
	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16_PCREL,
	R_SH_IMM_HI16_PCREL, R_SH_64_PCREL>: Set pcrel_offset to true.
	(sh_elf_relocate_section) <local symbol>: Or 1 in
	calculation of relocation if sym->st_other & STO_SH5_ISA32.
	<global symbol>: Ditto if h->other & STO_SH5_ISA32.
	* elf32-sh64.c (shmedia_prepare_reloc): Add rel->r_addend to
	relocation.
	2000-11-24  Hans-Peter Nilsson	<hpn@cygnus.com>
	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* archures.c: Add bfd_mach_sh5.
	* config.bfd: Map targ_cpu sh* to bfd_sh_arch.
	Handle sh64-*-elf*.  Set targ_cflags to -DINCLUDE_SHMEDIA.
	* configure.in: Handle bfd_elf32_sh64_vec and bfd_elf32_sh64l_vec.
	* configure: Regenerate.
	* reloc.c (BFD_RELOC_SH_SHMEDIA_CODE, BFD_RELOC_SH_IMMU5,
	BFD_RELOC_SH_IMMS6, BFD_RELOC_SH_IMMS6BY32, BFD_RELOC_SH_IMMU6,
	BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2,
	BFD_RELOC_SH_IMMS10BY4, BFD_RELOC_SH_IMMS10BY8,
	BFD_RELOC_SH_IMMS16, BFD_RELOC_SH_IMMU16, BFD_RELOC_SH_IMM_LOW16,
	BFD_RELOC_SH_IMM_LOW16_PCREL, BFD_RELOC_SH_IMM_MEDLOW16,
	BFD_RELOC_SH_IMM_MEDLOW16_PCREL, BFD_RELOC_SH_IMM_MEDHI16,
	BFD_RELOC_SH_IMM_MEDHI16_PCREL, BFD_RELOC_SH_IMM_HI16,
	BFD_RELOC_SH_IMM_HI16_PCREL, BFD_RELOC_SH_PT_16): New relocations.
	* cpu-sh.c [INCLUDE_SHMEDIA] (arch_info_struct): Define and link
	in item for SH5.
	* elf32-sh.c [INCLUDE_SHMEDIA] (sh_elf_howto_table): Add howto items
	for SHmedia relocs.
	[INCLUDE_SHMEDIA] (sh_rel): Add mappings for SHmedia relocs.
	[INCLUDE_SHMEDIA] (sh_elf_relocate_section) [default]: Call
	shmedia_prepare_reloc, goto final_link_relocate if it returns
	non-zero, else fail as before.
	(sh_elf_set_mach_from_flags): Provide function only if not defined
	as macro.  Do not recognize objects with EF_SH64_32BIT_ABI set.
	(sh_elf_set_private_flags): Provide function only if not defined
	as a macro.
	(sh_elf_copy_private_data): Similar.
	(sh_elf_merge_private_data): Similar.
	* section.c (SEC_SH_ISA_SHMEDIA): New.
	* targets.c (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec): Declare.
	* elf32-sh64.c: New file.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* po/POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

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

	* bfd-in.h: Update <stdbool.h> check to only see if <stdbool.h> has
	been included, not drag it in.
	* bfd-in2.h: Regenerate.

2002-02-06  H.J. Lu  (hjl@gnu.org)

	* elf32-mips.c (_bfd_mips_elf_merge_private_bfd_data): Update
	the mach and ISA fields if necessary.

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

	* coffcode.h (coff_set_arch_mach_hook): Select the highest known
	ARM architecture when an F_ARM_5 flag is detected, since we cannot
	be sure exactly which architecture this represents.

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

	* po/tr.po: Updated translation.

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

	From Jimi X <jimix@watson.ibm.com>
	* archures (bfd_mach_ppc64): Define.
	(bfd_powerpc_arch): Rename to bfd_powerpc_archs.
	(bfd_powerpc_arch): Define.
	* bfd-in2.h: Regenerate.
	* cpu-powerpc.c (arch_info_struct): Rename to bfd_powerpc_archs.
	(bfd_powerpc_arch): Move to tail of bfd_powerpc_archs.
	(bfd_powerpc_archs): Add default powerpc64 arch.

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

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Check for relocs
	against section syms in readonly sections.  Don't do the global
	sym check if we find one.
	* elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
	* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
	* elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
	* elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_grok_prstatus): Add missing prototype.

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

	* elf64-mmix.c (mmix_dump_bpo_gregs): New function.
	(mmix_elf_check_common_relocs) <case R_MMIX_BASE_PLUS_OFFSET>:
	Call bfd_get_section_by_name only once.  Initialize
	bpodata->n_bpo_relocs_this_section.
	(_bfd_mmix_prepare_linker_allocated_gregs): Remove comment
	referring to DSOs.
	(bpo_reloc_request_sort_fn): Don't use difference of values as
	return-value.

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

	* configure.in: Tweak the FreeBSD 4.x recognition more.  Only treat
	version 4.5 and later the same as 5-CURRENT.
	* configure: Re-generate.

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

	* config.bfd (hppa*-*-netbsd*): New target.

2002-01-31  Philipp Thomas  <pthomas@suse.de>

	* coff-arm.c (coff_arm_merge_private_bfd_data): Move ERROR
	to front of message. Unify messages with elf32-arm.h. Use
	commas where neccessary.
	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Use all upcase
	ERROR in messages. Unify messages with coff-arm.c. Correct
	VFP/FPA error message.
	(elf32_arm_print_private_bfd_data): Don't mark APCS-26 and
	APCS-32 for translation.

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

	Perform on-demand global register allocation from
	R_MMIX_BASE_PLUS_OFFSET relocs.
	* elf64-mmix.c (struct bpo_reloc_section_info, struct
	bpo_reloc_request, struct bpo_greg_section_info): New.
	(mmix_elf_check_common_relocs, mmix_elf_gc_sweep_hook,
	bpo_reloc_request_sort_fn, mmix_elf_relax_section,
	_bfd_mmix_check_all_relocs,
	_bfd_mmix_prepare_linker_allocated_gregs,
	_bfd_mmix_finalize_linker_allocated_gregs): New functions.
	(elf_mmix_howto_table): Correct src_mask for most relocs.
	(mmix_elf_perform_relocation) <case R_MMIX_BASE_PLUS_OFFSET>: New
	case.
	(mmix_final_link_relocate) <case R_MMIX_BASE_PLUS_OFFSET>: New
	case.  Fix typo in comment.  New label do_mmix_reloc.
	(mmix_elf_check_relocs): Abuse bfd_link_info member base_file to
	store first object file with a base-plus-offset reloc.  Call
	mmix_elf_check_common_relocs for the part common with mmo.
	(mmix_elf_final_link): Write out linker-allocated register
	contents section.
	(elf_backend_gc_sweep_hook): Define.
	(bfd_elf64_bfd_relax_section): Define.

	* mmo.c: Don't include <ctype.h>
	(mmo_init): Correct init-once logic.

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

	* config.bfd: Conditionally support <aiaff> for pre AIX 4.3.

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

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

2002-01-31  David O'Brien  <obrien@FreeBSD>

	* configure.in: Recognize the differences in core files from FreeBSD
	4.{0,1} and later versions of 4.x.  This treats 4.2+ the same as
	5-CURRENT.
	* configure: Regenerate.

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

	* coff-or32.c: New file.
	* cpu-or32.c: New file.
	* elf32-or32.c: New file.
	* archures.c: Add support for or32.
	* targets.c: Add support for or32.
	* bfd-in2.h: Regenerate.
	* coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
	coff_write_object_contents): Add support for or32.
	* config.bfd: Add target.
	* configure.in: Add support for or32.
	* configure: Regenerate.
	* Makefile.am: Add support for or32.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Add or32 files.
	* po/bfd.pot: Regenerate.

2002-01-31  Nick Clifton  <nickc@cambridge.redhat.com>
	    Don Lindsay  <lindsayd@cisco.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Replace 'return
	false' with a return of a bfd_reloc_ error code.

2002-01-31  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
	unexport unreferenced symbols when --export-dynamic.  Call
	_bfd_elf_strtab_delref when unexporting.

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

	* bfd-in.h: Include <stdbool.h> if it is available.
	* bfd-in2.h: Regenerated.

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

	* elf64-ppc.c (func_desc_adjust): STV_PROTECTED functions should
	not go via the plt.

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

	* archures.c: Tidy up formatting of embedded comments.
	* bfd.c: Tidy up formatting of embedded comments.
	* bfd-in.h: Fix formatting of comments.
	* reloc.c: Tidy up formatting of ordinary & embedded comments.
	* section.c: Tidy up formatting of embedded comments.
	* syms.c: Tidy up formatting of embedded comments.
	* targets.c: Tidy up formatting of embedded comments.

	* bfd-in2.h: Regenerate.

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

	* vms-tir.c (cmd_name): New function.
	(tir_cmd_name): New function.
	(etir_sta, etir_sto, etir_opr, etir_stc): Use cmd_name().
	(tir_opr, tir_ctl, tir_cmd): use tir_cmd_name().
	Fix formatting.

	* peXXigen.c (pe_print_idata): Rearrange message to aid in
	translation.
	(pe_print_pdata):  Rearrange message to aid in translation.

	* libbfd.c (warn_deprecated): Rearrange error message to aid in
	translation.

	* ihex.c (ihex_write_object_contents): Fix spelling typo.

	* ieee.c (ieee_slurp_external_symbols): Remove spurious space.

	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Rearrange error
	message to aid in translation.

	* elf64-mmix.c (mmix_final_link_relocate): Rearrange error message
	to aid in translation.

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Fix typo.

2002-01-30  Philipp Thomas  <pthomas@suse.de>

	* coff-arm.c, elf32-elf.h: Unify messages.

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

	* po/sv.po: Updated translation.

2002-01-30  Philipp Thomas  <pthomas@suse.de>

	* dwarf2.c (read_abbrev): Use full section name in error message.
	(decode_line_info): Likewise.

	* elf.c (_bfd_elf_symbol_from_bfd_symbol): Don't translate debugging
	message.

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

	* elf64-ppc.c (func_desc_adjust): Only provide missing function
	descriptor symbols for undefined function code syms.  Clear
	ELF_LINK_NON_ELF so that they can stay weak.

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

	* bfd-in.h (bfd_mips_elf32_create_embedded_relocs): New prototype.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): New function
	to handle 32-bit ELF embedded reloc (ld --embedded-relocs)
	generation.
	* bfd-in2.h: Regenerate.

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

	* elf32-mips.c: Add additional comments about HI16 relocation
	processing.
	(_bfd_mips_elf_hi16_reloc): Don't subtract address here for
	pc-relative relocations.  (Reverts change made on 2001-10-31.)
	(_bfd_mips_elf_lo16_reloc): Subtract address of LO16 part here
	for pc-relative relocations.
	(mips_elf_calculate_relocation): Add a comment about a kludge
	in the R_MIPS_GNU_REL_HI16 handling.
	(_bfd_mips_elf_relocate_section): Implement that kludge;
	adjust pc-relative HI16 relocation for difference in HI16 and
	LO16 addresses, since it can't easily be done in
	mips_elf_calculate_relocation.

2002-01-29  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
	relocations with PC32 relocations for undefined or weak symbols.
	* elf32-s390 (elf_i386_adjust_dynamic_symbol): Likewise.
	* elf64-s390x (elf_i386_adjust_dynamic_symbol): Likewise.

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

	* elfcore.h (elf_core_file_p): Improve comment for last change.

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

	* configure: Regenerated.

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

	* elfcore.h (elf_core_file_p): Set the machine architecture
	before processing the program headers.

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

	* configure.in <64-bit configuration>: If using gcc, check and
	emit error for egcs-1.1.2.
	* configure: Regenerate.

2002-01-26  Egor Duda  <deo@logos-m.ru>

	* elf.c (elfcore_grok_win32pstatus): Copy only as much information
	as possible to avoid stack corruption.

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

	* elf64-alpha.c (elf64_alpha_check_relocs): Don't set reltext
	for non-allocated sections.

2002-01-25  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (elfcore_write_prstatus): Make sure we pass the address of
	prstat.pr_reg even if it is a struct.

2002-01-25  Steve Ellcey <sje@cup.hp.com>

	* bfd/elfxx-ia64.c: Reset AIX vector function overrides for HP-UX.

2002-01-25  Philipp Thomas  <pthomas@suse.de>

	* coffgen.c (coff_print_symbol): Don't mark info message
	for translation.

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

	* po/fr.po: Updated translation.
	* po/es.po: Updated translation.

2002-01-25  Philipp Thomas  <pthomas@suse.de>

	* coff-alpha.c (alpha_relocate_section): Unify warning message
	for GP relative relocations without GP defined.
	* coff-mips.c (mips_relocate_section): Likewise.

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

	* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Avoid
	unsigned overflow when new_offset < old_offset.

2002-01-24  Philipp Thomas  <pthomas@suse.de>

	* bfd.c (_bfd_abort): Fix typo.

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

	* elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Don't suppress
	plt entries for undefweak symbols.

2002-01-23  Steve Ellcey <sje@cup.hp.com>

	* bfd/targets.c (bfd_elf32_ia64_hpux_big_vec): Add to
	DEFAULT_VECTOR.
	(bfd_elf64_ia64_hpux_big_vec): Ditto.
	(bfd_elf32_h8300_vec): Ditto.

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

	* elf64-ppc.c: Remove stale part of ABI comment.
	(NO_OPD_RELOCS): Define.
	(ppc64_elf_check_relocs): Use it.
	(ppc64_elf_relocate_section): Here too.
	(build_one_stub): Don't point function syms at the stub.  Instead,
	hijack plt.offset.
	(ppc64_elf_relocate_section): Check whether REL24 relocs should
	really go to the stub.  Make all dynamic relocs in opd against
	locals.
	(ppc64_elf_finish_dynamic_symbol): Allow for non-standard use of
	plt.offset.

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

	* elf64-alpha.c (INSN_UNOP): Encode with RB as $sp.

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

	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Correct sign of
	TOC_BASE_OFF adjustment.

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

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

	* configure.host (hppa*64*-*-hpux*, hppa*64*-*-linux*): Add new
	host defines.

2002-01-21  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GOTREL>:
	Check for and emit error if sgot is NULL at this point.

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

	* config.bfd (ia64*-*-netbsd*): New target.

2002-01-21  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>

	* som.c (som_write_space_strings): Comment typo fix.

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

	* elf64-ppc.c (struct ppc_link_hash_entry): Add is_func and
	is_func_descriptor fields.
	(link_hash_newfunc): Init them.
	(ppc64_elf_check_relocs): Only R_PPC24_REL24 syms starting with a
	dot are candidates for plt entries.  When processing .opd relocs,
	set function descriptor strings to point inside function code
	string, and set new ppc_link_hash_entry fields.
	(ppc64_elf_gc_sweep_hook): Don't sweep R_PPC64_REL24 relocs.
	(ppc64_elf_adjust_dynamic_symbol): Remove most code dealing with
	function descriptors.  It's now done in..
	(func_desc_adjust): New.
	(ppc64_elf_func_desc_adjust): New.
	(define elf_backend_always_size_sections): Define.
	(ppc64_elf_hide_symbol): New.
	(define elf_backend_hide_symbol): Define.
	(allocate_dynrelocs): Remove code looking up function descriptors
	as that has been done earlier.
	(ppc64_elf_size_dynamic_sections): Use htab shortcut to elf hash
	table.
	(ppc64_elf_finish_dynamic_symbol): Likewise.  Remove code looking
	up function descriptor.
	(build_one_stub): Look up the function code sym.  Check for
	invalid plt offsets.
	(ppc64_elf_relocate_section): Tweak calls to undefined weak syms.
	Convert R_PPC64_TOC relocs to R_PPC64_RELATIVE in shared libs.

	* elf-bfd.h (elf_backend_data <elf_backend_hide_symbol>): Add
	boolean param.
	(_bfd_elf_link_hash_hide_symbol): Likewise.
	* elflink.h (elf_link_add_object_symbols): Adjust call to
	elf_backend_hide_symbol.
	(elf_fix_symbol_flags): Likewise.
	(elf_link_assign_sym_version): Likewise. Use bfd_malloc rather
	than bfd_alloc.
	* elf.c (_bfd_elf_link_hash_hide_symbol): Add "force_local" param.
	Set ELF_LINK_FORCED_LOCAL and call _bfd_elf_strtab_delref.
	* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
	(clobber_millicode_symbols): Adjust to suit new hide_symbol.
	* elf32-cris.c (elf_cris_hide_symbol): Add "force_local" param
	and adjust to suit.
	* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise, and call
	_bfd_elf_link_hash_hide_symbol rather than duplicating code.
	* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.

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

	* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Test for a
	dynamic function descriptor symbol, not the associated function
	symbol.

2002-01-17  Eric Christopher  <echristo@redhat.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Fix typo.

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

	* po/bfd.pot: Regenerate.
	* po/fr.po: Regenerate.

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

	* elf-bfd.h (elf_backend_data <elf_backend_section_from_bfd_section>):
	Remove "Elf_Internal_Shdr *" param.
	(_bfd_mips_elf_section_from_bfd_section): Ditto.
	* elf32-mips.c (_bfd_mips_elf_section_from_bfd_section): Ditto.
	* elf32-m32r.c (_bfd_m32r_elf_section_from_bfd_section): Ditto.
	* elf32-v850.c (v850_elf_section_from_bfd_section): Ditto.
	* elf64-mmix.c (mmix_elf_section_from_bfd_section): Ditto.
	* elfxx-ia64.c (elfNN_hpux_backend_section_from_bfd_section): Ditto.
	* elf.c (_bfd_elf_section_from_bfd_section): Allow backend
	function to override special sections.  Remove hdr arg from
	backend call, and don't loop.

2002-01-16  Eric Christopher  <echristo@redhat.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Set require_jalxp
	on R_MIPS_26 and target is 16bit. Add R_MIPS16_GPREL to list of
	relocations requiring gp0 and gp.

2002-01-16  Richard Earnshaw  <rearnsha@arm.com>

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Handle
	EF_ARM_VFP_FLOAT.
	(elf32_arm_print_private_bfd_data): Likewise.

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

	* po/tr.po: Import new version.

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

	* elf64-ppc.c (ppc64_elf_howto_raw): Remove stale FIXMEs.
	(ppc64_elf_reloc_type_lookup): Use proper CTOR reloc.
	(ORI_R0_R0_0): Correct.

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

	* elflink.c (_bfd_elf_create_dynamic_sections): Don't set SEC_CODE
	when plt_not_loaded.
	* elf64-ppc.c (ppc64_elf_create_dynamic_sections): No need to
	clear .plt SEC_CODE here.  Create .stub and correct .glink flags.
	(PLT_INITIAL_ENTRY_SIZE): Set to 24.
	(ppc64_elf_glink_code): Delete.
	(PPC64_ELF_GLINK_SIZE): Delete.
	(ADDIS_R12_R2, STD_R2_40R1, LD_R11_0R12, LD_R2_0R12, MTCTR_R11,
	BCTR, ADDIS_R12_R12_1, LD_R2_40R1, NOP, LI_R0_0, B_DOT, LIS_R0_0,
	ORI_R0_R0_0): Define.
	(PLT_CALL_STUB_SIZE, GLINK_CALL_STUB_SIZE): Define.
	(struct ppc_link_hash_table): Add sstub and plt_overflow.
	(ppc64_elf_link_hash_table_create): Init them.
	(ppc64_elf_check_relocs <R_PPC64_REL24>): Refcount .plt entry.
	Don't copy to shared lib.
	(ppc64_elf_check_relocs): Call bfd_set_error on errors.
	(ppc64_elf_gc_sweep_hook <R_PPC64_REL24>): Sweep plt refcount.
	(allocate_dynrelocs <plt>): Don't change function sym here.  Make
	room for .stub and .glink code.
	(ppc64_elf_size_dynamic_sections): Handle .stub.  Make entry for
	DT_PPC64_GLINK.
	(ppc64_elf_final_link): Rename to ppc64_elf_set_toc.  Don't call
	bfd_elf64_bfd_final_link.
	(bfd_elf64_bfd_final_link): Don't define.
	(ppc64_elf_size_stubs): New.
	(build_plt_stub): New.
	(build_one_stub): New.
	(ppc64_elf_build_stubs): New.
	(ppc64_elf_relocate_section <toc relocs>): Remove assert.
	(ppc64_elf_relocate_section): Don't copy R_PPC64_REL24 relocs.
	(ppc64_elf_finish_dynamic_symbol): Don't build stubs here.  Set
	DT_PPC64_GLINK entry.  Tweak DT_PLTGOT, DT_JMPREL, DT_PLTRELSZ in
	case output sections not separate.  Adjust DT_RELASZ to not
	include plt relocs.  Set reserved got entry.  Set got and plt
	entry size.
	(elf_backend_got_header_size): Set to 8.
	* elf64-ppc.h: New file.

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

	* elf32-arm.h (elf32_arm_size_dynamic_sections): When removing
	sections, use bfd_section_list_remove.
	* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
	* elflink.h (elf_link_add_object_symbols): When removing all
	sections, use bfd_section_list_clear.

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

	* po/sv.po: New file: Swedish translation.
	* configure.in (ALL_LINGUAS): Add sv.
	* configure: Regenerate.

2002-01-15  Jakub Jelinek  <jakub@redhat.com>

	* elflink.h (elf_link_input_bfd): Back out 2002-01-07 change.
	* elf.c (merge_sections_remove_hook): New function.
	(_bfd_elf_merge_sections): Pass it as 3rd argument to
	_bfd_merge_sections.
	* libbfd-in.h (_bfd_merge_sections): Add 3rd argument.
	* libbfd.h: Rebuilt.
	* merge.c (_bfd_merge_sections): Add remove_hook argument.
	Call remove_hook if a SEC_EXCLUDE section is encountered.

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

	* elf32-xstormy16.c (xstormy16_reloc_map): Add new field 'table'.
	(xstormy16_reloc_map): Initialise new field with correct howto
	table.
	(xstormy16_reloc_type_lookup): Use 'table' field to locate correct
	howto entry.

2002-01-10  Michael Snyder  <msnyder@redhat.com>

	* elf.c (elfcore_write_prstatus): Use long instead of pid_t;
	(elfcore_write_pstatus): Use long instead of pid_t;
	* elf-bfd.h: Change prototypes to use long instead of pid_t;

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

	* elf.c: Update copyright years.
	(elfcore_grok_netbsd_note): Use NT_NETBSDCORE_PROCINFO
	and NT_NETBSDCORE_FIRSTMACH.  Improve a comment.

2002-01-08  Michael Snyder  <msnyder@redhat.com>

	Add capability to write corefile note sections, for gdb.
	* elf.c (elfcore_write_note): New function.
	(elfcore_write_prpsinfo): New function.
	(elfcore_write_prstatus): New function.
	(elfcore_write_pstatus): New function.
	(elfcore_write_prfpreg): New function.
	(elfcore_write_prxfpreg): New function.
	* elf-bfd.h: Add prototypes for above functions.

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

	* elf.c (elf_fake_sections): Propagate errors from
	elf_backend_fake_section.

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

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh-nbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh-nbsd.c.
	(elf32-sh-nbsd.lo): New rule.
	* Makefile.in: Regenerate.
	* config.bfd (sh*le-*-netbsdelf*): New target.
	(sh*-*-netbsdelf*): New target.
	* configure.in: Include netbsd-core.lo for native sh*-*-netbsd*.
	(bfd_elf32_shnbsd_vec): New vector.
	(bfd_elf32_shlnbsd_vec): New vector.
	* configure: Regenerate.
	* elf32-sh-nbsd.c: New file.
	* targets.c: Update copyright years.
	(_bfd_target_vector): Add bfd_elf32_shlnbsd_vec and
	bfd_elf32_shnbsd_vec.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* coff-rs6000.c (READ20): Use bfd_scan_vma.

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

	* elflink.h (elf_link_input_bfd): Don't ask for the merged offset
	of a symbol in a section that will be deleted.

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  Steve Ellcey  <sje@cup.hp.com>

	* elfxx-ia64.c (is_unwind_section_name): Add target vector as
	argument so we can handle HP-UX specially.
	(elfNN_ia64_hpux_vec): New for use in is_unwind_section_name.
	(elfNN_hpux_backend_section_from_bfd_section): New for support
	of SHN_IA_64_ANSI_COMMON.
	(elfNN_ia64_relax_section): Add support for SHN_IA_64_ANSI_COMMON.
	(is_unwind_section_name): Add special HP-UX support.
	(elfNN_ia64_section_from_shdr): Add support for more sections.
	(elfNN_ia64_fake_sections): Modify is_unwind_section_name call and
	add support for more sections.
	(elfNN_ia64_additional_program_headers): Modify
	is_unwind_section_name call.
	(elfNN_ia64_modify_segment_map): Remove assumption that there is
	only one unwind section in segment.

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

	* syms.c (_bfd_generic_make_empty_symbol): New function.
	* libbfd-in.h (_bfd_nosymbols_make_empty_symbol): Define as
	_bfd_generic_make_empty_symbol.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* hppabsd-core.c (hppabsd_core_make_empty_symbol): Delete function.
	(hppabsd_core_get_symtab_upper_bound): Don't define.
	(hppabsd_core_get_symtab): Likewise.
	(hppabsd_core_print_symbol): Likewise.
	(hppabsd_core_get_symbol_info): Likewise.
	(hppabsd_core_bfd_is_local_label_name): Likewise.
	(hppabsd_core_get_lineno): Likewise.
	(hppabsd_core_find_nearest_line): Likewise.
	(hppabsd_core_bfd_make_debug_symbol): Likewise.
	(hppabsd_core_read_minisymbols): Likewise.
	(hppabsd_core_minisymbol_to_symbol): Likewise.
	(hppabsd_core_vec): Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).
	Formatting fixes.
	* hpux-core.c: Similarly.
	* irix-core.c: Similarly.
	* osf-core.c: Similarly.
	* sco5-core.c: Similarly.
	* binary.c (binary_make_empty_symbol): Remove function, define as
	_bfd_generic_make_empty_symbol.
	* ihex.c (ihex_make_empty_symbol): Likewise.
	* mmo.c (mmo_make_empty_symbol): Likewise.
	* ppcboot.c (ppcboot_make_empty_symbol): Likewise.
	* srec.c (srec_make_empty_symbol): Likewise.
	* versados.c (versados_make_empty_symbol): Likewise.
	* vms.c (_bfd_vms_make_empty_symbol): Remove.
	(vms_make_empty_symbol): Define as _bfd_generic_make_empty_symbol.
	* vms-gsd.c (_bfd_vms_slurp_gsd): Call bfd_make_empty_symbol
	rather than _bfd_vms_make_empty_symbol.
	* vms-misc.c (new_symbol): Likewise.

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

	* section.c (bfd_section_init): Remove unnecessary initialisations.
	(bfd_section_list_clear): New function.
	(bfd_section_list_remove, bfd_section_list_insert): New macros.
	(_bfd_strip_section_from_output): Use them.
	* coffcode.h (coff_set_alignment_hook): Likewise.
	* elf32-mips.c (_bfd_mips_elf_final_link): Likewise.
	* elf64-mips.c (mips_elf64_final_link): Likewise.
	* elf64-mmix.c (mmix_elf_final_link): Likewise.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
	* bfd-in2.h: Regenerate.

	* netbsd-core.c (netbsd_core_file_p): Use bfd_make_section_anyway
	rather than doing our own section handling.  Clean up after errors
	with bfd_release and bfd_section_list_clear.  Handle unexpected
	flags.
	* aoutf1.h (sunos4_core_file_p): Likewise.
	* aix386-core.c (aix386_core_file_p): Likewise.
	* cisco-core.c (cisco_core_file_validate): Likewise.
	* ptrace-core.c (ptrace_unix_core_file_p): Likewise.
	* trad-core.c (trad_unix_core_file_p): Likewise.

	* hppabsd-core.c (hppabsd_core_core_file_p):  Clean up after errors
	with bfd_release and bfd_section_list_clear.
	* hpux-core.c (hpux_core_core_file_p): Likewise.
	* irix-core.c (irix_core_core_file_p): Likewise.
	* lynx-core.c (lynx_core_file_p): Likewise.
	* osf-core.c (osf_core_core_file_p): Likewise.
	* rs6000-core.c (rs6000coff_core_p): Likewise.
	* sco5-core.c (sco5_core_file_p): Likewise.

	* elf32-mips.c (_bfd_mips_elf_lo16_reloc): Simplify, and perform
	sign extension adjustments without conditionals.

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

	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Don't crash if
	CIE at .eh_frame start is removed due to no FDEs referencing it.

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

	* config.bfd (x86_64-*-netbsd*): New target.
	* configure.in (x86_64-*-netbsd*): Set COREFILE
	to netbsd-core.lo.
	* configure: Regenerated.

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

	* xcofflink.c (_bfd_xcoff_bfd_final_link): Update .pad section ordering
	for recent bfd_make_section_anyway change.

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

	* elf32-arm.h (elf32_arm_final_link_relocate): Handle
	R_ARM_THM_PC11 reloc.

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

	* configure.in (LINGUAS): Add ja.
	* configure: Regenerate.
	* po/ja.po: Import from translation project's web site.

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

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Reformat error
	messages to ease translation into other languages.

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