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

	* format.c (bfd_check_format_matches): Only check associated
	vector if the matching_vector has been created.

2003-04-15  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Fix typo in
	2003-04-09's change.

2003-04-15  Brian Ford  <ford@vss.fsi.com>

	* peicode.h (coff_swap_scnhdr_in): If a section holds
	uninitialized data and is from an object file or from an
	executable image that has not initialized the s_size field, or if
	the physical size is padded, use the virtual size (stored in
	s_paddr) instead.

2003-04-15  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_link_add_object_symbols): Properly report
	filename for alignment reduction.

2003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>

	* archures.c: Replace occurrances of 'Hitachi' with 'Renesas'.
	* reloc.c: Likewise.
	* coff-h8300.c: Likewise.
	* coff-h8500.c: Likewise.
	* coff-sh.c: Likewise.
	* cpu-h8300.c: Likewise.
	* cpu-sh.c: Likewise.
	* elf32-h8300.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-sh64-com.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf64-sh64.c: Likewise.
	* bfd-in2.h: Regenerate.

2003-04-14  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_link_add_object_symbols): Maintain maximum
	alignment for common symbols. Warn reducing alignment for
	common symbols. Report old filename when symbol size changes.

2003-04-12  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other
	occurrences of the same test changed in the previous patch.
	Optimize.

2003-04-11  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_get_global_gotsym_index): New.
	(mips_elf_calculate_relocation): Decay GOT_PAGE/GOT_OFST to
	GOT_DISP/addend only if the symbol got a global GOT entry.

2003-04-10  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Decay
	GOT_PAGE/GOT_OFST referencing overridable symbol to
	GOT_DISP/addend.
	(_bfd_mips_elf_check_relocs): Handle GOT_PAGE referencing
	global symbol as GOT_DISP.

2003-04-10  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to the
	next relocation on an undefined symbol.

2003-04-09  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section) <R_ALPHA_GPREL32>:
	Ignore relocations against r_symndx == 0.

2003-04-09  H.J. Lu <hjl@gnu.org>

	* elf64-alpha.c (elf64_alpha_relocate_section): Don't return
	FALSE for undefined symbols.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.

2003-04-09  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Try DWARF3-standard
	and IRIX-specific shift-to-64-bit 4-byte lengths before following
	addr_size.

2003-04-08  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor)
	pointer size from ABI, not arch_bits_per_address.

2003-04-07  Kevin Buettner  <kevinb@redhat.com>

	* elfn32-mips.c (elf32_mips_grok_prstatus): Adjust core file related
	constants for n32 ABI.

2003-04-06  Andrew Cagney  <cagney@redhat.com>

	* simple.c (bfd_simple_get_relocated_section_contents): Disable
	free that leads to GDB vs BFD memory corruption.

2003-04-04  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Also adjust
	symbols that mark the end of the section.
	(m68hc11_elf_relax_section): Use R_M68HC11_PCREL_8 relocs when
	converting to a relative branch so that the offset is computed after
	the relaxation; also relocate a jsr into a bsr if possible but don't
	relax them if they are to a far symbol as we need to call the
	trampoline code.
	(elf_m68hc11_howto_table): Set pcrel_offset to true.

2003-04-04  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* archures.c: Namespace cleanup. Rename bfd_mach_c3x to
	bfd_mach_tic3x and bfd_mach_c4x to bfd_mach_tic4x
	* bfd-in2.h: Regenerate
	* coff-tic4x.c: Namespace cleanup. Replace s/c4x/tic4x/
	* cpu-tic4x.c: Ditto

2003-04-03  Nick Clifton  <nickc@redhat.com>

	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Compute ps and ss
	differently for object files and executables.
	* peicode.h (coff_swap_scnhdr_in): Only set the s_size field
	for object files or for executables who have not already
	initialised the field.
	* libpei.h (bfd_pe_executable_p): New macro.  Return true if
	the PE format bfd is an executable.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Don't use SYMBOL_REFERENCES_LOCAL
	here as it's too early to reliably determine locality.
	(ppc_elf_gc_sweep_hook): Likewise.
	(SYMBOL_REFERENCES_LOCAL): Expand comment.

2003-04-02  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-modules.c: Remove comment indicating that this is a
	generated file.

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

	* elfxx-mips.c (_bfd_mips_elf_hide_symbol): Test for NULL dynobj.

2003-04-01  Bob Wilson  <bob.wilson@acm.org>

        * Makefile.am (ALL_MACHINES): Add cpu-xtensa.lo.
        (ALL_MACHINES_CFILES): Add cpu-xtensa.c.
        (BFD32_BACKENDS): Add elf32-xtensa.lo, xtensa-isa.lo, and
        xtensa-modules.lo.
        (BFD32_BACKENDS_CFILES): Add elf32-xtensa.c, xtensa-isa.c, and
        xtensa-modules.c.
        (cpu-xtensa.lo): New target.
        (elf32-xtensa.lo): Likewise.
        (xtensa-isa.lo): Likewise.
        (xtensa-modules.lo): Likewise.
        * Makefile.in: Regenerate.
        * archures.c (bfd_architecture): Add bfd_{arch,mach}_xtensa.
        (bfd_archures_list): Add bfd_xtensa_arch.
        * config.bfd: Handle xtensa-*-*.
        * configure.in: Handle bfd_elf32_xtensa_{le,be}_vec.
        * configure: Regenerate.
        * reloc.c: Add BFD_RELOC_XTENSA_{RTLD,GLOB_DAT,JMP_SLOT,RELATIVE,
        PLT,OP0,OP1,OP2,ASM_EXPAND,ASM_SIMPLIFY}.
        * targets.c (bfd_elf32_xtensa_be_vec): Declare.
        (bfd_elf32_xtensa_le_vec): Likewise.
        (bfd_target_vector): Add bfd_elf32_xtensa_{be,le}_vec.
        * cpu-xtensa.c: New file.
        * elf32-xtensa.c: Likewise.
        * xtensa-isa.c: Likewise.
        * xtensa-modules.c: Likewise.
        * libbfd.h: Regenerate.
        * bfd-in2.h: Likewise.

2003-04-01  Nick Clifton  <nickc@redhat.com>

	* archures.c (bfd_mach_arm_unknown): Define.
	* bfd-in.h (bfd_arm_merge_machines, bfd_arm+update_notes,
	bfd_arm_get_mach_from_notes): Prototype.
	* bfd-in2.h: Regenerate.
	* coff-arm.c (coff_arm_merge_private_bfd_data): Call
	bfd_arm_merge_machines.
	(coff_arm_final_link_postscript): Call bfd_arm_update_notes.
	* coffcode.h (coff_set_arch_mach_hook): Call
	bfd_arm_get_mach_from_notes.
	* coffgen.c (coff_real_object_p): Revert previous delta.
	* cpu_arm.c (arm_check_note): New function.  Examine a note in a
	.note section.
	(bfd_arm_merge_machines): New function: Handle the merging of ARM
	binaries compiled for different architectures..
	(bfd_arm_update_notes): New function: Update an ARM note section.
	(bfd_arm_get_mach_from_notes): New function: Extract a bfd machine
	number from an ARM note section.
	* elf32-arm.h (elf32_arm_object_p): Use
	bfd_arm_get_mach_from_notes.
	(elf32_arm_merge_private_bfd_data): Use bfd_arm_merge_machines.
	(elf32_arm_final_write_processing): Use bfd_arm_update_notes.
	
2003-04-01  Ben Elliston  <bje@wasabisystems.com>

	* dwarf2.c (read_attribute_value): Correct typo in comment.

2003-04-01  Nick Clifton  <nickc@redhat.com>

	* dwarf2.c (concat_filename): Use bfd_malloc() and strdup()
	instead of concat().
	(decode_line_info): Only free filename if it is not NULL.
	(add_line_info): Make a copy of the filename when storing it into
	the info structure.

2003-03-31  Andreas Schwab  <schwab@suse.de>
	    Daniel Jacobowitz  <drow@mvista.com>

	* simple.c (bfd_simple_get_relocated_section_contents): Add
	parameter symbol_table.  Optionally use it instead of the symbol
	table from the bfd.  Save and restore output offsets and output
	sections  around bfd_get_relocated_section_contents.  Fix a memory
	leak.
	(simple_save_output_info, simple_restore_output_info): New
	functions.
	* bfd-in2.h: Regenerate.
	* dwarf2.c (read_abbrevs): Use
	bfd_simple_get_relocated_section_contents instead of
	bfd_get_section_contents.
	(decode_line_info): Likewise.
	(_bfd_dwarf2_find_nearest_line): Likewise.  Don't call
	find_rela_addend.
	(find_rela_addend): Remove.
	* elfxx-ia64.c (elfNN_ia64_reloc): Weaken sanity check for
	debugging sections.
	(elfNN_ia64_hash_table_create): Create the hash table with malloc,
	not bfd_zalloc.

2003-03-31  David Heine  <dlheine@suif.stanford.edu>

	* aoutx.h (aout_link_hash_table_create): Use bfd_malloc instead of
	bfd_alloc.
	* dwarf2.c (concat_filename): Always allocate space for the
	returned filename.
	(decode_line_info): Free the allocated filename returned by
	concat_filename.
	* elf-eh-frame.c (bfd_elf_write_section_eh_frame): Fix memory leaks.
	* elf.c (copy_private_bfd_data): Likewise.
	(_bfd_elf_slurp_version_tables): Fix bug freeing contents pointer.
	* elflink.h (elf_link_sort_relocs): Fix memory leak.
	* format.c (bfd_check_format_matches): Likewise.
	* linker.c (bfd_generic_final_link): Likewise.
	* opncls.c (find_separate_debug_info): Likewise.
	* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
	
2003-03-28  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_link_add_object_symbols): Correctly combine
	visibilities.

2003-03-27  Jakub Jelinek  <jakub@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offset
	to -1 before recomputing got offsets.

2003-03-26  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	(elf_m68k_relocate_section): Use it to correctly handle symbols
	forced to be local.
	(elf_m68k_finish_dynamic_symbol): Emit RELATIVE reloc for got
	entries for symbols that are forced to be local.

2003-03-25  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (_bfd_mips_relax_section): New function.
	* elfxx-mips.h (_bfd_mips_relax_section): Declare.
	* elfn32-mips.c, elf64-mips.c: Use it.

2003-03-25  Stan Cox   <scox@redhat.com>
	    Nick Clifton  <nickc@redhat.com>
	    
	Contribute support for Intel's iWMMXt chip - an	ARM variant:

	* archures.c: Add bfd_mach_arm_iWMMXt.
	* reloc.c: Add BFD_RELOC_ARM_CP_OFF_IMM_S2.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* coff-arm.c (coff_arm_merge_private_bfd_data): Allow iWMMXt
	object files to be linked with XScale ones.
	(coff_arm_final_link_postscript): Update note section.
	* coffcode.h (coff_set_arch_mach_hook): Handle note section.
	* coffgen.c (coff_real_object_p): Call bfd_coff_set_arch_mach_hook
	after identifying a coff binary.
	* cpu-arm.c (processors): Add iWMMXt.
	(arch_inf): Likewise.
	* elf32-arm.h (arm_object_p): Handle note section.
	(elf32_arm_merge_private_bfd_data):  Allow iWMMXt object files to
	be linked with XScale ones.
	(elf32_arm_section_flags): New function: Set flags on note section.
	(elf32_arm_final_write_processing): Handle note section.

2003-03-21  DJ Delorie  <dj@redhat.com>

	* elf32-xstormy16.c (elf32_xstormy16_relocate_section): Call
	_bfd_elf_rela_local_sym.

2003-03-20  H.J. Lu <hjl@gnu.org>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Don't try relax for
	non-ELF outputs.

2003-03-20  Nick Clifton  <nickc@redhat.com>

	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Initialise $idata2 and
	$idata5 in case bfd_coff_final_link is not called.

2003-03-19  Jakub Jelinek  <jakub@redhat.com>

	* elf64-sparc.c (struct sparc64_elf_section_data): Add reloc_count
	field.
	(canon_reloc_count): Define.
	(sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
	sparc64_elf_canonicalize_dynamic_reloc): Use it instead of
	reloc_count.
	(sparc64_elf_canonicalize_reloc): New routine.
	(bfd_elf64_canonicalize_reloc): Define.

2003-03-18  Jakub Jelinek  <jakub@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Handle relaxation
	againt mergeable sections.  Take r_addend into account when caching
	trampolines.

2003-03-18  Richard Henderson  <rth@redhat.com>

        * elfxx-ia64.c (get_dyn_sym_info): Return NULL gracefully for
        local symbols that have no dyninfo.

2003-03-14  Gene Smith  <gene.smith@siemens.com>

	* ieee.c (ieee_write_expression): Handle the case where symbol is
	NULL.
	General formatting improvements.

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

	* configure.in (LINGUAS): Add zh_CN.
	* configure: Regenerate.
	* po/zh_CN.po: New file.

2003-03-13  Elias Athanasopoulos  <elathan@phys.uoa.gr>

	* aout-cris.c (BYTES_IN_WORD): Don't define.
	aout-encap.c: Likewise.
	aout-ns32k.c: Likewise.
	aout-tic30.c: Likewise.
	hp300bsd.c: Likewise.
	i386aout.c: Likewise.
	i386dynix.c: Likewise.
	i386linux.c: Likewise.
	i386lynx.c: Likewise.
	i386mach3.c: Likewise.
	m68k4knetbsd.c: Likewise.
	m68klinux.c: Likewise.
	m68klynx.c: Likewise.
	m68knetbsd.c: Likewise.
	m88kmach3.c: Likewise.
	mipsbsd.c: Likewise.
	newsos3.c: Likewise.
	sparclinux.c: Likewise.
	sparclynx.c: Likewise.
	sparcnetbsd.c: Likewise.
	vaxbsd.c: Likewise. Fix comment formatting.

2003-03-12  Alexandre Oliva  <aoliva@redhat.com>

	* Reverted 2003-03-02's patch.

	* elfxx-target.h (bfd_elfNN_canonicalize_reloc): Make it
	overridable.
	* elf64-mips.c (mips_elf64_canonicalize_reloc,
	mips_elf64_get_dynamic_reloc_upper_bound,
	mips_elf64_canonicalize_dynamic_reloc): New, adapted from elf.c.
	(bfd_elf64_get_canonicalize_reloc,
	bfd_elf64_get_dynamic_reloc_upper_bound,
	bfd_elf64_canonicalize_dynamic_reloc): Define.
	(mips_elf64_slurp_reloc_table): Support dynamic.
	(mips_elf64_slurp_one_reloc_table): Adjust.

2003-03-12  Nick Clifton  <nickc@redhat.com>

	* xsym.c (bfd_sym_fetch_type_information_table_entry): Change
	'index' to 'offset' in test for zero value.

2003-03-11  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Do not create
	dynamic relocations pointing to local or section symbols, use the
	NULL symbol instead.  Document the choice to not emit an
	additional R_MIPS_64 relocation.

2003-03-11  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Subtract tls seg vma from
	zero index dynamic tls relocs generated for the GOT.  Tidy code.
	Set "relocation" to 1 on DTPMOD32 relocs.  Optimize HA adjustment.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.

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

	* elf32-ppc.c (ppc_elf_relocate_section): Don't look for a nop after
	a tls_get_addr call.

	* elf32-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
	(ppc_elf_adjust_dynamic_symbol): For weak symbols, copy
	ELF_LINK_NON_GOT_REF from weakdef.
	* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
	(ppc64_elf_adjust_dynamic_symbol): For weak symbols, copy
	ELF_LINK_NON_GOT_REF from weakdef.
	* elf32-i386.c (ELIMINATE_COPY_RELOCS): Define as one.  Use throughout.
	(elf_i386_adjust_dynamic_symbol): For weak symbols, copy
	ELF_LINK_NON_GOT_REF from weakdef.

2003-03-06  Jakub Jelinek <jakub@redhat.com>
	Andrew Haley  <aph@redhat.com>

	* elflink.h (elf_bfd_discard_info): Don't process eh frames if
	output is relocateable.

2003-03-06  Steven Konopa <skonopa@kgo.csc.com>

	* som.c (som_fixup_formats): Correct formats for R_AUX_UNWIND and
	R_COMMENT.

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

	* elf32-ppc.c (ppc_elf_create_linker_section): Don't capitalize
	error messages.
	(ELIMINATE_COPY_RELOCS): Define to zero.
	(ppc_elf_relocate_section): Don't deref htab->tls_sec when calculating
	TLSLD relocs.  Report reloc types on a number of errors.  Optimize
	LOCAL24PC check for non-local syms.  Don't capitalize error messages.
	* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define to zero.
	(ppc64_elf_relocate_section): Don't deref htab->tls_sec when
	calculating TLSLD relocs.  Report reloc types on a number of errors.
	Don't capitalize error messages.

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

	* elfxx-ia64.c (USE_BRL): Removed.
	(oor_ip): Removed.

2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>

	* elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
	relocation (no special function), and make it non-partial_inplace.
	(sh_elf_relax_section): When creating a bsr, use a consistent value
	no matter if the symbol is extern or not;  set addend to -4.
	Don't swap load / non-load instructions for SH4.
	(sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
	rather than if the symbol is external to determine if adjusting the
	offset makes sense.  Adjust the addend too if appropriate.
	(sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
	relocation.

2003-03-03  Nick Clifton  <nickc@redhat.com>

	* po/da.po: Installed latest translation.

2003-03-02  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf32-mips.c (elf_mips_howto_table_rel): Change definition of
	R_MIPS_PC16 to rightshift 2.
	(elf_reloc_map mips_reloc_map): Map to rightshifted BFD reloc.
	(bfd_elf32_bfd_reloc_type_lookup): Support
	BFD_RELOC_MIPSEMB_16_PCREL_S2.
	* elf64-mips.c (mips_elf64_howto_table_rel): Change definition of
	R_MIPS_PC16 to rightshift 2.
	(mips_elf64_howto_table_rela): Likewise.
	(mips_reloc_map): Map to rightshifted BFD reloc.
	* elfn32-mips.c: The same as in elf64-mips.c.
	* elfxx-mips.c (mips_elf_got_for_ibfd): Typo in comment.
	(mips_elf_calculate_relocation): Handle rightshifted addends for
	R_MIPS_PC16.
	* reloc.c (BFD_RELOC_MIPSEMB_16_PCREL_S2): New BFD relocation for
	MIPS Embedded PIC. Remove superfluous empty COMMENT.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

2003-02-28  Richard Henderson  <rth@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Correct bounds
	for ltoff22x relaxation.

2003-03-01  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (_bfd): Don't define.
	* bfd.c: Rename occurrences of "struct _bfd" to "struct bfd".
	* syms.c: Likewise.
	* bfd-in2.h: Regenerate.

2003-02-27  Richard Henderson  <rth@redhat.com>

	* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add want_gotx;
	(elfNN_ia64_check_relocs): Set it.
	(allocate_global_data_got): Check it.
	(allocate_local_got): Likewise.
	(allocate_dynrel_entries): Likewise.
	(elfNN_ia64_relax_ldxmov): New.
	(elfNN_ia64_relax_section): Handle LTOFF22X, LDXMOV.
	(elfNN_ia64_choose_gp): Split out from ...
	(elfNN_ia64_final_link): ... here.
	
2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* bfd.c (struct bfd): Rename "struct _bfd".
	* bfd-in.h: Update copyright.
	(struct bfd): Rename "struct _bfd".
	(_bfd): Define for backward compatibility.
	* bfd-in2.h: Regenerate.

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

	* elflink.h (elf_bfd_final_link): Apportion reloc counts to rel_hdr
	and rel_hdr2 when initially counting input relocs rather than after
	creating output reloc sections.
	(elf_link_read_relocs_from_section): Don't abort with wrong reloc
	sizes.

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

2003-02-24  Kris Warkentin  <kewarken@qnx.com>

	* elf.c (elfcore_read_notes): Add check for QNX style core file.
	(elfcore_grog_nto_note): New function.
	(elfcore_grog_nto_gregs): New function.
	(elfcore_grog_nto_status): New function.

2003-02-24  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_create_got_section): Check existing .got
	section flags before concluding that we've already been called.
	Don't use register keyword.
	(_bfd_elf_create_dynamic_sections): Don't use register keyword.
	(_bfd_elf_create_linker_section): Formatting.

2003-02-20  jmc  <jmc@prioris.mini.pw.edu.pl>

	* coff-h8300.c: Fix typo: intial -> initial.
	* coff-ppc.c: Likewise.

2003-02-20  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c: Formatting.
	(allocate_dynrelocs): LD and GD relocs against the same sym need
	separate GOT entries.
	(ppc_elf_relocate_section): Correct GOT handling for multiple GOT
	entries per symbol.

2003-02-19  Alan Modra  <amodra@bigpond.net.au>

	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Simplify dynamic reloc
	removal.  Localize vars.  Remove unnecessary dynobj test.
	* elf32-i386 (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead
	of INFO.
	(allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
	and optimize.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_gc_sweep_hook): Simplify dyn reloc removal.  Localize vars.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf32-sparc.c (elf32_sparc_gc_sweep_hook): Likewise.  Remove
	local_dynrel for section too.  Don't touch HIPLT22, LOPLT10, PCPLT32
	or PCPLT10 relocs.  Don't subtract twice on PLT32 relocs.
	Formatting.

	* elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define.
	(ppc64_elf_check_relocs): Use it.  Correct comment.  Move SEC_ALLOC
	test.
	(ppc64_elf_adjust_dynamic_symbol): Use ELIMINATE_COPY_RELOCS.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
	(allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
	and optimize.  Use ELIMINATE_COPY_RELOCS.
	(ppc64_elf_relocate_section): Likewise.

	* elf32-ppc.c (struct ppc_elf_dyn_relocs): Add pc_count field.
	(ppc_elf_copy_indirect_symbol): Copy pc_count field.
	(ELIMINATE_COPY_RELOCS): Define.
	(ppc_elf_adjust_dynamic_symbol): Convert copy relocs to dynamic.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
	(MUST_BE_DYN_RELOC): Define.
	(allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
	and optimize.  Trim dyn_relocs.
	(ppc_elf_check_relocs): Don't generate dyn_relocs when we know they'll
	not be used.  Do generate dyn_relocs for copy reloc avoidance.  Keep
	track of pc_rel dyn relocs.
	(ppc_elf_relocate_section): Remove "will_become_local".  Adjust
	WILL_CALL_FINISH_DYNAMIC_SYMBOL use.  Trim dyn relocs as per
	allocate_dynrelocs.  Don't recalculate "sec".

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

	* elf32-ppc.c (ppc_elf_relocate_section): Remove unnecessary test.
	* elf64-ppc.c (ppc64_elf_tls_optimize): Decrement tlsld_got.refcount
	on invalid LD relocs.
	(allocate_dynrelocs): Invalid LD relocs don't use tlsld_got entry.
	(ppc64_elf_relocate_section): Unify new handling of LD relocs and
	tlsld_got entry.  Use IS_PPC64_TLS_RELOC.

	* elf32-ppc.h: New file.
	* elf32-ppc.c: Include elf32-ppc.h.
	(NOP, CROR_151515, CROR_313131, TP_OFFSET, DTP_OFFSET): Define.
	(struct ppc_elf_link_hash_entry): Rename "root" to "elf".  Adjust uses.
	Add "tls_mask" field.
	(TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL, TLS_TLS, TLS_TPRELGD): Define.
	(struct ppc_elf_link_hash_table): Rename "root" to "elf".  Adjust uses.
	Add got, relgot, plt, relplt, dynbss, relbss, dynsbss, relsbss,
	sdata, sdata2, tls_sec, tls_get_addr, tlsld_got fields.
	Make use of htab shortcuts throughout file.
	(ppc_elf_link_hash_newfunc): Init tls_mask field.
	(ppc_elf_link_hash_table_create): Init new fields.
	(ppc_elf_copy_indirect_symbol): Copy tls_mask.
	(ppc_elf_howto_raw): Add tls relocs.
	(ppc_elf_reloc_type_lookup): Handle them.
	(ppc_elf_unhandled_reloc): New function.
	(ppc_elf_create_got): Stash got section pointer in hash table,
	return status.  Make .rela.got too.
	(ppc_elf_create_dynamic_sections): Stash section pointers in htab.
	(ppc_elf_adjust_dynamic_symbol): Only set up copy relocs when
	NON_GOT_REF set.  Don't allocate space in .plt here..
	(allocate_dynrelocs): ..do so here instead, properly ref-counting and
	not allocating plt entries unnecessarily.  Allocate got entries here.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	(ppc_elf_size_dynamic_sections): Allocate local got entries.  Pass
	"info" during allocate_dynrelocs hash traversal.  Use htab section
	shortcuts rather than searching for named sections.  Get rid of
	"plt" and "strip" booleans.
	(update_local_sym_info, bad_shared_reloc): New functions.
	(ppc_elf_check_relocs): Handle TLS relocs.  Move .rela.got creation to
	ppc_elf_create_got.  Don't mark got or plt reloc syms dynamic, do so
	in allocate_dynreloc.  Use update_local_sym_info and bad_shared_reloc.
	Disallow R_PPC_EMB_RELSDA, R_PPC_EMB_NADDR32, R_PPC_EMB_NADDR16,
	R_PPC_EMB_NADDR16_LO, R_PPC_EMB_NADDR16_HI and R_PPC_EMB_NADDR16_HA
	in shared libs.  R_PPC_PLTREL32 is a plt reloc too.  Refcount all
	relocs that might use a plt entry.  Set NON_GOT_REF too.
	Enumerate all do-nothing relocs.
	(ppc_elf_gc_sweep_hook): Simplify removal of dynrelocs.  Handle
	tls relocs and all plt relocs.
	(ppc_elf_tls_setup, ppc_elf_tls_optimize): New functions.
	(ppc_elf_finish_dynamic_symbol): Don't build got entries here.
	(ppc_elf_finish_dynamic_sections): Rewrite tag code using htab
	shortcuts.
	(ppc_elf_relocate_section): Tidy.  Handle TLS relocs.  Use
	bfd_elf_local_sym_name.  Simplify unresolved reloc code.  Build got
	entries and got relocs here.  Warn on non-zero got reloc addend.
	Split out branch taken/not taken reloc code into a separate switch
	and correct offset calculation. Allow BRTAKEN/BRNTAKEN dynamic relocs.
	Split out HA reloc adjustments to separate switch statement.  Don't
	warn on reloc overflow if we've already warned about undefined.
	Don't rebuild sym name when reporting errors.  Report all possible
	errors from _bfd_final_link_relocate.
	(bfd_elf32_bfd_final_link): Don't define.

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

	* elf64-ppc.c (ppc64_elf_relocate_section): Don't init "r".  Don't
	rebuild sym name when reporting errors.

2003-02-17  Nick Clifton  <nickc@redhat.com>

	* elflink.h (elf_link_output_extsym): Only check
	allow_shlib_undefined for shared libraries.
	* elf32-i386.c (elf_i386_relocate_section): Remove bogus check
	of allow_shlib_undefined.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_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.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-hppa.c (elf64_hppa_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.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.

2003-02-17  Nick Clifton  <nickc@redhat.com>

	* elf.c (SEGMENT_AFTER_SEGMENT): Add third parameter - the
	address field to use in the comparison.
	(SEGMENT_OVERLAPS): Check that LMAs overlap as well.

2003-02-14  Bob Wilson  <bob.wilson@acm.org>

	* elfcore.h (elf_core_file_p): Compare alternate machine codes for ELF
	backends when checking if the generic ELF target should be used.

	* syms.c (_bfd_stab_section_find_nearest_line): For line number stabs
	outside of functions, treat values as absolute addresses.

	* bfd.c: Change embedded documentation to use consistent indentation
	and to split up long lines.  Change informal style of description
	for functions lacking real documentation.
	* coffcode.h: Break up long lines in embedded documentation.
	* format.c: Likewise.
	* targets.c: Likewise.
	* libcoff.h: Regenerate.
	* bfd-in2.h: Regenerate.

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

	* elf64-ppc.c (ppc64_elf_link_hash_table_create): Init tls_get_addr.
	(ppc64_elf_copy_indirect_symbol): Merge tls_mask too.
	(ppc64_elf_gc_sweep_hook): Simplify removal of dyn_relocs.
	(allocate_dynrelocs): Don't treat undefined and undefweak specially.
	(ppc_size_one_stub): Fix warning, and tighten plt entry check.
	(group_sections): Don't share a stub section if stubs are for a large
	section.  Adjust comment.
	(ppc64_elf_size_stubs): Roughly double the size left for stubs if
	!stubs_always_before_branch.
	(ppc64_elf_relocate_section): Initialize tlsld GOT entry once.  Don't
	treat undefined and undefweak specially when processing dyn relocs.

2003-02-13  Jakub Jelinek  <jakub@redhat.com>

	* elflink.h (elf_link_add_object_symbols): Handle .symver x, x@FOO.

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

	* elf32-arm.h (elf32_thumb_to_arm_stub): Include section VMAs
	in computation of offset to insert into BL instruction.

2003-02-11  Uwe Stieber  <uwe@wwws.de>

	* config.bfd: Add support for kaOS as cross build target system.

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

	* elf64-ppc.c (ppc64_elf_check_relocs): Match versioned
	.__tls_get_addr too.
	(ppc64_elf_tls_setup): Ensure cached tls_get_addr is not indirect.

2003-02-10  Kaz kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (elf_sh_dyn_relocs): Add tls_tpoff32 field.
	(elf_sh_link_hash_entry): Remove tls_tpoff32 field.
	(sh_elf_link_hash_newfunc): Remove the initialization of
	tls_tpoff32 field.
	(allocate_dynrelocs): Keep dyn_relocs if it includes the entry
	for which tls_tpoff32 flag is set.
	(sh_elf_relocate_section): Covert to LE only if the dyn_relocs
	of the symbol includes the entry matched with the input_section
	and having tls_tpoff32 flag on.  When linking statically, set
	symbol index of R_SH_TLS_TPOFF32 relocation to zero if the symbol
	is defined in this executable.
	(sh_elf_check_relocs): Set tls_tpoff32 flag appropriately.

2003-02-10  Jakub Jelinek  <jakub@redhat.com>

	* elf32-s390.c (elf_s390_size_dynamic_sections): Set relocs to TRUE
	even if there is just non-empty .rela.plt.

2003-02-10  Nick Clifton  <nickc@redhat.com>

	* archures.c (bfd_mach_arm_ep9312): Define.
	* bfd-in2.h: Regenerate.
	* cpu-arm.c (processors[]): Add ep9312.
	(bfd_arm_arch): Add ep9312.
	* elf32-arm.h (elf32_arm_merge_private_data): Update error
	messages and add test for Maverick floating point support.
	(elf32_arm_print_private_bfd_data): Handle
	EF_ARM_MAVERICK_FLOAT flag.
	(elf32_arm_object_p): New function.
	(elf_backend_object_p): Define.

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

	* elf64-ppc.c: Rename assorted occurrences of tls_type and similar
	variables, structure fields or function params to tls_mask or
	similar to better reflect usage.
	(struct got_entry): Comment.
	(struct ppc_link_hash_entry):  Expand comment, and renumber TLS_*.
	(get_tls_mask): Rename from get_tls_type.

2003-02-09  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (TLS_GD_LD): Don't define..
	(TLS_GD): ..define this instead and update all uses.
	(TLS_TPRELGD): Define.
	(ppc64_elf_link_hash_table_create): Tweak initialization of
	init_refcount and init_offset.
	(ppc64_elf_check_relocs): Add one extra element to t_symndx array.
	Mark second slot of GD or LD toc entries.
	(get_tls_type): Return an int.  Distinguish toc GD and LD entries
	from other tls types.
	(ppc64_elf_tls_setup): New function, split out from..
	(ppc64_elf_tls_optimize): ..here.  Don't optimize when symbols are
	defined in a dynamic object.  Fix LD optimization.  Don't set TLS_TPREL
	on GD->IE optimization, use TLS_TPRELGD instead.  Use get_tls_type
	return value to properly decide whether toc GD and LD entries can
	optimize away __tls_get_addr call.  Check next reloc after DTPMOD64
	to determine GD or LD rather than looking at TLS_LD flag.  Don't
	attempt to adjust got entry tls_type here..
	(allocate_dynrelocs): ..instead, adjust got entry tls_type here, and
	look for possible merges.
	(ppc64_elf_size_dynamic_sections): Adjust local got entries for
	optimization.
	(ppc64_elf_size_stubs): Tweak __tls_get_addr fudge.
	(ppc64_elf_relocate_section): Rename some vars to better reflect usage.
	Make use of return value from get_tls_type to properly detect GD and
	LD optimizations.  Split tlsld/gd hi/ha from lo/ds case.  Don't
	handle tls_get_addr removal when looking at REL24 relocs, do it when
	looking at the previous reloc.  Check reloc after DTPMOD64 to determine
	GD or LD.
	* elf64-ppc.h (ppc64_elf_tls_setup): Declare.

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

	* elf32-hppa.c (group_sections): Don't share a stub section if
	stubs are for a large section.

	* elf32-hppa.c (elf32_hppa_size_stubs): Double the size left for
	stubs if !stubs_always_before_branch.

2003-02-07  Nick Clifton  <nickc@redhat.com>

	* elf.c (swap_out_syms): Generate an error message if an
	equivalent output section cannot be found for a symbol.

2003-02-07  Jakub Jelinek  <jakub@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Don't crash if
	local_got_entries is NULL.

2003-02-06  Andreas Schwab  <schwab@suse.de>

	* elf-eh-frame.c (get_DW_EH_PE_signed): Define.
	(read_value): Add parameter is_signed, use signed extraction if
	the value is signed.
	(_bfd_elf_write_section_eh_frame): Pass signed flag of the
	encoding to read_value.

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

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy got and
	plt info when called to transfer weak sym info.

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

	* reloc.c: Add PPC and PPC64 TLS relocs.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* elf64-ppc.c (TP_OFFSET, DTP_OFFSET): Declare.
	(ppc64_elf_howto_raw): Add TLS howto's.  Adjust R_PPC64_NONE to be
	against a 32 bit field.
	(ppc64_elf_reloc_type_lookup): Handle TLS relocs.
	(_ppc64_elf_section_data): Add t_symndx and comments.
	(ppc64_elf_section_data): Use elf_section_data macro.
	(ppc64_elf_new_section_hook): American spelling.
	(struct got_entry, struct plt_entry): New.
	(MUST_BE_DYN_RELOC): Rename from IS_ABSOLUTE_RELOC.
	(struct ppc_stub_hash_entry): Add "addend" field.
	(struct ppc_link_hash_entry): Add "tls_type".
	(TLS_TLS, TLS_GD_LD, TLS_LD, TLS_TPREL, TLS_DTPREL,
	TLS_EXPLICIT): Define.
	(struct ppc_link_hash_table): Add tls_sec, tls_get_addr, tlsld_got.
	(link_hash_newfunc): Init new fields.
	(ppc64_elf_link_hash_table_create): Likewise.  Set init_refcount and
	init_offset to NULL.
	(ppc64_elf_copy_indirect_symbol): Copy got and plt info.  Don't call
	_bfd_elf_link_hash_copy_indirect, rather insert relevant code from
	there.
	(update_local_sym_info, update_plt_info): New functions.
	(ppc64_elf_check_relocs): Use them.  Handle TLS relocs.  Adjust GOT
	handling to use got.glist rather than got.refcount.  Likewise for PLT.
	(ppc64_elf_gc_sweep_hook): Handle TLS relocs, new GOT and PLT lists.
	(func_desc_adjust): Adjust for new PLT list.
	(ppc64_elf_adjust_dynamic_symbol): Likewise.
	(get_sym_h, get_tls_type): New functions.
	(ppc64_elf_edit_opd): Remove unused variable.  Use get_sym_h.
	(ppc64_elf_tls_optimize): New function.
	(allocate_dynrelocs): Adjust for new PLT and GOT lists.  Allocate
	TLS relocs.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(ppc_type_of_stub): Adjust for new PLT list.
	(ppc_build_one_stub): Likewise.
	(ppc64_elf_size_stubs): Likewise.  Use get_sym_h.  Treat __tls_get_addr
	calls specially.
	(ppc64_elf_relocate_section): Adjust for new GOT and PLT lists.  Handle
	TLS relocs.  Report local syms using bfd_elf_local_sym_name.  Don't
	init GOT entries that have a reloc.  Generate GOT relocs here..
	(ppc64_elf_finish_dynamic_symbol): ..not here.  Adjust for PLT list.
	* elf64-ppc.h (ppc64_elf_tls_optimize): Declare.

2003-02-04  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (elf_m68k_hash_entry): Define.
	(elf_m68k_link_hash_traverse): Remove.
	(elf_m68k_link_hash_newfunc): Use struct bfd_hash_entry and
	elf_m68k_hash_entry instead of struct elf_m68k_link_hash_entry to
	reduce casting.
	(elf_m68k_check_relocs): Use elf_m68k_hash_entry instead of
	casting.
	(elf_m68k_size_dynamic_sections): Use elf_link_hash_traverse
	instead of elf_m68k_link_hash_traverse.
	(elf_m68k_discard_copies): Change first parameter to pointer to
	struct elf_link_hash_entry and use elf_m68k_hash_entry when struct
	elf_m68k_link_hash_entry is needed.

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

	* elf-bfd.h (struct got_entry, struct plt_entry): Forward declare.
	(struct elf_link_hash_entry): Add "glist" and "plist" fields to
	"got" union, and declare as gotplt_union.  Use gotplt_uinion for
	"plt" field.
	(struct elf_link_hash_table): Make "init_refcount" a gotplt_union.
	Add "init_offset" field.
	(struct elf_obj_tdata <local_got>): Add "struct got_entry **" to union.
	(elf_local_got_ents): Declare.
	* elf.c (_bfd_elf_link_hash_newfunc): Adjust initialization of "got"
	and "plt".
	(_bfd_elf_link_hash_hide_symbol): Use "init_offset".
	(_bfd_elf_link_hash_table_init): Set "init_offset".
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set init_refcount
	from init_offset.
	(elf_adjust_dynamic_symbol): Set plt and got offsets using init_offset.

	* elf.c (bfd_elf_local_sym_name): Split out from..
	(group_signature): ..here.
	* elf-bfd.h (bfd_elf_local_sym_name): Declare.

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

	* elf-bfd.h (enum elf_link_info_type): Remove.
	(struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields
	to struct sec.  Remove linkonce_p field.
	(elf_linkonce_p): Delete.
	(elf_discarded_section): Update for sec_info_type change.
	* section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc,
	flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24.
	(ELF_INFO_TYPE_NONE): Define.
	(ELF_INFO_TYPE_STABS): Define.
	(ELF_INFO_TYPE_MERGE): Define.
	(ELF_INFO_TYPE_EH_FRAME): Define.
	(ELF_INFO_TYPE_JUST_SYMS): Define.
	(STD_SECTION): Update struct sec initializer.
	* ecoff.c (bfd_debug_section): Likewise.
	* elf.c: Likewise.  Update occurrences of sec_info_type and use_rela_p.
	* elflink.h: Likewise.
	* elf-eh-frame.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* bfd-in2.h: Regenerate.

	* elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than
	referring to used_by_bfd.
	* elf64-sparc.c (sec_do_relax): Likewise.
	* elf64-mmix.c (mmix_elf_section_data): Likewise.
	* elfxx-mips.c (mips_elf_section_data): Likewise.
	* ieee.c (ieee_slurp_section_data): Use ieee_per_section macro.
	(ieee_get_section_contents): Likewise.
	(ieee_new_section_hook): Formatting.
	(ieee_canonicalize_reloc): Remove commented out code.
	* mmo.c (mmo_section_data): Define.  Use throughout file.
	* oasys.c (oasys_get_section_contents): Use oasys_per_section macro.

2003-01-31  Graydon Hoare <graydon@redhat.com>

	* Makefile.am (opncls.lo): Add dependency upon libiberty.h.
	* Makefile.in: Regenerate.
	* opncls.c (calc_crc32, get_debug_link_info,
	seperate_debug_file_exists, find_seperate_debug_file): New
	internal functions.
	(bfd_follow_gnu_debuglink): New function.  Follow the pointer
	contained inside a .gnu_debuglink section.
	* bfd-in2.h: Regenerate.

2003-01-29  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_got_entry_hash): Don't dereference
	entry->abfd when it's NULL.

2003-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Handle
	_bfd_elf_section_offset returning -2 the same way as -1.

	* elfxx-mips.c (mips_elf_multi_got): New function.
	(struct mips_got_entry): Make symndx and gotidx signed.  Moved
	addend into union along with address and link hash entry.
	(struct mips_got_info): Added bfd2got and next.
	(struct mips_elf_hash_sort_data): Added max_unref_got_dynindx.
	(mips_elf_got_section, mips_elf_create_got_section): Use
	SEC_EXCLUDE bit to tell whether we really need the got
	section.  Take boolean arguments to disregard an excluded
	section, or to create it as excluded.  Adjust all callers.
	Use mips_elf_got_section all over.
	(mips_elf_local_got_index, mips_elf_got_page,
	mips_elf_got16_entry): Take input bfd as argument, and pass it
	on to mips_elf_create_local_got_entry.
	(mips_elf_global_got_index, mips_elf_create_local_got_entry):
	Take input bfd as argument, and manage entries in the
	appropriate GOT.
	(mips_elf_got_offset_from_index): Take input bfd as argument,
	and use it to adjust the GP offset of the bfd.
	(mips_elf_sort_hash_table, mips_elf_sort_hash_table_f): Move
	unreferenced GOT entries of global symbols to the end.
	(mips_elf_record_global_got_symbol): Take input bfd as
	argument.  Add entries to the master GOT hash table.
	(struct mips_elf_bfd2got_hash): New.
	(struct mips_elf_got_per_bfd_arg): New.
	(struct mips_elf_set_global_got_offset_arg): New.
	(mips_elf_hash_bfd_vma, mips_elf_multi_got_entry_hash,
	mips_elf_multi_got_entry_eq, mips_elf_bfd2got_entry_hash,
	mips_elf_bfd2got_entry_eq, mips_elf_make_got_per_bfd,
	mips_elf_merge_gots, mips_elf_set_global_got_offset,
	mips_elf_resolve_final_got_entry,
	mips_elf_resolve_final_got_entries, mips_elf_adjust_gp,
	mips_elf_got_for_ibfd): New functions.
	(ELF_MIPS_GP_OFFSET): Don't depend on SGI_COMPAT.
	(MIPS_ELF_GOT_MAX_SIZE): New macro.
	(STUB_LW): Generate 64-bit stub regardless of SGI_COMPAT.
	(mips_elf_got_entry_hash): Take new fields into account.  Use
	mips_elf_hash_bfd_vma.
	(mips_elf_got_entry_eq): Take new fields into account.
	(mips_elf_create_got_section): Initialize new fields.
	(mips_elf_calculate_relocation): Pass input_bfd to functions
	that now take it.  Adjust gp for the input_bfd.
	(mips_elf_allocate_dynamic_relocation,
	mips_elf_create_dynamic_relocation,
	_bfd_mips_elf_create_dynamic_sections): Use...
	(mips_elf_rel_dyn_section): New function.  Borrow code from...
	(_bfd_mips_elf_check_relocs): Pass input_bfd to functions that
	now take it.  Create the got section if needed, even if
	excluded, before recording a global got symbol.  Move some
	code to...
	(mips_elf_record_local_got_symbol): New fn.
	(_bfd_mips_elf_size_dynamic_sections): Disable combreloc.
	Compute multi-got global entries offsets.  Move GOT code to...
	(_bfd_mips_elf_always_size_sections): Call mips_elf_multi_got
	if the GOT is too big.
	(_bfd_mips_elf_finish_dynamic_symbol): Set got entry of
	undefweak symbol to zero.  Generate dynamic relocations for
	non-primary GOT entries for global symbols.
	(_bfd_mips_elf_finish_dynamic_sections): Handle multi-got
	case.  Generate dynamic relocations for local got entries.
	Sort dynamic relocations on N64 too, using...
	(sort_dynamic_relocs_64): New fns.
	(_bfd_mips_elf_hide_symbol): Adjust multi-got counters.
	(_bfd_mips_elf_merge_private_bfd_data): Ignore EF_MIPS_XGOT.

2003-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* bfd.c (struct _bfd): Added id field.
	* opncls.c (_bfd_id_counter): New static variable.
	(_bfd_new_bfd): Use it.
	* bfd-in2.h: Rebuilt.

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

	* elf32-sparc.c (bfd_elf32_new_section_hook): Define.

2003-01-25  Jakub Jelinek  <jakub@redhat.com>

	* elf32-sparc.c (_bfd_sparc_elf_howto_table): Add TLS relocs.
	(elf32_sparc_rev32_howto): New variable.
	(sparc_reloc_map): Add TLS relocs.
	(elf32_sparc_reloc_type_lookup, elf32_sparc_info_to_howto):
	Handle REV32.
	(sparc_elf_hix22_reloc, sparc_elf_lox10_reloc, elf32_sparc_mkobject):
	New functions.
	(struct elf32_sparc_dyn_relocs, struct elf32_sparc_link_hash_entry,
	struct elf32_sparc_link_hash_table):
	New structures.
	(elf32_sparc_tdata, elf32_sparc_local_got_tls_type,
	elf32_sparc_hash_table): Define.
	(link_hash_newfunc, elf32_sparc_link_hash_table_create,
	create_got_section, elf32_sparc_create_dynamic_sections,
	elf32_sparc_copy_indirect_symbol, elf32_sparc_tls_transition): New
	functions.
	(elf32_sparc_check_relocs): Handle TLS relocs.  Add dynamic reloc
	reference counting.
	(elf32_sparc_gc_sweep_hook): Likewise.
	(elf32_sparc_adjust_dynamic_symbol): Likewise.
	(elf32_sparc_size_dynamic_sections): Likewise.
	(elf32_sparc_relocate_section): Likewise.
	(allocate_dynrelocs, readonly_dynrelocs, dtpoff_base, tpoff):
	New functions.
	(elf32_sparc_object_p): Allocate backend private object data.
	(bfd_elf32_bfd_link_hash_table_create,
	elf_backend_copy_indirect_symbol, bfd_elf32_mkobject,
	elf_backend_can_refcount): Define.
	(elf_backend_create_dynamic_sections): Define to
	elf32_sparc_create_dynamic_sections.
	* reloc.c: Add SPARC TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-sparc.c (sparc64_elf_howto_table): Add TLS relocs.
	(sparc_reloc_map): Likewise.

2003-01-24  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* bfd-in2.h: Regenerate.
	* elf32-s390.c (elf_s390_mkobject, elf_s390_tls_transition,
	s390_tls_reloc, dtpoff_base, tpoff, invalid_tls_insn): New functions.
	(elf_howto_table): Add TLS relocs.
	(elf_s390_reloc_type_lookup): Likewise.
	(elf_s390_link_hash_entry): Add tls_type.
	(elf_s390_hash_entry, elf_s390_obj_tdata, elf_s390_local_got_tls_type):
	New macros.
	(elf_s390_link_hash_table): Add tls_ldm_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf_s390_link_hash_table_create): Initialize refcount of tls_ldm_got.
	(elf_s390_copy_indirect_symbol): Copy tls_type information.
	(elf_s390_check_relocs): Support TLS relocs.
	(elf_s390_gc_sweep_hook): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject): Define for TLS.
	* elf64-s390.c: Same changes as for elf32-s390.c.
	* libbfd.h: Regenerate.
	* reloc.c: Add s390 TLS relocations.

2003-01-24  Charles Lepple clepple.ghz.cc

	* aclocal.m4: Fix name of --enable-install-libbfd switch.

2003-01-23  Nick Clifton  <nickc@redhat.com>

	* Add sh2e support:

	2002-04-02  Elena Zannoni  <ezannoni@redhat.com>

		* archures.c (bfd_mach_sh2e): Added.
		* bfd-in2.h: Rebuilt.
		* cpu-sh.c (arch_info_struct): Added SH2e.
		* elf32-sh.c (sh_elf_set_mach_from_flags): Handle EF_SH2E.

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

	* elf-bfd.h (struct bfd_elf_section_data): Remove tdata.  Change
	dynindx to an int.  Rearrange for better packing.
	* elf.c (_bfd_elf_new_section_hook): Don't alloc if already done.
	* elf32-mips.c (bfd_elf32_new_section_hook): Define.
	* elf32-sh64.h: New.  Split out from include/elf/sh.h.
	(struct _sh64_elf_section_data): New struct.
	(sh64_elf_section_data): Don't dereference sh64_info (was tdata).
	* elf32-sh64-com.c: Include elf32-sh64.h.
	* elf32-sh64.c: Likewise.
	(sh64_elf_new_section_hook): New function.
	(bfd_elf32_new_section_hook): Define.
	(sh64_elf_fake_sections): Adjust for sh64_elf_section_data change.
	(sh64_bfd_elf_copy_private_section_data): Likewise.
	(sh64_elf_final_write_processing): Likewise.
	* elf32-sparc.c (struct elf32_sparc_section_data): New.
	(elf32_sparc_new_section_hook): New function.
	(SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
	(sec_do_relax): Define.
	(elf32_sparc_relax_section): Adjust to use sec_do_relax.
	(elf32_sparc_relocate_section): Likewise.
	* elf64-mips.c (bfd_elf64_new_section_hook): Define.
	* elf64-mmix.c (struct _mmix_elf_section_data): New.
	(mmix_elf_section_data): Define.  Use throughout file.
	(mmix_elf_new_section_hook): New function.
	(bfd_elf64_new_section_hook): Define.
	* elf64-ppc.c (struct _ppc64_elf_section_data): New.
	(ppc64_elf_section_data): Define.  Use throughout.
	(ppc64_elf_new_section_hook): New function.
	(bfd_elf64_new_section_hook): Define.
	* elf64-sparc.c (struct sparc64_elf_section_data): New.
	(sparc64_elf_new_section_hook): New function.
	(SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
	(sec_do_relax): Define.
	(sparc64_elf_relax_section): Adjust to use sec_do_relax.
	(sparc64_elf_relocate_section): Likewise.
	(bfd_elf64_new_section_hook): Define.
	* elfn32-mips.c (bfd_elf32_new_section_hook): Define.
	* elfxx-mips.c (struct _mips_elf_section_data): New.
	(mips_elf_section_data): Define.  Use throughout.
	(_bfd_mips_elf_new_section_hook): New function.
	(mips_elf_create_got_section): Don't alloc used_by_bfd.
	* elfxx-mips.h (_bfd_mips_elf_new_section_hook): Declare.
	* elfxx-target.h (bfd_elfNN_new_section_hook): Add #ifndef.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2003-01-21  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (ALPHA_ELF_LINK_HASH_PLT_LOC): New.
	(struct alpha_elf_link_hash_entry): Add plt_old_section, plt_old_value.
	(elf64_alpha_adjust_dynamic_symbol): Set them.
	(elf64_alpha_size_plt_section_1): Reset them when plt entry removed.
	(elf64_alpha_relax_tls_get_addr): Handle LDM relocs.  Frob the
	symbol index when relaxing LDM to TPREL.
	(elf64_alpha_relax_section): Likewise.  Allow relaxation of GD
	relocs, even if the target isn't locally defined.
	(elf64_alpha_check_relocs): Frob LDM reloc symndx to zero.
	(elf64_alpha_relocate_section): Likewise.  Force TP-relative
	relocs vs symndx 0 to the tp base.

2003-01-21  Fabio Alemagna  <falemagn@aros.org>

	* config.bfd: Handle i[3456]86-*-aros*.

2003-01-21  Andreas Schwab  <schwab@suse.de>

	* elf32-ppc.c (struct ppc_elf_dyn_relocs): Define.
	(struct ppc_elf_link_hash_entry): Define.
	(ppc_elf_hash_entry): New function.
	(struct ppc_elf_link_hash_table): Define.
	(ppc_elf_hash_table): New function.
	(ppc_elf_link_hash_newfunc): New function.
	(ppc_elf_link_hash_table_create): New function.
	(ppc_elf_copy_indirect_symbol): New function.
	(allocate_dynrelocs): New function.
	(readonly_dynrelocs): New function.
	(ppc_elf_size_dynamic_sections): Allocate space for dynamic
	relocs and determine DT_TEXTREL.
	(ppc_elf_check_relocs): Don't do that here, just count the
	dynamic relocs.
	(ppc_elf_gc_sweep_hook): Discard any dynamic relocs against the
	removed section.
	(bfd_elf32_bfd_link_hash_table_create): Define.
	(elf_backend_copy_indirect_symbol): Define.

2003-01-21  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (alpha_dynamic_entries_for_reloc): GOTTPREL and
	TPREL also get a reloc if shared.  Remove SREL support.
	(elf64_alpha_emit_dynrel): New.
	(elf64_alpha_relocate_section): Use it.  Resolve dynamic TPREL
	and GOTTPREL relocs to local symbols against the tp base.
	(elf64_alpha_finish_dynamic_symbol): Use elf64_alpha_emit_dynrel.

	* elf64-alpha.c (elf64_alpha_relax_got_load): Decrement got
	use count before clobbering r_type.
	(elf64_alpha_relax_tls_get_addr): Don't use pos[1] if insn
	ordering would mean dataflow inspection is necessary.

2003-01-20  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* coffcode.h (coff_set_flags): Added get/set arch hooks.

2003-01-20  Fabio Alemagna  <falemagn@aros.org>

	* elf32-sh.c: Treat elfNN_bed like other macros defined in
	  elfxx-target.h and #undef it before #define'ing it.
	* elf32-i386.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-sh64.c: Likewise.

2003-01-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* bfd-in2.h: Regenerate.
	* elf32-s390.c (elf_s390_adjust_gotplt): New prototype.
	(elf_howto_table): Rename R_390_GOTOFF to R_390_GOTOFF32. Add
	R_390_GOTOFF16, R_390_GOTOFF64, R_390_GOTPLT12, R_390_GOTPLT16,
	R_390_GOTPLT32, R_390_GOTPLT64, R_390_GOTPLTENT, R_390_PLTOFF16,
	R_390_PLTOFF32 and R_390_PLTOFF64.
	(elf_s390_reloc_type_lookup): Likewise.
	(struct elf_s390_link_hash_entry): Add gotplt_refcount to keep track
	of GOTPLT references to a function.
	(link_hash_newfunc): Initialize gotplt_refcount.
	(elf_s390_check_relocs): Move allocation of local_got_refcounts array
	and creation of the got section out of the main switch. Add support
	for the gotoff, gotplt and pltoff relocations.
	(elf_s390_gc_sweep_hook): Add reference counting for gotoff, gotplt
	and pltoff.
	(elf_s390_adjust_gotplt): New function.
	(elf_s390_adjust_dynamic_symbol): Adjust gotplt refcount for removed
	plt entries.
	(allocate_dynrelocs): Add comment.
	(elf_s390_relocate_section): Change r_type to unsigned. Add support
	for gotoff, gotplt and pltoff relocations.
	* elf64-s390.c: Same changes as for elf32-s390.c.
	* libbfd.h: Regenerate.
	* reloc.c: Add BFD_RELOC_390_GOTOFF64, BFD_RELOC_390_GOTPLT12,
	BFD_RELOC_390_GOTPLT16, BFD_RELOC_390_GOTPLT32, BFD_RELOC_390_GOTPLT64,
	BFD_RELOC_390_GOTPLTENT, BFD_RELOC_390_PLTOFF16, BFD_RELOC_390_PLTOFF32
	and BFD_RELOC_390_PLTOFF64.

2003-01-18  Jakub Jelinek  <jakub@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Handle
	R_IA64_TPREL64[LM]SB against non-global symbol properly.

2003-01-16  Jakub Jelinek  <jakub@redhat.com>

	* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add
	self_dtpmod_done and self_dtpmod_offset.
	(allocate_global_data_got): Only use one got entry for all
	dtpmod relocs against local symbols.
	(allocate_dynrel_entries): Only need .rela.got entry for
	dtpmod against global symbol.
	(elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset.
	Reserve space in .rela.got for the local dtpmod entry.
	(set_got_entry): Initialize the common local dtpmod .got entry.
	(elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB
	and R_IA_64_DTPREL64MSB.

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

	* elf64-ppc.c: Include elf/ppc64.h rather than elf/ppc.h.
	(R_PPC_*): Rename all occurrences to R_PPC64_*.
	(R_PPC64_ADDR30): Rename all occurrences to R_PPC64_REL30.
	(enum elf_ppc_reloc_type): Ditto to enum elf_ppc64_reloc_type.
	(ppc64_elf_gc_sweep_hook): Handle R_PPC64_REL30 along with other
	relative relocs, not with absolute ones.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2003-01-15  Andreas Schwab  <schwab@suse.de>

	* elf32-ppc.c (ppc_elf_check_relocs): Don't set DF_TEXTREL for a
	relocation against a non-allocated readonly section.

2003-01-10  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Adjust addend for GOT16_HA.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.  PLTGOT16_HA too.

2002-01-08  Klee Dienes  <kdienes@apple.com>

	* Makefile.am (ALL_MACHINES): Use cpu-msp430.lo, not cpu-msp430.c.
	(BFD32_BACKENDS): Use elf32-msp430.lo, not elf32-msp430.c.
	* Makefile.in: Regenerate.

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

	* elfn32-mips.c (prev_reloc_section): New.
	(GET_RELOC_ADDEND): Use it.  Parenthesize macro arguments.
	(SET_RELOC_ADDEND): Parenthesize macro argument.

2003-01-07  John David Anglin  <dave.anglin@nrc.gc.ca>

	* elf32-hppa.c (final_link_relocate): For all DP relative relocations,
	adjust addil instructions if the symbol has no section.

2003-01-07  DJ Delorie  <dj@redhat.com>

	* elf32-xstormy16.c (xstormy16_elf_howto_table): Make REL_12 not
	partial_inplace.

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

	* elf32-m68k.c (elf_m68k_check_relocs): Don't set DF_TEXTREL for
	PC relative relocations.
	(elf_m68k_discard_copies): Set it here instead.

2002-01-02  Ben Elliston  <bje@redhat.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* Makefile.am (ALL_MACHINES): Add cpu-iq2000.lo.
	(ALL_MACHINES_CFILES): Add cpu-iq2000.c.
	(BFD32_BACKENDS): Add elf32-iq2000.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-iq2000.c.
	(cpu-iq2000.lo): New target.
	* Makefile.in: Regenerate.
	* config.bfd: Handle iq2000-*-elf.
	* archures.c (bfd_architecture): Add bfd_{arch,mach}_iq2000.
	(bfd_archures_list): Add bfd_iq2000_arch.
	* configure.in: Handle bfd_elf32_iq2000_vec.
	* configure: Regenerate.
	* reloc.c: Add BFD_RELOC_IQ2000_OFFSET_16, BFD_RELOC_IQ2000_OFFSET_21,
	and BFD_RELOC_IQ2000_UHI16.
	* targets.c (bfd_elf32_iq2000_vec): Declare.
	(bfd_target_vector): Add bfd_elf32_iq2000_vec.
	* elf.c (prep_headers): Set e_machine to EM_IQ2000.
	* cpu-iq2000.c: New file.
	* elf32-iq2000.c: Likewise.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Likewise.

2003-01-02  Richard Sandiford  <rsandifo@redhat.com>

	* elfxx-mips.c: Include libiberty.h.
	(elf_mips_isa, _bfd_mips_elf_mach_extends_p): Remove.
	(mips_set_isa_flags): New function, split out from...
	(_bfd_mips_elf_final_write_processing): ...here.  Only call
	mips_set_isa_flags if the EF_MIPS_MACH bits are clear.
	(mips_mach_extensions): New array.
	(mips_32bit_flags_p): New function.
	(_bfd_mips_elf_merge_private_bfd_data): Rework architecture checks.
	Use mips_32bit_flags_p to check if one binary is 32-bit and the
	other is 64-bit.  When adopting IBFD's architecture, adopt the
	bfd_mach as well as the flags.

2003-01-02  Nick Kelsey  <nickk@ubicom.com>

	* elf32-ip2k.c: Re-work of linker relaxation code for the ip2k to
	fix internal errors, fix bad code generation, fix incorrect stabs
	information, and improve ability to eliminate redundant page
	instructions. Added code to ip2k_final_link_relocate to self-verify
	the linker relaxation.  Fix formatting problems.

2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mipsisa32r2 case.
	* archures.c (bfd_mach_mipsisa32r2): New define.
	* bfd-in2.h: Regenerate.
	* cpu-mips.c (I_mipsisa32r2): New enum value.
	(arch_info_struct): Add entry for I_mipsisa32r2.
	* elfxx-mips.c (elf_mips_isa, _bfd_elf_mips_mach)
	(_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_32R2.
	(_bfd_mips_elf_final_write_processing): Add
	bfd_mach_mipsisa32r2 case.
	(_bfd_mips_elf_merge_private_bfd_data): Handle merging of
	binaries marked as using MIPS32 Release 2.

2002-12-30    Dmitry Diky <diwil@mail.ru>

	* Makefile.am: Add msp430 target.
	* configure.in: Likewise.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* archures.c: Add msp430 architecture vector.
	* config.bfd: Likewise.
	* reloc.c: Add msp430 relocs.
	* targets.c: Add msp320 target.
	* cpu-msp430.c: New file: msp430 cpu detection.
	* elf32-msp430.c: New file: msp430 reloc processing.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

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

	* elf.c (elf_sort_sections): Don't reorder .tbss.
	(assign_file_positions_for_segments): Only adjust off/voff
	for increased alignment in PT_LOAD or PT_NOTE segment,
	but adjust p_filesz for .tbss too.  in PT_LOAD consider
	.tbss to have zero memory size.
	(copy_private_bfd_data) [SECTION_SIZE]: Define.
	[IS_CONTAINED_BY_VMA, IS_CONTAINED_BY_LMA]: Use it.
	[INCLUDE_SECTION_IN_SEGMENT]: Only put SHF_TLS sections
	into PT_TLS segment.  Never put SHF_TLS sections in
	segments other than PT_TLS or PT_LOAD.

	* elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Clear .plt
	sh_entsize.

2002-12-23  DJ Delorie  <dj@redhat.com>

	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Fix logic reversal.

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

	* elflink.h (elf_link_output_extsym): Heed strip_discarded.

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

	* archures.c (bfd_arch_get_compatible): Add third parameter
	'accept_unknowns'.  Only accept unknown format BFDs if
	accept_unknowns is true, or if the format is "binary".
	* bfd-in2.h: Regenerate.

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

	* coff-arm.c (coff_arm_relocate_section): Disable WINCE workaround
	that subtracted 8 from pc relative relocations.

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

	* coff-h8300.c: Fix comment typos.
	* coffcode.h: Likewise.
	* cpu-cris.c: Likewise.
	* elf32-vax.c: Likewise.
	* genlink.h: Likewise.
	* linker.c: Likewise.
	* som.c: Likewise.
	* tekhex.c: Likewise.
	* vms-misc.c: Likewise.

2002-12-20  DJ Delorie  <dj@redhat.com>

	* reloc.c: Add BFD_RELOC_XSTORMY16_12.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12.
	(xstormy16_reloc_map): Add R_XSTORMY16_12.

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

	* doc/bfdint.texi: Fix typos.

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.
	* config.in: 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.

	* bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
	dst_mask comments.
	* bfd-in2.h: Regenerate.

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

	* elf32-ppc.c (ppc_elf_relocate_section): Reorganize dynamic reloc
	code a little.  Comment on dynamic relocs against section symbols.

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-16  Andrew MacLeod  <amacleod@redhat.com>

	* elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_LO16
	and R_XSTORMY16_HI16) howto entries.
	(xstormy16_reloc_map): Map R_XSTORMY16_{LO,HI}16 to BFD_RELOC_{LO,HI}16.
	(xstormy16_info_to_howto_rela): Use R_XSTORMY16_GNU_VTINHERIT to
	determine the start of the second reloc table.

2002-12-16  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* ecofflink.c: Fix the reading of the debugging information
	of Tru64/Alpha binaries that are produced by recent Compaq
	compilers.
	(mk_fdrtab): Fix error in creating the FDR (file descriptor)
	table.
	(lookup_line): Because of the strange information sometimes
	generated by Compaq's recent compilers, change how the FDR
	table is searched so that PDRs (procedure descriptors) are
	correctly found.  Note that this change is really more of a hack;
	however, I have included extensive documentation as to why
	this is the best solution short of an extensive rewrite or
	another hack.
	(fdrtab_lookup): Add comments to explain the algorithm.

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

	* elf-m10300.c (elf32_mn10300_link_hash_newfunc): Reorder
	initializers to match struct declaration.

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

	* dwarf2.c (comp_unit_contains_address): Comment typo fix.
	* elf.c (get_program_header_size): Likewise.
	* elf32-m32r.c (m32r_elf_lo16_reloc): Likewise.
	(m32r_elf_generic_reloc): Likewise.
	* elf32-ppc.c (ppc_elf_howto_init): Likewise.
	* elflink.h (elf_bfd_discard_info): Likewise.

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

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Add output_offset
	to DT_JMPREL.  Use srelplt input section size for DT_PLTRELSZ and
	DT_RELSZ adjustment, not output section.  Avoid writing tags when
	unchanged.  Don't assume linker script is sane, adjust DT_REL too.
	* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Just use raw
	size of srelplt for DT_PLTRELSZ.  Use srelplt input section size for
	DT_RELASZ adjustment, not output section.  Avoid writing tags when
	unchanged.  Adjust DT_RELA.
	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Tweaks for better
	formatting.  Avoid writing tags when unchanged.  Adjust DT_RELA.

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

	* elfxx-mips.c (mips_elf_calculate_relocation): Don't divide
	addend by 4.

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

	* elfxx-mips.c (struct mips_got_entry): New.
	(struct mips_got_info): Added got_entries field.
	(mips_elf_got_entry_hash, mips_elf_got_entry_eq): New functions.
	(mips_elf_local_got_index, mips_elf_got_page,
	mips_elf_got16_entry): Re-implement in terms of new...
	(mips_elf_create_local_got_entry): Rewrite to use got_entries.
	Change return type.
	(mips_elf_highest): Warning clean-up.
	(mips_elf_create_got_section): Initialize got_entries.
	(_bfd_mips_elf_check_relocs): Use got_entries to estimate
	local got size.
	(_bfd_mips_elf_size_dynamic_sections): Do not account for
	GOT_PAGE entries, since we now reuse GOT16 entries.

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-08  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h: Comment typo fix.  Formatting.
	* bfd-in2.h: Regenerate.
	* coff64-rs6000.c (xcoff64_openr_next_archived_file): Warning fix.
	* elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): Prototype.
	* elf64-mmix.c (mmix_dump_bpo_gregs): Warning fix.

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

	* elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21BI.
	Only send PCREL21B though the plt.  Fix installed reloc type.
	(elfNN_ia64_relocate_section): Give error for dynamic reloc
	against PCREL22 or PCREL64I; clean up error messages for
	branch relocs.

2002-12-04  Kevin Buettner  <kevinb@redhat.com>

	* elf64-mips.c (elf64_mips_grok_prstatus, elf64_mips_grok_psinfo):
	New functions.
	(elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.

2002-12-04  David Mosberger  <davidm@hpl.hp.com>

	* cpu-ia64-opc.c: Add operand constant "ar.csd".

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

	* elfxx-ia64.c (get_local_sym_hash): Use section ID instead of
	BFD address when constructing local name.

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 (ppc64_elf_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-12-03  Nick Clifton  <nickc@redhat.com>

	* elf32-ppc.c (apuinfo_list_init): New function.
	(apuinfo_list_add): New function: Add a value to the list.
	(apuinfo_list_length): New function: Return the number of
	values on the list.
	(apuinfo_list_element): New function: Return a value on the
	list.
	(apuinfo_list_finish): New function: Free the resources used
	by the list.
	(ppc_elf_begin_write_processing): New function.  Scan the
	input bfds for apuinfo sections.
	(ppc_elf_write_section): New function: Delay the creation of
	the contents of an apuinfo section in an output bfd.
	(ppc_elf_final_write_processing): New function.  Create the
	contents of an apuinfo section in an output bfd.
	(elf_backend_begin_write_processing): Define.
	(elf_backend_final_write_processing): Define.
	(elf_backend_write_section): Define.

2002-12-03  Richard Henderson  <rth@redhat.com>

	* cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry.

2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	Fix PR savannah/1417:
	* elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Don't adjust
	branch if it goes to the start of the deleted region.

2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	* bfd-in2.h (bfd_mach_m6812): Rebuild.
	* archures.c (bfd_mach_m6812_default, bfd_mach_m6812,
	bfd_mach_m6812s): Declare.

	* elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function.
	(_bfd_m68hc12_elf_set_private_flags): Call it.
	(_bfd_m68hc12_elf_print_private_bfd_data): Report processor version.
	(_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and
	report microcontroller incompatibilities (HC12 vs HCS12).
	(elf_backend_object_p): Update.

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

	* bfd-in.h (TRUE_FALSE_ALREADY_DEFINED, BFD_TRUE_FALSE): Delete.
	(enum bfd_boolean, boolean): Delete.
	(bfd_boolean): Typedef to an int.
	(FALSE, TRUE): Define.
	* aix386-core.c, aix5ppc-core.c, aout-adobe.c, aout-arm.c, aout-cris.c,
	aout-encap.c, aout-ns32k.c, aout-target.h, aout-tic30.c, aoutf1.h,
	aoutx.h, archive.c, archive64.c, archures.c, bfd-in.h, bfd.c, bfdwin.c,
	binary.c, bout.c, cache.c, cisco-core.c, coff-a29k.c, coff-alpha.c,
	coff-apollo.c, coff-arm.c, coff-aux.c, coff-h8300.c, coff-h8500.c,
	coff-i386.c, coff-i860.c, coff-i960.c, coff-ia64.c, coff-m68k.c,
	coff-m88k.c, coff-mcore.c, coff-mips.c, coff-or32.c, coff-ppc.c,
	coff-rs6000.c, coff-sh.c, coff-sparc.c, coff-stgo32.c, coff-tic30.c,
	coff-tic4x.c, coff-tic54x.c, coff-tic80.c, coff-w65.c, coff-we32k.c,
	coff-z8k.c, coff64-rs6000.c, coffcode.h, coffgen.c, cofflink.c,
	corefile.c, cpu-a29k.c, cpu-alpha.c, cpu-arc.c, cpu-arm.c, cpu-avr.c,
	cpu-cris.c, cpu-d10v.c, cpu-d30v.c, cpu-dlx.c, cpu-fr30.c, cpu-frv.c,
	cpu-h8300.c, cpu-h8500.c, cpu-hppa.c, cpu-i370.c, cpu-i386.c,
	cpu-i860.c, cpu-i960.c, cpu-ia64.c, cpu-ip2k.c, cpu-m10200.c,
	cpu-m10300.c, cpu-m32r.c, cpu-m68hc11.c, cpu-m68hc12.c, cpu-m68k.c,
	cpu-m88k.c, cpu-mcore.c, cpu-mips.c, cpu-mmix.c, cpu-ns32k.c,
	cpu-openrisc.c, cpu-or32.c, cpu-pdp11.c, cpu-pj.c, cpu-powerpc.c,
	cpu-rs6000.c, cpu-s390.c, cpu-sh.c, cpu-sparc.c, cpu-tic30.c,
	cpu-tic4x.c, cpu-tic54x.c, cpu-tic80.c, cpu-v850.c, cpu-vax.c,
	cpu-w65.c, cpu-we32k.c, cpu-xstormy16.c, cpu-z8k.c, dwarf1.c,
	dwarf2.c, ecoff.c, ecofflink.c, efi-app-ia32.c, efi-app-ia64.c,
	elf-bfd.h, elf-eh-frame.c, elf-hppa.h, elf-m10200.c, elf-m10300.c,
	elf-strtab.c, elf.c, elf32-arc.c, elf32-arm.h, elf32-avr.c,
	elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c, elf32-fr30.c,
	elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c, elf32-hppa.h,
	elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
	elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
	elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
	elf32-pj.c, elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-sh64-com.c,
	elf32-sh64.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
	elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
	elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-ppc.h, elf64-s390.c,
	elf64-sh64.c, elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c,
	elfarm-oabi.c, elfcode.h, elfcore.h, elflink.c, elflink.h,
	elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c, elfxx-mips.h,
	elfxx-target.h, format.c, freebsd.h, genlink.h, hash.c, hp300hpux.c,
	hppabsd-core.c, hpux-core.c, i386aout.c, i386linux.c, i386lynx.c,
	i386mach3.c, i386msdos.c, i386os9k.c, ieee.c, ihex.c, irix-core.c,
	libaout.h, libbfd-in.h, libbfd.c, libcoff-in.h, libecoff.h, libieee.h,
	libnlm.h, liboasys.h, libpei.h, libxcoff.h, linker.c, lynx-core.c,
	m68klinux.c, m68klynx.c, mach-o.c, mach-o.h, merge.c, mipsbsd.c,
	mmo.c, netbsd-core.c, netbsd.h, nlm.c, nlm32-alpha.c, nlm32-i386.c,
	nlm32-ppc.c, nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c,
	pc532-mach.c, pdp11.c, pe-arm.c, pe-i386.c, pe-mcore.c, pe-mips.c,
	pe-sh.c, peXXigen.c, pef.c, pei-arm.c, pei-i386.c, pei-mcore.c,
	pei-mips.c, pei-sh.c, peicode.h, ppcboot.c, ptrace-core.c, reloc.c,
	reloc16.c, riscix.c, rs6000-core.c, sco5-core.c, section.c, simple.c,
	som.c, som.h, sparclinux.c, sparclynx.c, srec.c, stabs.c, sunos.c,
	syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c,
	vms-gsd.c, vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h,
	xcoff-target.h, xcofflink.c, xsym.c, xsym.h: Replace boolean with
	bfd_boolean, true with TRUE, false with FALSE.  Simplify comparisons
	of bfd_boolean vars with TRUE/FALSE.  Formatting.
	* bfd-in2.h, libbfd.h, libcoff.h: Regenerate

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

	* elf-bfd.h: Replace occurrences of Elf32_Internal_* and
	Elf64_Internal_* with Elf_Internal_*.  Replace Elf_Internal_Rel
	with Elf_Internal_Rela.
	* elf-hppa.h, elf-m10200.c, elf-m10300.c, elf32-arc.c, elf32-arm.h,
	elf32-avr.c, elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c,
	elf32-fr30.c, elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c,
	elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
	elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
	elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
	elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-v850.c, elf32-vax.c,
	elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
	elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
	elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c, elfarm-oabi.c,
	elfcode.h, elflink.h, elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c: Ditto.
	* elf-hppa.h (elf_hppa_internal_shdr): Delete.  Use Elf_Internal_Shdr
	throughout instead.
	* elf.c (_bfd_elf_no_info_to_howto_rel): Delete.
	* elfcode.h (elf_swap_reloca_in): Pass source operand as a bfd_byte *.
	Remove INLINE keyword.
	(elf_swap_reloc_in): Likewise.  Also clear r_addend.
	(elf_swap_reloc_out, elf_swap_reloca_out): Pass destination operand
	as a bfd_byte *.
	(elf_write_relocs): Consolidate REL and RELA code.
	(elf_slurp_reloc_table_from_section): Simplify REL code.
	(NAME(_bfd_elf,size_info)): Populate reloc swap entries.
	* elf-bfd.h (MAX_INT_RELS_PER_EXT_REL): Define.
	* elflink.h (elf_link_read_relocs_from_section): Consolidate REL and
	RELA code.
	(elf_link_adjust_relocs): Likewise.  Don't malloc space for temp
	reloc array, use a fixed size of MAX_INT_RELS_PER_EXT_REL.
	(elf_link_output_relocs): Likewise.
	(elf_reloc_link_order): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	(struct elf_link_sort_rela): Remove union.
	(elf_link_sort_cmp1): Update to suit.
	(elf_link_sort_cmp2): Here too.
	(elf_link_sort_relocs): Consolidate REL and RELA code.  Fix memory
	over-allocation for int_rels_per_ext_rel != 1 case.
	* elf32-arm.h: Update all bfd_elf32_swap_reloc_out calls.
	* elf32-i386.c: Likewise.
	* elf32-cris.c: Likewise for bfd_elf32_swap_reloca_out.
	* elf32-hppa.c, elf32-i370.c, elf32-m68k.c, elf32-ppc.c, elf32-s390.c,
	elf32-sh.c, elf32-vax.c, elfxx-mips.c: Likewise.
	* elf64-alpha.c: Likewise for bfd_elf64_swap_reloca_out.
	* elf64-hppa.c, elf64-mips.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
	elf64-sparc.c, elf64-x86-64.c: Likewise.
	* elfxx-ia64.c: Likewise for bfd_elfNN_swap_reloca_out.
	* elfxx-mips.c (sort_dynamic_relocs): Likewise for
	bfd_elf32_swap_reloc_in.

	* elf32-arm.h: Update elf32_arm_info_to_howto calls.
	* elf32-mips.c: Likewise for mips_info_to_howto_rel.
	(mips_elf64_swap_reloc_in): Zero r_addend.
	(mips_elf64_be_swap_reloc_in): Likewise.
	(mips_elf64_slurp_one_reloc_table): Simplify.

	* elf64-alpha.c (alpha_elf_size_info): Populate reloc swap entries.
	* elf64-hppa.c (hppa64_elf_size_info): Likewise.
	* elf64-sparc.c (sparc64_elf_size_info): Likewise.

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-11-26  Alan Modra  <amodra@bigpond.net.au>

	* elf-eh-frame.c (ENSURE_NO_RELOCS): Disregard R_*_NONE relocs.
	(_bfd_elf_discard_section_eh_frame): Don't discard duplicate CIEs
	on a relocatable link.  Comment typos.
	* elf.c (_bfd_elf_link_hash_newfunc): Assign elements of structure
	in the order they are declared.  Clear elf_hash_value too.
	(_bfd_elf_link_hash_table_init): Likewise assign in order.  Clear
	eh_info and tls_segment.
	* elflink.h (elf_link_input_bfd <emit_relocs>): Keep reloc offsets
	sorted when discarding relocs by turning them into R_*_NONE.

	* libbfd.c (warn_deprecated): Comment spelling.
	* po/SRC-POTFILES.in: Regenerate.

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-21  Alan Modra  <amodra@bigpond.net.au>

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

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

	* elf.c (_bfd_elf_link_hash_table_init): Make sure
	can_refcount is properly extended to the type of
	init_refcount.

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

	* elfxx-mips.c (MIPS_RELOC_RELA_P): New macro.
	(_bfd_mips_elf_relocate_section): Use it.

	* elfxx-mips.c (MNAME): New macro.
	(_bfd_mips_elf_check_relocs): Use it.
	(_bfd_mips_elf_discard_info): Likewise.
	(_bfd_mips_elf_final_link): Likewise.

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

	* elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
	rel_hdr.sh_size too.

2002-11-18  Klee Dienes  <kdienes@apple.com>

	* Makefile.am (BFD32_LIBS): Add bfdwin.lo, bfdio.lo.
	(BFD32_LIBS_CFILES): Add bfdwin.c, bfdio.c.
	(BFD_H_FILES): Add bfdwin.c, bfdio.c.
	(LIBBFD_H_FILES): Add bfdwin.c, bfdio.c.
	Add dependencies for bfdwin.c, bfdio.c.
	* bfd.c: Remove bfd_get_mtime, bfd_get_size.
	* libbfd.c: Remove real_read, bfd_bread, _bfd_window_internal,
	bfd_init_window, bfd_free_window, bfd_get_file_window, bfd_bwrite,
	bfd_tell, bfd_flush, bfd_stat, bfd_seek.
	* bfdio.c: New file.  Contains real_read, bfd_bread, bfd_write,
	bfd_tell, bfd_flush, bfd_stat, bfd_seek, bfd_ge_mtime,
	bfd_get_size (moved from libbfd.c and bfd.c).
	* bfdwin.c New file.  Contains _bfd_window_internal,
	bfd_init_window, bfd_free_window, bfd_get_file_window (moved from
	libbfd.c and bfd.c).
	* po/SRC-POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* aclocal.m4: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2002-11-18  Klee Dienes  <kdienes@apple.com>

	* bfd.c (bfd_preserve_save): Don't zero BFD_IN_MEMORY.

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-11-15  Klee Dienes  <kdienes@apple.com>

	* pef.c (bfd_pef_convert_architecture): Move declaration of
	ARCH_POWERPC and ARCH_M68K to the start of the function.

2002-11-14  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* coff-tic4x.c (tic4x_howto_table): Formatting fixup

2002-11-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (_bfd_mmix_finalize_linker_allocated_gregs):
	For bpo_gregs_section->contents, allocate _raw_size, not
	_cooked_size.

2002-11-13  Klee Dienes  <kdienes@apple.com>

	* config.bfd: Add entries for powerpc-*-darwin and cousins.

2002-11-13  H.J. Lu <hjl@gnu.org>

	* elfcode.h (elf_object_p): Don't restore abfd->arch_info.

2002-11-13  Klee Dienes  <kdienes@apple.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* bfd.c (struct bfd_preserve): New.
	(bfd_preserve_save): New function.
	(bfd_preserve_restore): Ditto.
	(bfd_preserve_finish): Ditto.
	* bfd-in2.h: Regenerate.
	* mach-o.c: Formatting.
	(bfd_mach_o_scan_read_symtab_symbol): Make "value" unsigned.
	(bfd_mach_o_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_mach_o_core_p): Ditto.
	(bfd_mach_o_scan): Pass in mdata.
	* mach-o.h (bfd_mach_o_scan): Update prototype.
	* pef.c: Formatting.
	(bfd_pef_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_pef_xlib_object_p): Ditto.
	(bfd_pef_scan): Pass in mdata.  Move version check to bfd_pef_object_p.
	* pef.h (bfd_pef_scan): Update prototype.
	* xsym.c: Formatting, K&R fixes.
	(bfd_sym_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_sym_scan): New function split out from bfd_sym_object_p.
	* xsym.h (bfd_sym_scan): Declare.
	* elfcode.h (elf_object_p): Use bfd_preserve_save/restore/finish.
	* elfcore.h (elf_core_file_p): Likewise.
	* targets.c (_bfd_target_vector): Revert 2002-11-08 change.

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

	* po/da.po: Updated Danish translation.

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

	* elflink.h (elf_link_add_object_symbols): Optimize stabs for
	relocatable link too.
	(elf_link_input_bfd): When emitting relocs, adjust offsets for
	eh_frame and stab sections.  Zap deleted relocs.
	(elf_reloc_symbol_deleted_p): Return true for zero r_symndx.
	(elf_bfd_discard_info): Run for relocatable link too.
	* elf64-ppc.c (ppc64_elf_edit_opd): Rename from edit_opd.  Make global.
	Handle ld -r case.
	(ppc64_elf_size_dynamic_sections): Don't call edit_opd from here.
	* elf64-ppc.h (ppc64_elf_edit_opd): Declare.

	* elf-bfd.h (struct cie_header): Move from elf_eh-frame.c.
	(struct cie, struct eh_cie_fde, struct eh_frame_sec_info): Likewise.
	(struct eh_frame_array_ent, struct eh_frame_hdr_info): Likewise.
	(enum elf_link_info_type): Remove ELF_INFO_TYPE_EH_FRAME_HDR.
	(struct eh_frame_hdr_info): Add "hdr_sec", remove "split".
	(struct elf_link_hash_table): Add eh_info.
	(struct elf_obj_tdata): Change eh_frame_hdr to an asection *.
	(_bfd_elf_discard_section_eh_frame): Update prototype.
	(_bfd_elf_discard_section_eh_frame_hdr): Likewise.
	(_bfd_elf_write_section_eh_frame): Likewise.
	(_bfd_elf_write_section_eh_frame_hdr): Likewise.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Remove "ehdrsec"
	param.  Get "hdr_info" from link hash table.
	(_bfd_elf_discard_section_eh_frame_hdr): Remove "sec" param.  Get
	header section from link hash table.  Save header section to elf_tdata.
	(_bfd_elf_maybe_strip_eh_frame_hdr): Remove local "sec".  Use
	header section from link hash table.  Don't alloc hdr_info.  Clear
	hdr_sec instead of setting "strip".
	(_bfd_elf_eh_frame_section_offset): Formatting.
	(_bfd_elf_write_section_eh_frame): Remove "ehdrsec", add "info" param.
	Get header section from link hash table.
	(_bfd_elf_write_section_eh_frame_hdr): Remove "sec", add "info" param.
	Get header section from link hash table.
	* elf.c (map_sections_to_segments): Use cached eh_frame_hdr.
	(get_program_header_size): Likewise.
	(_bfd_elf_section_offset): Formatting.
	* elflink.h (elf_link_create_dynamic_sections): Stash eh frame header
	section pointer in link hash table.
	(elf_bfd_final_link): Adjust _bfd_elf_write_section_eh_frame_hdr
	and _bfd_elf_write_section_eh_frame calls.  Update comment about
	eh_frame entries.
	(elf_bfd_discard_info): Adjust _bfd_elf_discard_section_eh_frame and
	_bfd_elf_discard_section_eh_frame_hdr calls.  Remove "ehdr".

	* po/SRC-POTFILES.in: Regenerate.

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't zero
	relocs for discarded FDEs.  Remove dead code.
	(_bfd_elf_write_section_eh_frame_hdr): Remove dead code.
	* elflink.h (elf_bfd_discard_info): Don't save edited relocs.
	Tidy conditions under which stabs are edited.  Formatting.
	* elf64-sparc.c (sparc64_elf_relocate_section): Ignore overflows
	from discarded relocs.
	* elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Add reloc output
	section adjustments after testing magic values.

2002-11-12  Thomas Moestl <tmm@FreeBSD.org>

	* elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): Correct
	references to large plt symbols.

2002-11-12  Klee Dienes  <kdienes@apple.com>

	* mach-o.c (bfd_mach_o_scan_read_thread): Don't re-use 'i' when
	looking for an unused section name.

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

	* coff-h8300.c: Fix formatting.
	* elf32-h8300.c: Likewise.
	* reloc16.c: Likewise.

2002-11-09  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* elf32-arm.h (elf32_arm_size_dynamic_sections): Don't strip output
	section when dynamic section unused;  _bfd_strip_section_from_output
	instead.

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

	* targets.c (_bfd_target_vector): Disable pef_vec, pef_xlib_vec
	and sym_vec.

	* dwarf2.c: Revert last change.

2002-11-07  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2.c (read_indirect_string, read_abbrevs,	decode_line_info,
	_bfd_dwarf2_find_nearest_line): Use
	bfd_simple_get_relocated_section_contents() instead of
	bfd_get_section_contents().
	* reloc.c (bfd_perform_relocation): Add sanity check.
	* simple.c (simple_get_relocated_section_contents): If the section
	does not have any relocs associated with it, just return the
	unadjusted contents.

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

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOT,
	case R_CRIS_32_GOT>: Correct test for filling in constant .got
	contents, enabling for a non-DSO, for symbols defined in the
	program with --export-dynamic.

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-07  Nick Clifton  <nickc@redhat.com>

	* po/da.po: Updated Danish translation.

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

	* elf64-mips.c (mips_elf64_slurp_one_reloc_table): Generate
	exactly three internal relocs per external reloc.  Set reloc_count
	to the external reloc count.

2002-11-06  Klee Dienes  <kdienes@apple.com>

	 * coff-stgo32.c (stub_bytes): Mark as const.
	 Fix comment formatting.

2002-11-06  Klee Dienes  <kdienes@apple.com>

	* Makefile.am (BFD32_BACKENDS): Add mach-o.lo, pef.lo, and
	xsym.lo.
	(BFD32_BACKENDS_CFILES): Add mach-o.c, pef.c, and xsym.c.
	(SOURCE_HFILES): Add mach-o.h, pef.h, pef-traceback.h, xsym.h
	* archures.c (enum bfd_architecture): Add bfd_arch_m98k.
	* bfd.c (struct bfd): Add private data for mach-o, pef, and sym.
	* targets.c (enum bfd_flavour): Add flavours for mach-o, pef, and
	sym.
	(_bfd_target_vector): Add target vectors for mach-o, pef, and sym.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* xsym.c: New file.  Contains support for the Apple/Metrowerks
	xSYM debugging format.
	* xsym.h: New file.
	* pef.c: New file.  Contains support for the Apple Code Fragment
	Manager Preferred Executable Format
	* pef.h: New file.
	* pef-traceback.h: New file.  Contains support for parsing PowerPC
	traceback tables as used by PEF executables (and perhaps other
	systems as well).
	* mach-o.c: New file.  Contains support for the Mach-O object file
	format.
	* mach-o.h: New file.
	* mach-o-target.c: New file.  Declares the mach-o targets
	themselves.  Included three times by mach-o.c; each time with a
	different set of macros set.

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

	* Makefile.am: Remove entries for elf32-qnx.[ch].
	* Makefile.in: Regenerate.
	* config.bfd: Change arm-nto to use bfd_elf32_{big|little}arm_vec,
	ppc-nto to use bfd_elf32_powerpc{le}_vec, sh-nto to use
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure.in: Remove support for bfd_elf32_sh{l}qnx_vec,
	bfd_elf32_powerpc{le}qnx_vec, bfd_elf32_{big|little}armqnx_vec,
	and bfd_elf32_i386qnx_vec, and removed elf32-qnx.lo from other targets.
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure: Regenerate.
	* elf32-qnx.c: Remove.
	* elf32-qnx.h: Remove.
	* elf.c: Remove calls to QNX specific set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf-bfd.h (struct elf_backend_data): Remove set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf32-i386.c: Remove QNX extended bfd support.
	* elf32-ppc.c: Remove QNX extended bfd support.
	* elf32-sh.c: Remove QNX extended bfd support.
	* elfarm-nabi.c: Remove QNX extended bfd support.
	* targets.c: Remove qnx vectors.
	* elfxx-target.h (elf_backend_set_nonloadable_filepos): Remove
	(elf_backend_is_contained_by_filepos): Remove.
	(elf_backend_copy_private_bfd_data_p): Remove.
	* po/SRC-POTFILES.in: Regenerate.

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  Alan Modra  <amodra@bigpond.net.au>

	* elf32-arm.h (t2a1_push_insn, t2a2_ldr_insn, t2a3_mov_insn,
	t2a4_bx_insn, t2a5_pop_insn, t2a6_bx_insn): Remove.

2002-11-05  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	    Alan Modra  <amodra@bigpond.net.au>

	* config.bfd (sh-*-linux*): Use bfd_elf*_sh64*lin_vec as sh64
	vectors in target_selvecs.
	(shle-*-netbsdelf*): Use bfd_elf*_sh64*nbsd_vec as sh64 vectors
	in target_selvecs.
	(sh-*-netbsdelf*): Likewise.
	* configure.in (assocvecs): New variable.  Handle assocvecs like
	selvecs.
	* configure: Regenerate.
	* format.c (bfd_check_format_matches): Store bfd_target pointers
	in matching_vector instead of target names.  Select first target
	from bfd_associated_vector that matches a list of ambiguous targets.
	* targets.c (_bfd_associated_vector): New array.
	(bfd_associated_vector): New variable.
	(_bfd_target_vector): Add bfd_elf*_sh64*lin_vec.
	* libbfd-in.h (bfd_associated_vector): Declare.
	* libbfd.h: Regenerate.

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-11-04  Alan Modra  <amodra@bigpond.net.au>
	    Hans-Peter Nilsson  <hp@axis.com>

	* elflink.h (struct elf_final_link_info): Add shndxbuf_size.
	(elf_bfd_final_link): Don't bother zeroing symtab_hdr fields.
	Set up a larger symshndxbuf, and write it out.  Free it on
	exit rather than freeing symbuf twice.  Correct section index
	on output section symbol loop.
	(elf_link_output_sym): Accumulate symbol extension section
	indices, reallocating symshndxbuf rather than writing it out.
	(elf_link_flush_output_syms): Don't flush symshndxbuf.
	* elf.c (assign_section_numbers): Init i_shdrp to all zero.
	Use bfd_zalloc to clear i_shdrp[0] too.

2002-11-03  Stephen Clarke <stephen.clarke@earthling.net>

	 * elf32-sh64-com.c (sh64_address_in_cranges): Use
	_raw_size of cranges section if _cooked_size not yet set.

2002-11-03  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-v850.c (v850_elf_relax_delete_bytes): Correct parameters
	for bfd_elf32_swap_symbol_out.

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>

	* coffcode.h: Remove extraneous '\'.

2002-10-28  H.J. Lu <hjl@gnu.org>

	* Makefile.am (targets.lo): Depend on Makefile instead of
	config.status.
	(archures.lo): Likewise.
	* Makefile.in: Regenerated.

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

	* config.bfd (mips*el-*-netbsd*, mips*-*-netbsd*): Add
	bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec to
	targ_selvecs.

2002-10-25  Jim Wilson  <wilson@redhat.com>

	* elf64-sh64.c (sh_elf64_relocate_section): Call
	_bfd_elf_rela_local_sym.  Handle relocs against STT_SECTION symbol
	of SHF_MERGE section.

2002-10-25  Hans-Peter Nilsson  <hp@axis.com>

	* simple.c: Correct placement of ATTRIBUTE_UNUSED.

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.
	* simple.c (simple_dummy_warning, simple_dummy_undefined_symbol,
	simple_dummy_reloc_overflow, simple_dummy_reloc_dangerous,
	simple_dummy_unattached_reloc,
	bfd_simple_get_relocated_section_contents): Add K&R declarations and
	function definitions.
	* 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-23 Ross Alexander <ross.alexander@uk.neceur.com>

	* elf64-hppa.c: Force DT_FLAGS to always be set.  Required by
	HPUX 11.00 patch PHSS_26559.

2002-10-22  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't move
	the options section into a separate section unless IRIX 6
	compatibility is enabled.

2002-10-22  Alexandre Oliva  <aoliva@redhat.com>

	* elflink.h (struct elf_link_sort_rela): Turn rel and rela
	into arrays.
	(elf_link_sort_cmp1, elf_link_sort_cmp2): Adjust.
	(elf_link_sort_relocs): Likewise.  Take int_rels_per_ext_rel
	into account.
	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Compose
	R_MIPS_REL32 with R_MIPS64 if ABI_64_P.

2002-10-21  Graeme Peterson  <gp@qnx.com>

	* targets.c (_bfd_target_vector): Add missing qnx vectors.

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

	* targets.c (bfd_target_list): Don't return the default target twice.

2002-10-21  Elias Athanasopoulos  <eathan@otenet.gr>

	* archive.c (_bfd_archive_bsd_update_armap_timestamp): Replace
	perror with bfd_perror.

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-19  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (elfcore_grok_note): Fix recognition on NT_PRXFPREG notes.

2002-10-17  Denis Chertykov  <denisc@overta.ru>

	* elf32-ip2k.c (ELF_MACHINE_ALT1): Define alternate machine code
	for ip2k port.

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

	* elfxx-target.h (USE_REL): Don't define as 1.
	* elf32-arm.h (USE_REL): Provide a default define of 0.
	Use #if rather than #ifdef when testing USE_REL.
	* elf32-m32r.c: Likewise.

	* elf32-arc.c (USE_REL): Define as 1.
	* elf32-d10v.c (USE_REL): Likewise.
	* elf32-m32r.c (USE_REL): Likewise.
	* elf32-m68hc11.c (USE_REL): Likewise.
	* elf32-m68hc12.c (USE_REL): Likewise.
	* elf32-or32.c (USE_REL): Likewise.
	* elfarm-nabi.c (USE_REL): Likewise.

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>

	* Makefile.am (BFD32_BACKENDS): Remove elfarmqnx-nabi.lo,
	elf32-i386-fbsd.lo, elf32-i386qnx.lo, elf32-ppcqnx.lo,
	elf32-sh-lin.lo, elf32-sh64-lin.lo, elf32-sh-nbsd.lo,
	elf32-sh64-nbsd.lo, elf32-shqnx.lo.  Add elf32-qnx.lo.
	(BFD32_BACKENDS_CFILES): Likewise for corresponding C files.
	(BFD64_BACKENDS): Remove elf64-sh64-lin.lo, elf64-sh64-nbsd.lo.
	(BFD64_BACKENDS_CFILES): Likewise for corresponding C files.
	(SOURCE_HFILES): Add elf32-qnx.h.
	(BUILD_HFILES): Add bfdver.h.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure.in Update bfd vector dependencies.
	* configure: Regenerate.
	* elf32-i386-fbsd.c: Delete.  Move code to elf32-i386.c.
	* elf32-i386qnx.c: Likewise.
	* elf32-ppcqnx.c: Delete.  Move code to elf32-ppc.c.
	* elf32-sh-nbsd.c: Delete.  Move code to elf32-sh.c.
	* elf32-sh-lin.c: Likewise.
	* elf32-shqnx.c: Likewise.
	* elf32-sh64-lin.c: Delete.  Move code to elf32-sh64.c.
	* elf32-sh64-nbsd.c: Likewise.
	* elf64-sh64-lin.c: Delete.  Move code to elf64-sh64.c.
	* elf64-sh64-nbsd.c: Likewise.
	* elfarmqnx-nabi.c: Delete.  Move code to elfarm-nabi.c.
	* elf32-arm.h (ELF_MAXPAGESIZE): Always define.
	* elf32-i386.c: Remove ELF_ARCH and ELF32_I386_C_INCLUDED tests.
	* elf32-ppc.c: Remove ELF32_PPC_C_INCLUDED tests.
	* elf32-qnx.h (elf_backend_set_nonloadable_filepos): Always define.
	(elf_backend_is_contained_by_filepos): Likewise.
	(elf_backend_copy_private_bfd_data_p): Likewise.
	Globalize and move functions to..
	* elf32-qnx.c: ..here.  New file.
	* elf32-sh.c: Remove ELF_ARCH and ELF32_SH_C_INCLUDED tests.  Don't
	emit target vectors when INCLUDE_SHMEDIA.
	* elf32-sh64.c: Remove ELF_ARCH test.  Move TARGET_* etc. defines to
	end of file.
	* elf64-sh64.c: Remove ELF_ARCH test.
	* elfarm-nabi.c: Remove ELFARM_NABI_C_INCLUDED test.
	* po/BLD-POTFILES.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

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.
	* elf32-ppcqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elf32-shqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elfarmqnx-nabi.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.

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

	* Makefile.am (BFD64_BACKENDS): Remove elf64-alpha-fbsd.
	(BFD64_BACKENDS_CFILES): Likewise.
	* configure.in (bfd_elf64_alpha_freebsd_vec): Use elf64-alpha.
	* elf64-alpha-fbsd.c: Remove file, move code ...
	* elf64-alpha.c: ... here.
	* Makefile.in, configure: Rebuild.

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

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

2002-10-14  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_link_hash_entry): Replace
	datalabel_got_offset with union of datalabel_got
	offset and refcount.
	(sh_elf_link_hash_newfunc): Initialize datalabel_got.refcount.
	(allocate_dynrelocs): Delete unnecessary code for
	STT_DATALABEL type.  Create entry in got for
	datalabel version of symbol if datalabel_got.refcount > 0.
	(sh_elf_relocate_section): Use datalabel_got union.
	(sh_elf_gc_sweep_hook): Pull common code to initialize
	h and eh out of switch statement.  Declare seen_stt_datalabel.
	Initialize it.  Decrement datalabel_got.refcount for
	got relocs when seen_stt_datalabel is true.
	Decrement local_got_refcounts entry for datalabel got relocs
	of local symbols.
	(sh_elf_copy_indirect_symbol): Copy datalabel_got field over.
	(sh_elf_check_relocs): Declare seen_stt_datalabel.
	Initialize it.  When seen_stt_datalabel is true, increment
	datalabel_got refcount rather than got.refcount.
	(sh_elf_finish_dynamic_symbol): Create relocs to
	initialize got entry for datalabel version of symbol.

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

	* Makefile.am: Run "make dep-am".
	(BFD_H_FILES): Remove version.h.
	* bfd-in.h (BFD_VERSION, BFD_VERSION_DATE, BFD_VERSION_STRING): Move..
	* version.h: ..to here.
	* configure.in (bfd_version_date): Remove.
	(AC_OUTPUT): Make bfdver.h from version.h.
	* bfd.c: #include "bfdver.h".
	* vms-hdr.c: Likewise.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

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

	* archures.c (bfd_mach_i386_i386, bfd_mach_i386_i8086,
	bfd_mach_i386_i386_intel_syntax, bfd_mach_x86_64,
	bfd_mach_x86_64_intel_syntax bfd_mach_ppc, bfd_mach_ppc64,
	bfd_mach_rs6k, bfd_mach_d10v, bfd_mach_sh, bfd_mach_v850,
	bfd_mach_arc_5, bfd_mach_arc_6, bfd_mach_arc_7, bfd_mach_arc_8,
	bfd_mach_m32r, bfd_mach_frv, bfd_mach_frvsimple,
	bfd_mach_ia64_elf64, bfd_mach_ia64_elf32,
	bfd_mach_ip2022, bfd_mach_ip2022ext,
	bfd_mach_s390_31, bfd_mach_s390_64, bfd_mach_xstormy16): Renumber.
	* bfd-in2.h: Regenerate.

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-13  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Take
	save_addend argument.  Don't apply the 32-bit mask to a
	GPREL32 value if it's to be used in another relocation.  Don't
	use forced-check computation of local_p to decide whether to
	add gp0 to GPREL16 value.  Don't use only the lowest 16 bits
	of the addend of a non-in-place GPREL16 relocation.
	(_bfd_mips_elf_relocate_section): Pass use_saved_addend_p to
	mips_elf_calculate_relocation().

2002-10-12  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_elf_relax_section): Don't treat relocs
	with symbols in other sections if we relaxed something;  the sections
	output offsets must be re-computed before.

2002-10-12  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_elf_relax_section): Update symbols
	handling to use Elf_Internal_Sym.
	(m68hc11_elf_relax_delete_bytes): Likewise.

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

	* elf32-sh.c (sh_elf_optimized_tls_reloc, sh_elf_mkobject,
	sh_elf_object_p, dtpoff_base): New functions.
	(sh_elf_howto_table): Add TLS relocs.
	(sh_reloc_map): Likewise.
	(sh_elf_info_to_howto): Support TLS relocs.
	(elf_sh_link_hash_entry): Add tls_type and tls_tpoff32.
	(sh_elf_hash_entry, sh_elf_tdata, sh_elf_local_got_tls_type):
	New macros.
	(sh_elf_obj_tdata): New.
	(elf_sh_link_hash_table): Add tls_ldm_got.
	(sh_elf_link_hash_table_create): Clear refcount of tls_ldm_got.
	(allocate_dynrelocs): Support TLS relocs.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Support TLS relocs.  Don't try to find
	.rela.got section when found already.  Return false after printing
	error about unresolvable relocation.
	(sh_elf_gc_sweep_hook): Support TLS relocs.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define for TLS case.
	* reloc.c: Add SH TLS relocs.
	* bfd-in2.h, libbfd.h: Regenerate.

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

	* Makefile.in: Regenerated.

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

	* Makefile.am: Run dep-am.
	(BFD_H_DEP): Add simple.c and linker.c.
	(BFD32_LIBS): Add simple.lo.
	(BFD32_LIBS_CFILES): Add simple.c.
	* Makefile.in: Regenerated.
	* bfd-in2.h: Regenerated.
	* simple.c: New file.

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-10  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le):
	Correct mistake in calculation of address of .got.
	* elf64-sh64.c (elf_sh64_pic_plt_entry_be,
	elf_sh64_pic_plt_entry_le): Likewise.

2002-10-09  Richard Shann <richard.shann@superh.com>
	    Stephen Clarke <stephen.clarke@superh.com>

	* Makefile.am: Add entries for elf32-sh64-lin.c and
	elf64-sh64-lin.c. Regenerate.
	* Makefile.in: Regenerate.
	* config.bfd:  Change sh64eb-*-linux* and sh64-*-linux*
	to use sh64 vectors rather than sh vectors.
	* configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
	bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.
	* configure: Regenerate.
	* elf32-sh64-lin.c: New file.
	* elf64-sh64-lin.c: New file.
	* targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
	bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.

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-08  Alan Modra  <amodra@bigpond.net.au>

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

2002-10-07  Mark Elbrecht  <snowball3@softhome.net>

	* cofflink.c (mark_relocs): Don't mark relocations in excluded
	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-10-06  Alan Modra  <amodra@bigpond.net.au>

	* opncls.c: Formatting.
	(_bfd_new_bfd): Use a smaller section hash table.

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-10-01  Jakub Jelinek  <jakub@redhat.com>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD
	sequence and its transitions.

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

	* elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32
	to st_value + addend in non-code sections.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve
	R_X86_64_DTPOFF32 to st_value + addend in non-code sections.

2002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
	    Ken Raeburn  <raeburn@cygnus.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Eric Christopher  <echristo@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* archures.c (bfd_mach_mips4120, bfd_mach_mips5400): New.
	(bfd_mach_mips5500): New.
	* cpu-mips.c (I_mips4120, I_mips5400, I_mips5500): New.
	(arch_info_struct): Add corresponding entries here.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_4120,
	E_MIPS_MACH_5400 and E_MIPS_MACH_5500.
	(_bfd_mips_elf_final_write_processing): Handle bfd_mach_mips4120,
	bfd_mach_mips5400 and bfd_mach_mips5500.
	(_bfd_mips_elf_mach_extends_p): New function.
	(_bfd_mips_elf_merge_private_bfd_data): Use it to help merge
	the EF_MIPS_MACH flags.
	* bfd-in2.h: Regenerate.

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

	* elf32-vax.c (elf_vax_size_dynamic_section): Don't strip
	.got sections.

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-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-27  Jakub Jelinek  <jakub@redhat.com>

	* reloc.c: Add x86-64 TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-x86-64.c (x86_64_elf_howto): Fix size fields for 32-bit
	relocs.  Add TLS relocs.
	(x86_64_reloc_map): Add TLS relocs.
	(elf64_x86_64_info_to_howto): Adjust for added TLS relocs.
	(struct elf64_x86_64_link_hash_entry): Add tls_type field.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE): Define.
	(elf64_x86_64_hash_entry): Define.
	(struct elf64_x86_64_obj_tdata): New.
	(elf64_x86_64_tdata, elf64_x86_64_local_got_tls_type): Define.
	(struct elf64_x86_64_link_hash_table): Add tls_ld_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf64_x86_64_link_hash_table_create): Initialize tls_ld_got.
	(elf64_x86_64_copy_indirect_symbol): Swap tls_type if necessary.
	(elf64_x86_64_mkobject): New.
	(elf64_x86_64_elf_object_p): Allocate struct elf64_x86_64_obj_tdata.
	(elf64_x86_64_tls_transition): New.
	(elf64_x86_64_check_relocs): Add r_type variable and use it.
	Handle TLS relocs.
	(elf64_x86_64_gc_sweep_hook): Handle TLS relocs.
	(allocate_dynrelocs): Allocate GOT space for TLS relocs.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(dtpoff_base, tpoff): New.
	(elf64_x86_64_relocate_section): Handle TLS relocs.
	(elf64_x86_64_finish_dynamic_symbol): Only handle non-TLS GOT
	entries.
	(bfd_elf64_mkobject): Define.

	* elf32-i386.c (elf_i386_check_relocs) [R_386_TLS_LE]: Set
	DF_STATIC_TLS if shared.

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

	* elfxx-mips.c (_bfd_mips_elf_fake_sections): Don't emit unneeded
	empty relocation sections.

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-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-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-23  Mark Elbrecht  <snowball3@softhome.net>

	* config.bfd: For DJGPP targets, match with any cpu and any machine.

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-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-21  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Allow ".sbss.*" and
	".sdata.*" for R_PPC_SDAREL16, ".sbss2*" and ".sdata2*" for
	R_PPC_EMB_SDA2REL.  Similarly for R_PPC_EMB_SDA21 and
	R_PPC_EMB_RELSDA.

	* elfcode.h (elf_slurp_reloc_table_from_section): Make "symcount"
	unsigned.  Move "symcount" assignment out of loop.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regnerate.

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>

	* 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-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-19  Nick Clifton  <nickc@redhat.com>

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

2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* ecoffswap.h (ecoff_swap_pdr_in) <isym, iline>: Update to
	correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1)
	on 64 bit machines.
	(ecoff_swap_sym_in) <iss>: Likewise.
	* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Fix error reading
	ECOFF information: 'ioptMax' refers to the actual *size*
	of the optimization symtab, not the number of entries.

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

	* elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update
	ELF_LINK_HASH_NEEDS_PLT logic.

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  Stan Cox <scox@redhat.com>

	* elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3.
	(mips_elf64_final_gp): Don't make up gp value.
	* elfn32-mips.c (mips_elf_final_gp): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_final_link): Always create
	.MIPS.options/.options section.

2002-09-17  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-17  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_relocate_section) [R_386_TLS_TPOFF32]: Negate
	addend.

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

	* elf64-alpha.c (alpha_elf_size_info): Make static.

2002-09-17  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* coff-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED.
	* cpu-tic4x.c: Ditto.

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

	* elf64-mips.c (define elf_backend_ignore_discarded_relocs): Remove
	duplicate define.

2002-09-16  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-12  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-12  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Fix handling of
	R_ARM_THM_PC11.

2002-09-11  Jeffrey Law  <law@redhat.com>

	* elf32-h8300.c (elf32_h8_relax_section): Fix typo.

2002-09-11  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-09-11  Nick Clifton  <nickc@redhat.com>

	* po/da.po: New Danish translation file.
	* configure.in (LINGUAS): Add 'da'.
	* configure: Regenerate.

2002-09-10  Michael Snyder  <msnyder@redhat.com>

	* irix-core.c (do_sections, do_sections64): New functions.
	(irix_core_core_file_p): Call new functions do_sections,
	do_sections64, depending on corefile (32-bit or 64-bit).

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

	* elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21M
	and PCREL21F like PCREL21B.

2002-09-04  Kevin Buettner  <kevinb@redhat.com>

	* config.bfd (mips*-*-irix6*): Add new ABI vectors.  Make n32 default
	vector.

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

	* elf32-v850.c (v850_elf_final_link_relocate): Use helpful
	names instead of cryptically overloaded bfd_reloc error
	codes.
	(v850_elf_relocate_section): Likewise.
	(v850_elf_relax_section): Replace caching of external symbols
	with caching of internal symbols obtained from calling
	bfd_elf_get_elf_syms().
	Fixup problems with freeing cached allocated memory blocks.

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

	* cpu-pj.c (scan_mach, compatible, arch_info_struct): Remove.
	(bfd_pj_arch): Use bfd_default_scan.
	* cpu-v850.c (scan): Remove.
	(N): Use bfd_default_scan.
	* cpu-z8k.c (scan_mach): Remove.
	(arch_info_struct, bfd_z8k_arch): Reorganize so that the default is
	first.  Use bfd_default_scan.

	* ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded
	bfd_mach constants.
	(ecoff_get_magic): Likewise.
	* elf32-v850.c (v850_elf_object_p): Likewise.
	(v850_elf_final_write_processing): Likewise.
	* mipsbsd.c (MY(set_arch_mach)): Likewise.
	(MY(write_object_contents)): Likewise.
	* coff64-rs6000.c (xcoff64_write_object_contents): Likewise.
	* coffcode.h (coff_write_object_contents): Likewise.
	(coff_set_arch_mach_hook): Add comment describing machine == 0.
	Remove unnecessary "machine" assignments.
	(coff_write_relocs): Test for the absolute section sym by testing
	section and flags.

	* aoutx.h (NAME(aout,machine_type)): Recognize bfd_mach_i386_i386
	and bfd_mach_i386_i386_intel_syntax.
	* pdp11.c (NAME(aout,machine_type)): Likewise.

2002-08-30  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-30  Alan Modra  <amodra@bigpond.net.au>

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

	* cpu-avr.c (compatible): Don't use hard-coded mach constants.
	* cpu-powerpc.c (powerpc_compatible): Likewise.
	* cpu-rs6000.c (rs6000_compatible): Likewise.

2002-08-28  Catherine Moore  <clm@redhat.com>

	* elf32-v850.c (v850_elf_reloc_map):  Add new relocs.
	(v850-elf-reloc): Don't resolve pc relative relocs.
	(v850_elf_ignore_reloc): New routine.
	(v850_elf_final_link_relocate): Handle new relocs.
	(v850_elf_relax_delete_bytes ): New routine.
	(v850_elf_relax_section): New routine.
	(bfd_elf32_bfd_relax_section): Define.
	(HOWTO): New entries for new relocs.
	* reloc.c (BFD_RELOC_V850_LONGCALL): New reloc.
	(BFD_RELOC_V850_LONGJUMP): New reloc.
	(BFD_RELOC_V850_ALIGN): New reloc.
	* archures.c: Remove redundant v850ea architecture.
	* cpu-v850.c: Remove redundant v850ea support.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerated.

2002-08-28  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.bfd: Add tic4x-*-*coff* and c4x-*-*coff* target.
	* configure.in: Add tic4x_coff vector files.
	* configure: Regenerate.
	* Makefile.am: Add tic4x target.
	* Makefile.in: Regenerate.

2002-08-27  Michael Hayes <m.hayes@elec.canterbury.ac.nz>

	* archures.c: Add the BFD arch type tic4x.
	* bfd-in.h: Add BFD_IN_MEMORY flag.
	* coff-tic4x.c: New file.
	* coffswap.h (coff_swap_sym_out): Add preadjuster.
	* cpu-tic4x.c: New file.
	* targets.c: Added tic4x- in list of xvecs.
	* ticoff.h: New file.
	* bfd-in2.h: Regenerate.

2002-08-27  Adam Nemet  <anemet@lnxw.com>

	* elf32-arm.h (elf32_arm_finish_dynamic_sections): Set the last
	bit of DT_INIT and DT_FINI for Thumb functions.

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

	* coffcode.h (coff_set_arch_mach_hook): Handle W65MAGIC.

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

	* aoutx.h (NAME(aout,reloc_type_lookup)): Handle BFD_RELOC_8.

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-23  Nick Clifton  <nickc@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Undo
	previous change.  Add comment explaining why.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy
	contents of .got.plt[2] to tr0, not address of .got.plt.
	(sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, set bottom bit
	of branch to plt0 as this is a branch to an shmedia instruction.
	* elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le):
	Copy contents of .got.plt[2] to tr0, not address of .got.plt.
	(elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to
	branch to plt0.
	(sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, branch to
	plt0 is now ptrel, so use relative offset.  Set bottom bit of
	branch target as it is a branch to an shmedia instruction.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>,
	    Richard Shann <richard.shann@superh.com>

	* elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT
	value if .init is an SHmedia function.  Similarly for DT_FINI.
	* elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize
	dynamic section.
	* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.

2002-08-22  Kaz Kojima <kkojima@rr.iij4u.or.jp>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use a simple
	byte read when reading the return address register column.

2002-08-22  Nick Clifton  <nickc@redhat.com>

	* config.bfd: Add powepc64-*-*bsd* target.

2002-08-22  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Add entries for elf32-shqnx.c
	* Makefile.in: Regenerate.
	* config.bfd: Add support sh-*-nto* target.
	* configure.in: Add support for bfd_elf32_sh{l}qnx_vec.
	* configure: Regenerate.
	* elf32-qnx.h: Changed typo "elf_i386qnx_*" to "elf_qnx_*" .
	* elf32-sh.c: Do not include elf32-target.h if
	ELF32_SH_C_INCLUDED is defined.
	* elf32-shqnx.c: New file: Support for QNX.
	* targets.c: Add bfd_elf32_sh{l}qnx_vec.

2002-08-22  Nick Clifton  <nickc@redhat.com>

	* po/tr.po: Updated Turkish translation.

	* syms.c (_bfd_generic_read_minisymbols): Set bfd_error if the
	symbols are not read.

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

	* elf32-m68hc11.c: Formatting fixes.
	(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.
	* elf32-m68hc12.c: Formatting fixes.
	(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.

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

	* coff-rs6000.c (rs6000coff_vec <object_flags>): Add SEC_CODE and
	SEC_DATA.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.

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

	* 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-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Add PARAMS to
	argument declaration.

2002-08-19  Elena Zannoni <ezannoni@redhat.com>

	* archures.c (bfd_mach_ppc_e500): Added.
	* bfd-in2.h: Rebuilt.
	* cpu-powerpc.c (bfd_powerpc_archs): Added e500.

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

	* elf32-m68hc12.c (elf_backend_can_gc_sections): False.

2002-08-17  Andrew Cagney  <ac131313@redhat.com>

	* elf.c (bfd_elf_get_elf_syms): Change type of `esym' to
	`bfd_byte'.

2002-08-17  Stan Cox  <scox@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Use the
	IRIX 6 segment layout for NEWABI.

2002-08-16  Stephen Clarke <stephen.clarke@superh.com>

	* bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
	symbols when looking for section referred to by a relocation.
	* bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.

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

	* elf32-i370.c: Move reloc enum to include/elf/i370.h.

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-14  H.J. Lu <hjl@gnu.org>

	* libbfd.h: Regenerate.

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

	* config.bfd: Always add 64bit vectors to 32bit Linux/mips.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_relax_group): New to relax group of
	instructions.
	(m68hc11_direct_relax): New to define table of relaxable instructions.
	(find_relaxable_insn): New, find a relaxable insn.
	(compare_reloc): New to compare two relocs.
	(m68hc11_elf_relax_section): New, relax text sections.
	(m68hc11_elf_relax_delete_bytes): New, delete bytes and adjust branchs.
	(elf32_m68hc11_check_relocs): New function for GC support.
	(elf32_m68hc11_relocate_section): New function for GC support.
	(bfd_elf32_bfd_relax_section): Define to support linker relaxation.
	(elf_backend_check_relocs): Likewise.
	(elf_backend_relocate_section): 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-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (elf32_m68hc11_gc_mark_hook): New for section GC.
	(elf32_m68hc11_gc_sweep_hook): Likewise.
	(elf_backend_gc_mark_hook): Define for GC section support.
	(elf_backend_gc_sweep_hook): Likewise.
	(elf_backend_can_gc_sections): Likewise.

	* elf32-m68hc12.c: Likewise.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (_bfd_m68hc11_elf_print_private_bfd_data): New.
	(_bfd_m68hc11_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc11_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC11.

	* elf32-m68hc12.c (_bfd_m68hc12_elf_print_private_bfd_data): New.
	(_bfd_m68hc12_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc12_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC12.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (elf_m68hc11_howto_table): Add the new relocs;
	fix masks for PC-rel relocs.
	(m68hc11_elf_ignore_reloc): New function.

	* elf32-m68hc12.c (m68hc12_elf_special_reloc): New to handle specific
	68HC12 banked addressing relocs.
	(m68hc12_phys_addr): New to compute physical address of banked memory.
	(m68hc12_phys_page): Likewise for page.
	(m68hc12_addr_is_banked): New to see if address is in banked area.
	(elf_m68hc12_howto_table): Add new relocs and rename to xx12.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* reloc.c (BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP,
	BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE,
	BFD_RELOC_M68HC11_24): New relocs for 68HC11/68HC12.
	* bfd-in2.h: Regenerate.

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

	* elflink.h (elf_add_default_symbol): Preserve section across
	elf_merge_symbol.

2002-08-09  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Add entries for elf32-ppcqnx.c, and add
	elf32-qnx.h dependency to elfarmqnx-nabi.c and elf32-i386qnx.c.
	* Makefile.in: Regenerate.
	* config.bfd: Add support for powerpc{le}-*-nto targets.
	* configure.in: Add support for bfd_elf32_powerpc{le}qnx_vec.
	* configure: Regenerate.
	* elf32-i386qnx.c: Moved backend functions into a QNX specific
	common file "elf32-qnx.h", and now include that file.
	* elf32-qnx.h: New file: QNX specific common elf backend.
	* elf32-ppc.c: Do not include elf32-target.h if
	ELF32_PPC_C_INCLUDED is defined.
	* elf32-ppcqnx.c: New file: Support for QNX.
	* elfarmqnx-nabi.c: Include elf32-qnx.h for qnx elf backend.
	* targets.c: Add bfd_elf32_powerpc{le}qnx_vec.

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

	* po/sv.po: Updated Swedish translation.

2002-08-09  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-08  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_add_default_symbol): Don't warn if a definition
	overrides an indirect versioned symbol.

2002-08-08  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  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-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-07  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (edit_opd): Arrange to drop symbols for discarded .opd
	entries.

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

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Cast signedness
	mismatch.

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

	* elfxx-mips.c (ABI_64_P): Remove superfluous check.

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

	* elf32-mips.c (mips_reloc_map): Fix typo.

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  Alan Modra  <amodra@bigpond.net.au>

	* libxcoff.h: Use PARAMS on function declarations.
	* coff-rs6000.c (xcoff_generate_rtinit): Simplify size calc.
	* coff64-rs6000.c (xcoff64_generate_rtinit): Likewise.

	* 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: 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_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-08-01  Denis Chertykov  <denisc@overta.ru>

	* elf32-ip2k.c: Processor manufacturer changed to Ubicom.
	(struct misc): New field isymbuf. All free_* fields removed.
	(symbol_value): Pass in internal syms. No need to swap syms in.
	(ip2k_elf_relax_section): Use bfd_elf_get_elf_syms. Properly free
	possibly cached info.
	(tidyup_after_error): Removed.
	(ip2k_elf_relax_section_pass1): Don't use removed fields of struct
	misc. Use new field.
	(adjust_all_relocations): Use internal syms. No need to swap syms
	in and out.
	(add_page_insn): Don't use removed fields of struct misc.

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

	* elf32-arm.h: Revert previous delta.

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

	* configure.in (AM_INIT_AUTOMAKE): Bump version number.
	* configure: Regenerate.

2002-07-31  H.J. Lu <hjl@gnu.org>

	* config.bfd: Add x86-64 vector to Linux/i386 if 64bit BFD is
	selected.

2002-07-31  H.J. Lu <hjl@gnu.org>

	* config.bfd: Add n32 vectors to 32bit Linux/mips if 64bit BFD
	is selected.

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-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* cpu-ns32k.c (_bfd_ns32k_put_immdeiate, _bfd_ns32k_get_immediate):
	There is no 8 byte relocation type for this architecture.
	(do_ns32k_reloc): Use bfd_vma instead of native types.
	(bfd_ns32k_put_immediate, _bfd_ns32k_relocate_contents) put_data
	returns void.
	(_bfd_ns32k_put_displacement): Don't check for overflow. We can
	rely on generic code to do that.
	* aout-ns32k.c (howto_table): Add appropriate overflow detection
	to all table entries.
	(_bfd_ns32k_relocate_contents): put_data returns void.
	* ns32k.h: (_bfd_ns32k_put_displacement, _bfd_ns32k_put_immediate)
	(_bfd_do_ns32k_reloc_contents): Fix prototypes. put data functions
	return void.

2002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* aoutx.h (aout_link_check_ar_symbols): Whether to include an
	archive object is target dependant.

2002-07-31  Adam Nemet  <anemet@lnxw.com>

	* elf32-arm.h (ARM_PLT_ENTRY_SIZE): Rename PLT_ENTRY_SIZE.
	(THUMB_PLT_ENTRY_SIZE): New macro.
	(PLT_ENTRY_SIZE): Return the appropriate *_PLT_ENTRY_SIZE.
	(elf32_arm_plt0_entry): Rename PLT_ENTRY_SIZE to
	ARM_PLT_ENTRY_SIZE.
	(elf32_arm_plt_entry): Likewise.
	(elf_backend_plt_header_size): Likewise.
	(elf32_thumb_plt0_entry): New global.
	(elf32_arm_finish_dynamic_sections): Use it.  Put Thumb entries
	into .plt.thumb.
	(elf32_thumb_plt_entry): New global.
	(elf32_arm_finish_dynamic_symbol): Use it.  Use .thumb.plt for
	Thumb entries.  Set the bottom bit of the corresponding GOT entry
	for a Thumb PLT entry.
	(struct elf32_arm_plt_entry_info): New structure.
	(struct elf32_arm_link_hash_entry, plt_info): New member of this
	type.
	(elf32_arm_link_hash_newfunc): Initialize new member.
	(elf32_arm_final_link_relocate, R_ARM_THM_PC22 case): Handle
	relocations against the PLT.
	(elf32_arm_check_relocs, case R_ARM_PLT32 case): Set
	first_rel_type if this is the first time we encounter the symbol.
	(elf32_arm_check_relocs, case R_ARM_THM_PC22 case): New case.
	Determine if relocation needs a PLT entry.  Set first_rel_type if
	this is the first time we encounter the symbol
	(elf32_arm_adjust_dynamic_symbol): Create PLT entries for Thumb
	functions as well.
	(elf32_arm_size_dynamic_sections): Handle .plt.thumb like .plt.
	(elf32_arm_create_dynamic_sections): New function.  Create the
	.plt.thumb section.
	(elf_backend_create_dynamic_sections): Call it.

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-31  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* Makefile.am: Add n32 ABI support.
	* Makefile.in: Regenerate.
	* config.bfd: Add n32 vectors to mips64*-*-linux* targets. Treat 64
	bit vectors for mips*-*-linux targets as optional.
	* configure.in: Add n32 ABI vectors.
	* configure: Regenerate.
	* elf32-mips.c (mips_elf32_object_p): Reject n32 ABI files.
	* elfn32-mips.c: New file, n32 ABI support.
	* targets.c: Add n32 ABI vectors.

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

	* elfarmqnx-nabi.c: New file: Support for QNX.
	* config.bfd: Add support for arm-*-nto target.
	* configure.in: Add support for bfd_elf32_{big|little}armqnx_vec.
	* configure: Regenerate.
	* Makefile.am: Add entries for elfarmqnx-nabi.c.
	* Makefile.in: Regenerate.
	* elf32-arm.h (ELF_MAXPAGESIZE): Do not define if already defined.
	Do not define global function if ELFARM_NABI_C_INCLUDED is defined.
	* elfarm-nabi.c: Do not include elf32-arm.h if
	ELFARM_NABI_C_INCLUDED is defined.
	* targets.c: Add bfd_elf32_{big|little}armqnx_vec.

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-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-30  Alan Modra  <amodra@bigpond.net.au>

	* elfxx-ia64.c (elfNN_ia64_final_write_processing): Set e_flags.

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-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  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf64-mips.c: Update TODO comment.
	(mips_elf64_higher_reloc,mips_elf64_highest_reloc,
	mips_elf64_gprel16_reloca): Remove prototypes.
	(mips16_jump_reloc,mips16_gprel_reloc): Add functions.
	(UNUSED_RELOC): Replace by EMPTY_RELOC.
	(mips_elf64_howto_table_rel): Use special R_MIPS_HI16 handling. Remove
	wrong comments. Remove disfunctional support of R_MIPS_HIGHER and
	R_MIPS_HIGHEST.
	(mips_elf64_howto_table_rela): Fix handling of R_MIPS_GPREL16 and
	R_MIPS_GOT16. Remove wrong comments.
	(elf_mips16_jump_howto,elf_mips16_gprel_howto,
	elf_mips_gnu_vtinherit_howto,elf_mips_gnu_vtentry_howto): New, code
	from elf32-mips.c.
	(mips_elf64_hi16_reloc): Fix formatting.
	(mips_elf64_higher_reloc,mips_elf64_highest_reloc): Remove.
	(mips_elf64_got16_reloc): Fix formatting. Remove superfluous code.
	Better comment. Fall back to R_MIPS_GOT_DISP instead of abort().
	(mips_elf64_gprel16_reloc): Make static. Add check for
	partial_inplace.
	(mips_elf64_gprel16_reloca): Remove.
	(mips_elf64_literal_reloc): New function.
	(mips_elf64_gprel32_reloc): Fix formatting.
	(mips_elf64_shift6_reloc): Fix comment. Make static.
	(mips16_jump_reloc,mips16_gprel_reloc): New functions, code from
	elf32-mips.c.
	(elf_reloc_map,mips_reloc_map): New mapping table, similiar as in
	elf32-mips.c
	(bfd_elf64_bfd_reloc_type_lookup): Use the mapping table. Enable GNU
	specific relocations.
	(mips_elf64_rtype_to_howto): Enable GNU specific relocations.
	(mips_elf64_object_p): Invert logic to check for SGI-ish ABI.
	(ELF_MAXPAGESIZE): Add comment.

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-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-24  Nick Clifton  <nickc@redhat.com>

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

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

	* po/SRC-POTFILES.in: Regenerate.

	* elf-hppa.h (elf_hppa_relocate_section): If relocatable, return
	immediately.  Remove code handling relocatable linking.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-fr30.c (elf32_frv_relocate_section): Likewise.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf32-avr.c (elf_backend_rela_normal): Define.
	* elf32-cris.c: Likewise.
	* elf32-fr30.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-h8300.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-sparc.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elf32-fr30.c (elf32_frv_relocate_section): Edit comment.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf-m10200.c (USE_RELA): Don't define.
	* elf-m10300.c: Likewise.
	* elfarm-oabi.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-mcore.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elf32-avr.c (USE_REL): Don't undef.
	* elf32-ip2k.c: Likewise.

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.
	Minor formatting tidy ups.

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

	* po/fr.po: Updated French translation.
	* po/sv.po: Updated 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  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (_bfd_mips_elf_discard_info): New function, code from
	elf32-mips.c.
	(_bfd_mips_elf_write_section): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_discard_info): New prototype.
	(_bfd_mips_elf_write_section): Likewise.
	* elf32-mips.c (elf32_mips_discard_info): Move to elfxx-mips.c.
	(elf32_mips_write_section): Likewise.
	* elf64-mips.c (_bfd_mips_elf_ignore_discarded_relocs): Use it.
	(_bfd_mips_elf_write_section): Likewise.

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-17  H.J. Lu <hjl@gnu.org>

	* Makefile.am: Fix a typo.
	* Makefile.in: Regenerate.

2002-07-15  Denis Chertykov  <denisc@overta.ru>
	    Frank Ch. Eigler  <fche@redhat.com>
	    Ben Elliston  <bje@redhat.com>
	    Alan Lehotsky  <alehotsky@cygnus.com>
	    John Healy  <jhealy@redhat.com>
	    Graham Stott  <grahams@redhat.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* Makefile.am: Add support for ip2k.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* archures.c: Add support for ip2k.
	* config.bfd: Add support for ip2k.
	* configure.in: Add support for ip2k.
	* configure: Regenerate.
	* reloc.c: Add support for ip2k.
	* targets.c: Add support for ip2k.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* cpu-ip2k.c: New file.
	* elf32-ip2k.c: New file.

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  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: Formatting fixes, tidy prototypes.
	(elf_link_assign_sym_version): Move common code out of loop.

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.

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

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

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

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