2004-12-31  Paul Brook  <paul@copdesourcery.com>

	* elf32-arm.c (elf32_arm_symbian_plt_entry): Fix comment typo.

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

	* reloc.c (BFD_RELOC_AVR_LDI, BFD_RELOC_AVR_6, BFD_RELOC_AVR_6_ADIW):
	Commit missing changes from 2004-12-22.
	* bfd-in2.h: Regenerate.

2004-12-23  Tomer Levi  <Tomer.Levi@nsc.com>

	* elf32-crx.c (elf32_crx_relax_section): Support 'bcop' relaxation.

2004-12-21  Kris Warkentin  <kewarken@qnx.com>

	* elf.c (elfcore_grok_nto_gregs): Change name to elfcore_grok_nto_regs.
	Add 'base' argument for constructing register sections.  Reformat.
	(elfcore_grok_nto_note): Call elfcore_grok_nto_regs for both
	gp and fp regs.  Reformat.

2004-12-22  Klaus Rudolph  <lts-rudolph@gmx.de>

	* reloc.c: Add new relocs R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW.
	* bfd-in2.h: Regenerate.
	* elf32-avr.c (elf_avr_nowto_table): Add the new relocs.
	(avr_reloc_map): Likewise.
	(avr_final_link_relocate): Likewise.

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

	* elflink.c (_bfd_elf_merge_symbol): Treat old definitions from
	as-needed dynamic libs as undefined.
	(elf_link_add_object_symbols): Remove DYN_AS_NEEDED from as-needed
	libs when finding they are needed.

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

	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add opd_relocs.
	(opd_entry_value): Use opd_relocs if available.
	(ppc64_elf_relocate_section): Don't set reloc_done.  Instead
	copy .opd relocations to opd_relocs.
	(ppc64_elf_edit_toc): Set rel_hdr.sh_size after editing relocs.

2004-12-16  Richard Sandiford  <rsandifo@redhat.com>

	* reloc.c (BFD_RELOC_V850_LO16_SPLIT_OFFSET): New bfd_reloc_code_type.
	* elf32-v850.c (v850_elf_howto_table): Add entry for
	R_V850_LO16_SPLIT_OFFSET.
	(v850_elf_reloc_map): Map it to BFD_RELOC_V850_LO16_SPLIT_OFFSET.
	(v850_elf_perform_lo16_relocation): New function, extracted from...
	(v850_elf_perform_relocation): ...here.  Use it to handle
	R_V850_LO16_SPLIT_OFFSET.
	(v850_elf_check_relocs, v850_elf_final_link_relocate): Handle
	R_V850_LO16_SPLIT_OFFSET.
	* libbfd.h, bfd-in2.h: Regenerate.

2004-12-14  P.J. Darcy  <darcypj@us.ibm.com>

	* config.bfd: Add s390x-ibm-tpf support.

2004-12-14  Tomer Levi  <Tomer.Levi@nsc.com>

	* elf32-crx.c (elf32_crx_relax_delete_bytes): Add 'struct bfd_link_info *'
	to prototype, to make hash info available.
	Prevent wrapped symbols from being adjusted twice.

2004-12-14  Richard Sandiford  <rsandifo@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Don't report an
	overflow for calls to undefined weak symbols.

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

	* elfcode.h (elf_slurp_symbol_table): Use bfd_elf_sym_name so that
	canonical sections syms have a name.

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

	* elf64-ppc.c (opd_entry_value): Don't use cached relocs if they
	have been adjusted for output.
	(ppc64_elf_relocate_section): Mark sections with reloc_done.

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

	* elf.c (bfd_elf_sym_name): Rename from bfd_elf_local_sym_name and
	add symtab_hdr param.
	(group_signature): Update calls.
	* elf-bfd.h (bfd_elf_sym_name): Update.
	* elf32-ppc.c (ppc_elf_relocate_section): Update.
	* elf64-ppc.c (ppc64_elf_edit_opd, ppc64_elf_edit_toc): Update.
	(ppc64_elf_relocate_section): Update.
	* elflink.c (elf_link_input_bfd): Update.

2004-12-10  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (bfd_elf_local_sym_name): Avoid crashes with invalid
	st_shndx on STT_SECTION sections.

2004-12-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfcode.h (elf_slurp_reloc_table_from_section): Don't canonicalize
	ELF section symbols.

2004-12-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): For R_MIPS_JALR,
	return a real value, unless it is a PLT symbol.
	(mips_elf_perform_relocation): On the RM9000, turn a jal into a
	bal if possible.

	* elfn32-mips.c (elf_mips_howto_table_rela): Change dst_mask of
	R_MIPS_JALR entry to 0.

	* archures.c: Define bfd_mach_mips9000.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_9000.
	(mips_set_isa_flags): Handle bfd_mach_mips9000.
	* cpu-mips.c (I_mips9000): Define.
	(arch_info_struct): Add case for bfd_mach_mips9000.
	* aoutx.h (NAME(aout,machine_type)): Handle bfd_mach_mips9000.
	* bfd-in2.h: Regenerate.

2004-12-08  Ian Lance Taylor  <ian@wasabisystems.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Test for R_MIPS_26
	overflow.

2004-12-07  Ben Elliston  <bje@gnu.org>

	* netbsd-core.c (netbsd_core_file_p): Make `i' unsigned.

2004-12-06  Daniel Jacobowitz  <dan@debian.org>

	Suggested by Fergal Daly <fergal@esatclear.ie>:
	* simple.c (simple_dummy_multiple_definition): New function.
	(bfd_simple_get_relocated_section_contents): Use it.

2004-12-03  Jan Beulich  <jbeulich@novell.com>

	* elf.c (elf_find_function): Don't use the last file symbol ever,
	seen, but the last one seen prior to the symbol being reported.
	Don't report a filename at all for global symbols when that might
	be ambiguous/wrong.

2004-12-01  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_copy_private_bfd_data): Set EI_OSABI.
	(elf32_arm_post_process_headers): Set EI_OSABI depending on ABI
	version.

2004-12-01  Paul Brook  <paul@codesourcery.com>

	* elflink.c (elf_link_add_object_symbols): Make symbols from discarded
	sections undefined.

2004-11-30  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (struct elf32_arm_link_hash_table): Remove
	no_pipeline_knowledge
	(elf32_arm_link_hash_table_create): Ditto.
	(bfd_elf32_arm_process_before_allocation): Ditto.
	(elf32_arm_final_link_relocate): Ditto.  Remove oabi relocation
	handling.
	* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
	prototype.
	* bfd-in2.h: Regenerate.

2004-11-30  Randolph Chung  <tausq@debian.org>

	* elf32-hppa.c (elf32_hppa_grok_prstatus): New function.
	(elf32_hppa_grok_psinfo): New function.
	(elf_backend_grok_prstatus): Define.
	(elf_backend_grok_psinfo): Define.

2004-11-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR 574:
	* elfcode.h (elf_slurp_symbol_table): Handle STT_TLS.

2004-11-24  Paul Brook  <paul@codesourcery.com>

	* elf.c (assign_section_numbers): Number SHT_GROUP sections first.

2004-11-24  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_swap_symbol_in): New function.
	(elf32_arm_swap_symbol_out): New function.
	(elf32_arm_size_info): Add.
	(elf_backend_size_info): Define.

2004-11-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hpux-core.c (hpux_core_core_file_p): Use offsetof macro in calls to
	make_bfd_asection.

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

	* elf32-arm.c (elf32_arm_finish_dynamic_sections): Warning fix.
	* elf32-iq2000.c (iq2000_reloc_type_lookup): C90 function decl.
	* nlmcode.h (nlm_write_object_contents): Warning fix.

2004-11-18  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (ebb_propose_action): Fix argument order.

2004-11-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (PLT_THUMB_STUB_SIZE): Define.
	(elf32_arm_plt_thumb_stub): New.
	(struct elf32_arm_link_hash_entry): Add plt_thumb_refcount
	and plt_got_offset.
	(elf32_arm_link_hash_traverse): Fix typo.
	(elf32_arm_link_hash_table): Add obfd.
	(elf32_arm_link_hash_newfunc): Initialize new fields.
	(elf32_arm_copy_indirect_symbol): Copy plt_thumb_refcount.
	(elf32_arm_link_hash_table_create): Initialize obfd.
	(record_arm_to_thumb_glue): Mark the glue as a local ARM function.
	(record_thumb_to_arm_glue): Mark the glue as a local Thumb function.
	(bfd_elf32_arm_get_bfd_for_interworking): Verify that the
	interworking BFD is not dynamic.
	(bfd_elf32_arm_process_before_allocation): Handle R_ARM_PLT32.  Do
	not emit glue for PLT references.
	(elf32_arm_final_link_relocate): Handle Thumb functions.  Do not
	emit glue for PLT references.  Support the Thumb PLT prefix.
	(elf32_arm_gc_sweep_hook): Handle R_ARM_THM_PC22 and
	plt_thumb_refcount.
	(elf32_arm_check_relocs): Likewise.
	(elf32_arm_adjust_dynamic_symbol): Handle Thumb functions and
	plt_thumb_refcount.
	(allocate_dynrelocs): Handle Thumb PLT references.
	(elf32_arm_finish_dynamic_symbol): Likewise.
	(elf32_arm_symbol_processing): New function.
	(elf_backend_symbol_processing): Define.

2004-11-16  Richard Sandiford  <rsandifo@redhat.com>

	* elf-bfd.h (eh_cie_fde): Add new fields: add_augmentation_size and
	add_fde_encoding.  Remove need_relative.
	* elf-eh-frame.c (extra_augmentation_string_bytes)
	(extra_augmentation_data_bytes, size_of_output_cie_fde): New functions.
	(_bfd_elf_discard_section_eh_frame): Consider changing the FDE encoding
	in cases where the CIE has no existing 'R' augmentation.  Use
	size_of_output_cie_fde when assigning offsets.  Use the final offset
	as the new section size.
	(_bfd_elf_eh_frame_section_offset): Remove need_relative handling.
	Account for any extra augmentation bytes in the returned offset.
	(_bfd_elf_write_section_eh_frame): Rework so that the entries are
	moved before being modified.  Pad growing entries with DW_CFA_nops.
	Add 'z' and 'R' augmentations as directed by add_augmentation_size
	and add_fde_encoding.

2004-11-15  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_relocate_section): Use
	arm_real_reloc_type.

2004-11-16  Richard Sandiford  <rsandifo@redhat.com>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Return early
	for discard relocations; don't add an R_MIPS_NONE to the main body
	of .rel.dyn.

2004-11-04  Paul Brook  <paul@codesourcery.com>

	* elf-bfd.h (_bfd_elf_slurp_version_tables): Update prototype.
	* elf.c (_bfd_elf_print_private_bfd_data): Pass extra argument.
	(_bfd_elf_slurp_version_tables): Add extra argument.  Create extra
	default version definition for unversioned symbols.
	* elfcode.h (elf_slurp_symbol_table): Pass extra argument.
	* elflink.c (elf_link_add_object_symbols): Pass extra argument to
	_bfd_elf_slurp_version_tables.  Set default version for unversioned
	imported symbols.

2004-11-15  Paul Brook  <paul@codesourcery.com>

	* elflink.c (elf_link_add_object_symbols): Don't assume version
	indices are consecutive.

2004-11-14  Richard Sandiford  <rsandifo@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Deal with
	composite relocations against the personality data.

2004-11-13  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Resolve
	R_ARM_PREL31 relocations to PLT entries.
	(elf32_arm_relocate_section, elf32_arm_gc_sweep_hook): Ditto.
	(elf32_arm_check_relocs): Ditto.

2004-11-12  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-isa.c (xtensa_interface_class_id): New.

2004-11-11  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (property_table_compare): Remove assertion about
	entries with the same address and non-zero size.
	(xtensa_read_table_entries): Report such entries as errors.

2004-11-11  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for
	R_ARM_RELATIVE on Symbian OS.

2004-11-09  Mark Mitchell  <mark@codesourcery.com>

	* som.c (som_bfd_print_private_bfd_data): New function.
	(som_object_setup): Save the auxiliary header.  Don't assume that
	zero is an invalid entry point for a shared library.
	(som_object_p): Allocate the auxiliary header on the heap.

	* elf32-arm.c (elf32_arm_begin_write_processing): Do not use a K&R
	declaration.
	(elf32_arm_symbian_modify_segment_map): Likewise.

2004-11-09  Daniel Jacobowitz  <dan@debian.org>

	From David Poole <daveml@mbuf.com>:
	* elf32-arm.c (elf32_arm_readonly_dynrelocs): New function.
	(elf32_arm_size_dynamic_sections): Call it.

2004-11-09  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (SOURCE_HFILES): Remove elf32-arm.h.
	(ALL_MACHINES_CFILES): Fix typo.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2004-11-08  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): When generating an
	R_ARM_RELATIVE relocation for Symbian OS, mention the section
	symbol in the relocation.

2004-11-08  Inderpreet Singh  <inderpreetb@nioda.hcltech.com>
	    Vineet Sharma  <vineets@noida.hcltech.com>

	* coff-maxq.c: New File.
	* cpu-maxq.c: New File.
	* coffcode.h: Likewise.
	* config.bfd: Likewise.
	* configure.in (maxqcoff_vec): New target vector.
	* Makefile.am: Add support for maxq target.
	* configure.in: Likewise.
	* archures.c:. Likewise.
	* targets.c: Likewise.
	* bfd_in2.h : Regenerated.
	* Makefile.in: Regenerated.
	* configure: Regenerated.
	* doc/Makefile.in: Regenerated.

2004-11-08  Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>

	* coff-i386.c (coff_i386_reloc): Fix weak symbols.
	* cofflink.c (_bfd_coff_link_input_bfd): Don't process
	C_NT_WEAK aux entries.
	(_bfd_coff_generic_relocate_section): Handle undefined
	aliases.

2004-11-07  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Use
	SYMBOL_CALLS_LOCAL and check for undefweak symbols with
	non-default visibility.

2004-11-01  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear
	D_PAGED.
	(elf32_arm_symbian_modify_segment_map): Don't
	reset includes_filehdr and includes_phdrs here.

2004-11-04  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Replace
	elfarm-nabi with elf32-arm.  Remove elfarm-oabi.
	(elf32-arm.lo): Replace elfarm-nabi.lo rule.  Remove elf32-arm.h
	dependency.
	* config.bfd: Move arm-*-oabi* and thumb-*-oabi* from obsolete list
	to a new removed list.  Remove normal configuration stanzas.
	* configure.in: (bfd_elf32_bigarm_vec, bfd_elf32_bigarm_symbian_vec)
	(bfd_elf32_littlearm_symbian_vec, bfd_elf32_littlearm_vec): Replace
	elfarm-nabi.lo with elf32-arm.lo.
	(bfd_elf32_bigarm_oabi_vec, bfd_elf32_littlearm_oabi_vec): Remove.
	* elf32-arm.c: Renamed from elfarm-nabi.c.  Inline elf32-arm.h.
	* elf32-arm.h: Remove.
	* elfarm-oabi.c: Remove.
	* targets.c (_bfd_target_vector): Remove bfd_elf32_bigarm_oabi_vec
	and bfd_elf32_littlearm_oabi_vec.
	* aclocal.m4, Makefile.in, configure, doc/Makefile.in: Regenerated.

2004-11-04  Hans-Peter Nilsson  <hp@axis.com>

	* config.bfd: Support crisv32-*-* like cris-*-*.
	* archures.c (bfd_mach_cris_v0_v10, bfd_mach_cris_v32)
	(bfd_mach_cris_v10_v32): New macros.
	* cpu-cris.c: Tweak formatting.
	(get_compatible): New function.
	(N): New macro.
	(bfd_cris_arch_compat_v10_v32, bfd_cris_arch_v32): New
	bfd_arch_info_type:s.
	(bfd_cris_arch): Use bfd_mach_cris_v0_v10 for member mach,
	get_compatible for member compatible and link bfd_cris_arch_v32 as
	next.
	* elf32-cris.c (cris_elf_pcrel_reloc)
	(cris_elf_set_mach_from_flags): New functions.
	(cris_elf_howto_table) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>
	<R_CRIS_32_PCREL>: Use cris_elf_pcrel_reloc.
	(cris_elf_grok_prstatus, cris_elf_grok_psinfo): Give correct
	numbers for bfd_mach_cris_v32.
	(PLT_ENTRY_SIZE_V32): New macro.
	(elf_cris_plt0_entry): Drop last comma in initializer.
	(elf_cris_plt0_entry_v32, elf_cris_plt_entry_v32)
	(elf_cris_pic_plt0_entry_v32, elf_cris_pic_plt_entry_v32): New
	PLT initializers.
	(cris_elf_relocate_section): Change all "%B(%A)" messages to
	"%B, section %A".
	(elf_cris_finish_dynamic_symbol): Do V32-specific PLT entries.
	(elf_cris_finish_dynamic_sections): Similar.
	(elf_cris_adjust_dynamic_symbol): Similar.
	(cris_elf_check_relocs): Change all "%B(%A)" messages to "%B,
	section %A".
	<switch with PIC relocs>: Emit error and return FALSE for
	bfd_mach_cris_v10_v32.
	<case R_CRIS_8_PCREL, case R_CRIS_16_PCREL, case R_CRIS_32_PCREL>:
	Emit warning when generating textrel reloc.
	(cris_elf_object_p): Call cris_elf_set_mach_from_flags.
	(cris_elf_final_write_processing): Set flags according to mach.
	(cris_elf_print_private_bfd_data): Display
	EF_CRIS_VARIANT_COMMON_V10_V32 and EF_CRIS_VARIANT_V32.
	(cris_elf_merge_private_bfd_data): Drop variables old_flags,
	new_flags.  Don't call cris_elf_final_write_processing.  Don't
	look at the actual elf header flags at all; use
	bfd_get_symbol_leading_char to check ibfd, obfd.  Trap difference
	in bfd_get_mach for ibfd and obfd and handle merging of compatible
	objects.
	(bfd_elf32_bfd_copy_private_bfd_data): Define.
	* reloc.c (BFD_RELOC_CRIS_SIGNED_8, BFD_RELOC_CRIS_UNSIGNED_8)
	(BFD_RELOC_CRIS_SIGNED_16, BFD_RELOC_CRIS_UNSIGNED_16)
	(BFD_RELOC_CRIS_LAPCQ_OFFSET): New relocs.
	* bfd-in2.h, libbfd.h: Regenerate.

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

	* elf64-ppc.h (ppc64_elf_edit_toc): Declare.
	* elf64-ppc.c (struct ppc_link_hash_entry <adjust_done>): Update
	comment.
	(struct adjust_toc_info): New.
	(adjust_toc_syms, ppc64_elf_edit_toc): New functions.

2004-11-03  Bob Wilson  <bob.wilson@acm.org>

	* elf.c (assign_file_positions_for_segments): Set next_file_pos even
	if there are no segments.

2004-11-02  Daniel Jacobowitz  <dan@debian.org>

	* config.bfd: Mark arm-*-oabi and thumb-*-oabi as obsolete.

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

	* elf32-iq2000.c: Convert to ISO C90 formatting.

2004-11-02  Hans-Peter Nilsson  <hp@axis.com>

	* elflink.c (_bfd_elf_create_got_section): Hide _GLOBAL_OFFSET_TABLE_.

2004-10-28  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Handle weak
	undefined symbols for R_IA64_SECREL32MSB, R_IA64_SECREL32LSB,
	R_IA64_SECREL64MSB and R_IA64_SECREL64LSB.

2004-10-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (tpoff): Take alignment into account.

2004-10-28  Nick Clifton  <nickc@redhat.com>

	* elf32-iq2000.c (iq2000_elf_relocate_section): Do nothing when
	performing a relocatable link.
	(iq2000_elf_object_p): Do not set elf_bad_symtab.  This is only
	for MIPS ports under Irix.

2004-10-27  Richard Earnshaw  <rearnsha@arm.com>

	* elf32-arm.h (bfd_elf32_arm_process_before_allocation): Handle
	R_ARM_CALL and R_ARM_JUMP24 as aliases of R_ARM_PC24.
	(elf32_arm_final_link_relocate): Ditto.
	(arm_add_to_rel, elf32_arm_relocate_section): Ditto.
	(elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto
	(elf32_arm_adjust_dynamic_symbol): Ditto.
	* elfarm-nabi.c (elf32_arm_howto_table): Add R_ARM_CALL and
	R_ARM_JUMP32.  Move R_ARM_R{REL32,ABS32,PC24,BASE}...
	(elf32_arm_r_howto): ... To here.
	(elf32_arm_howto_from_type): Use elf32_arm_r_howto.

2004-10-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR 475
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Correct
	R_IA64_SECREL32MSB, R_IA64_SECREL32LSB, R_IA64_SECREL64MSB
	and R_IA64_SECREL64LSB.

2004-10-26  Paul Brook  <paul@codesourcery.com>

	* elflink.c (elf_finalize_dynstr): Skip shared aux structure.
	(bfd_elf_size_dynamic_sections): Create default version definition.
	(elf_link_output_extsym): Adjust for default symbol version.

2004-10-24  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmo.c: Adjust to ISO C.

	* mmo.c (mmo_write_section_description): New function broken out
	of mmo_internal_write_section.
	(mmo_internal_write_section): For each of .text and .data, call
	mmo_write_section_description before outputting contents if it has
	nontrivially deducible vma or contents.
	(mmo_has_leading_or_trailing_zero_tetra_p): New function.
	(mmo_canonicalize_symtab): Adjust absolute symbols to .data
	symbols if found within the .data address range.

2004-10-24  Daniel Jacobowitz  <dan@debian.org>

	* opncls.c (bfd_close): Return TRUE for BFD_IN_MEMORY.

2004-10-24  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmo.c (File Layout): Correct place of misplaced blurb about
	special data.

2004-10-22  Mark Kettenis  <kettenis@gnu.org>

	* config.bfd: Add mips64*-*-openbsd.

2004-10-21  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (ebb_propose_action): Put declarations before
	statements.

2004-10-21  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in: (AM_INIT_AUTOMAKE): Set version to 2.15.94.
	* configure: Regenerate.

2004-10-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR 463
	* aoutx.h (aout_link_input_section_std): Pass proper hash entry
	to linker reloc_overflow callback.
	(aout_link_input_section_ext): Likewise.
	(aout_link_reloc_link_order): Likewise.
	* coff-a29k.c (coff_a29k_relocate_section): Likewise.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
	Likewise.
	(alpha_relocate_section): Likewise.
	* coff-arm.c (coff_arm_relocate_section): Likewise.
	* coff-h8300.c (h8300_reloc16_extra_cases): Likewise.
	* coff-h8500.c (extra_case): Likewise.
	* coff-i960.c (coff_i960_relocate_section): Likewise.
	* coff-mcore.c (coff_mcore_relocate_section): Likewise.
	* coff-mips.c (mips_relocate_section): Likewise.
	* coff-or32.c (coff_or32_relocate_section): Likewise.
	* coff-ppc.c (coff_ppc_relocate_section): Likewise.
	* coff-rs6000.c (xcoff_ppc_relocate_section): Likewise.
	* coff-sh.c (sh_relocate_section): Likewise.
	* coff-tic80.c (coff_tic80_relocate_section): Likewise.
	* coff-w65.c (w65_reloc16_extra_cases): Likewise.
	* coff-z8k.c (extra_case): Likewise.
	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
	* cofflink.c (_bfd_coff_reloc_link_order): Likewise.
	(_bfd_coff_generic_relocate_section): Likewise.
	* ecoff.c (ecoff_reloc_link_order): Likewise.
	* elf-hppa.h (elf_hppa_relocate_section): Likewise.
	* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-arm.h (elf32_arm_relocate_section): Likewise.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-crx.c (elf32_crx_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_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-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_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-sh.c (sh_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.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_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.
	* elflink.c (elf_reloc_link_order): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
	(_bfd_elf_mips_get_relocated_section_contents): Likewise.
	* linker.c (_bfd_generic_reloc_link_order): Likewise.
	* pdp11.c (pdp11_aout_link_input_section): Likewise.
	(aout_link_reloc_link_order): Likewise.
	* reloc.c (bfd_generic_get_relocated_section_contents):
	Likewise.
	* xcofflink.c (xcoff_reloc_link_order): Likewise.
	* simple.c (simple_dummy_reloc_overflow): Updated.

2004-10-20  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (elf_m68k_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.

2004-10-19  Danny Smith  <dannysmith@users.sourceforege.net>

	* config.bfd: Set targ_underscore=yes for PE COFF targets

2004-10-19  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (opd_entry_value): Handle --just-symbols objects.
	(ppc64_elf_edit_opd): Likewise.

2004-10-18  Mark Mitchell  <mark@codesourcery.com>

	* elfarm-nabi.c (ELF_DYNAMIC_SEC_FLAGS): Add comment.
	* elflink.c (_bfd_elf_create_dynamic_sections): For a loaded PLT,
	set SEC_ALLOC and SEC_LOAD.

2004-10-18  Nick Clifton  <nickc@redhat.com>

	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Compute
	'name' for relocs against both local and global symbols.

2004-10-16  Daniel Jacobowitz  <dan@debian.org>

	* bfd-in2.h: Regenerate.
	* bfd.c (struct bfd): Add no_export.
	* elflink.c (elf_link_add_object_symbols): Handle no_export.

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

	* config.bfd: Whitespace cleanup.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.

2004-10-15  Jakub Jelinek  <jakub@redhat.com>

	* elflink.c (struct already_linked_section): Removed.
	(try_match_symbols_in_sections, already_linked): Removed.
	(_bfd_elf_section_already_linked): Skip ^\.gnu\.linkonce\.[^.]*\.
	prefix of section names when finding already_linked_table
	chain.  Compare section names.  Instead of calling already_linked,
	do it inline and only for sections in the same already_linked_list.

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

	* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Add "info"
	parameter.  If called after _bfd_elf_write_section_eh_frame,
	don't allow a -2 return unless need_* bit is already set, and
	handle offsets adjusted for output_offset.
	* elf-bfd.h (_bfd_elf_eh_frame_section_offset): Update prototype.
	* elf.c (_bfd_elf_section_offset): Update call.

2004-10-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR 440
	* coffcode.h (coff_compute_section_file_positions): Cast to
	bfd_vma when computing page alignment.

2004-10-13  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.h (elf32_arm_finish_dynamic_sections): Use file
	offsets, not VMAs, for DT_VERSYM, DT_VERDEF, DT_VERNEED.

2004-10-12  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.h (elf32_arm_finish_dynamic_symbol): Make .rel.plt
	relocations use a virtual address, not a section offset.

2004-10-12  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_get_private_bfd_flags): Delete.
	(narrow_instruction, widen_instruction): Remove unnecessary calls to
	xtensa_format_encode.
	(ebb_propose_action): Inline call to ebb_add_proposed_action.
	(ebb_add_proposed_action): Delete.

2004-10-12  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c: Use ISO C90 formatting.

2004-10-12  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Rephrase error
	message.

2004-10-12  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h: Support EABI version 4 objects.

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

	PR 325
	* cpu-i386.c (bfd_x86_64_arch_intel_syntax): Place last in chain.
	Don't mark as default.
	(bfd_x86_64_arch): Don't mark as default.

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

	* elflink.c (enum action_discarded): New.
	(elf_section_complain_discarded): Delete.
	(elf_action_discarded): New function subsuming the above and also
	controlling reloc behaviour.
	(elf_link_input_bfd): Use it.

2004-10-11  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (bfd_section_from_shdr): Handle SHT_GNU_LIBLIST.
	(special_sections): Add .gnu.liblist and .gnu.conflict.
	(assign_section_numbers): Handle SHT_GNU_LIBLIST.

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

	PR 233
	* elflink.c (elf_link_input_bfd): Try harder to support
	relocations against symbols in removed linkonce sections.

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

	* elflink.c (elf_link_input_bfd): Revert PR 354 change.

	PR 354
	* elflink.c (elf_link_input_bfd): Check that relocs in SEC_ALLOC
	sections do not reference symbols in non-SEC_ALLOC sections.

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

	PR 437
	* elflink.c (elf_link_sort_relocs): Don't bomb on unusual sections.
	(_bfd_elf_link_omit_section_dynsym): Formatting.

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

	* libbfd-in.h (BFD_ASSERT, BFD_FAIL): Wrap macro body in do while.
	* libbfd.h: Regnerate.
	* elf32-cris.c: Add missing semicolon to BFD_ASSERTs.
	* elf32-frv.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* opncls.c: Likewise.

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

	* elf-bfd.h (struct eh_frame_hdr_info): Add offsets_adjusted.
	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Adjust
	offsets stored in struct eh_cie_fde entries before doing other
	work.

	* elf-bfd.h (struct eh_cie_fde): Add cie_inf, remove sec.
	(struct eh_frame_hdr_info): Add last_cie_inf, remove last_cie_offset.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Delete code
	setting offsets for removed CIEs.  Don't set "sec", instead set
	cie_inf for FDEs.  Keep a pointer to last struct eh_cie_fde for a
	CIE in hdr_info.  Only set make_relative and make_lsda_relative
	for CIEs.  Use pointers rather than array indices.
	(_bfd_elf_eh_frame_section_offset): Test/set make_relative,
	make_lsda_relative, need_* on cie_inf for FDEs.
	(_bfd_elf_write_section_eh_frame): Adjust offset and new_offset for
	section output_offset.  Delete cie_offset, instead use cie_inf
	pointer to CIE entry.  Use need_relative and need_lsda_relative on
	CIE entry for FDEs.  Use pointers rather than array indices.

2004-10-09  Alan Modra  <amodra@bigpond.net.au>

	* coff-rs6000.c (rs6000coff_vec): Add initializer for
	bfd_is_target_special_symbol.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	* som.c (som_bfd_is_target_special_symbol): Define.

2004-10-08  Nick Clifton  <nickc@redhat.com>

	* configure.in: (AM_INIT_AUTOMAKE): Set version to 2.15.93.
	* configure: Regenerate.
	* bfd-in2.h: Regenerate.
	* syms.c (bfd_is_target_special_symbol): New interface function.
	Returns true when a symbol should be considered to be special.
	* targets.c (bfd_target): Include bfd_is_target_special_symbol in
	the symbol jump table.
	* elf32-arm.h (elf32_arm_is_target_special_symbol): New function.
	Return true iff the symbol is a mapping symbol.
	(bfd_elf32_bfd_is_target_special_symbol): Define.
	* elfxx-target.h: Provide a default definition for
	bfd_is_target_special_symbol.
	* aout-target.h: Likewise.
	* aout-tic30.c: Likewise.
	* binary.c: Likewise.
	* coffcode.h: Likewise.
	* i386msdos.c: Likewise.
	* ieee.c: Likewise.
	* ihex.c: Likewise.
	* libaout.h: Likewise.
	* libbfd-in.h: Likewise
	* libecoff.h: Likewise.
	* mach-o.c: Likewise.
	* mmo.c: Likewise.
	* nlm-target.h: Likewise.
	* oasys.c: Likewise.
	* pef.c: Likewise.
	* ppcboot.c: Likewise.
	* srec.c: Likewise.
	* tekhex.c: Likewise.
	* versados.c: Likewise.
	* vms.c: Likewise.
	* xcoff-target.h: Likewise.
	* xsym.c: Likewise.
	* libbfd.h: Regenerate.

2004-10-08  Daniel Jacobowitz  <dan@debian.org>

	* config.bfd: Include 64-bit support for i[3-7]86-*-solaris2*.
	* elf64-x86-64.c (elf64_x86_64_section_from_shdr): New function.
	(elf_backend_section_from_shdr): Define.

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

	* syms.c (bfd_is_local_label): Return false for file symbols.

2004-10-07  Bob Wilson  <bob.wilson@acm.org>
	    David Heine  <dlheine@tensilica.com>

	* elf32-xtensa.c (elf32xtensa_size_opt): New global variable.
	(xtensa_default_isa): Global variable moved here from xtensa-isa.c.
	(elf32xtensa_no_literal_movement): New global variable.
	(elf_howto_table): Add entries for new relocations.
	(elf_xtensa_reloc_type_lookup): Handle new relocations.
	(property_table_compare): When addresses are equal, compare sizes and
	various property flags.
	(property_table_matches): New.
	(xtensa_read_table_entries): Extend to read new property tables.  Add
	output_addr parameter to indicate that output addresses should be used.
	Use bfd_get_section_limit.
	(elf_xtensa_find_property_entry): New.
	(elf_xtensa_in_literal_pool): Use elf_xtensa_find_property_entry.
	(elf_xtensa_check_relocs): Handle new relocations.
	(elf_xtensa_do_reloc): Use bfd_get_section_limit.  Handle new
	relocations.  Use new xtensa-isa.h functions.
	(build_encoding_error_message): Remove encode_result parameter.  Add
	new target_address parameter used to detect alignment errors.
	(elf_xtensa_relocate_section): Use bfd_get_section_limit.  Clean up
	error handling.  Use new is_operand_relocation function.
	(elf_xtensa_combine_prop_entries, elf_xtensa_merge_private_bfd_data):
	Use underbar macro for error messages.  Formatting.
	(get_const16_opcode): New.
	(get_l32r_opcode): Add a separate flag for initialization.
	(get_relocation_opnd): Operand number is no longer explicit in the
	relocation.  Change to decode the opcode and analyze its operands.
	(get_relocation_slot): New.
	(get_relocation_opcode): Add bfd parameter.  Use bfd_get_section_limit.
	Use new xtensa-isa.h functions to handle multislot instructions.
	(is_l32r_relocation): Add bfd parameter.  Use is_operand_relocation.
	(get_asm_simplify_size, is_alt_relocation, is_operand_relocation,
	insn_decode_len, insn_decode_opcode, check_branch_target_aligned,
	check_loop_aligned, check_branch_target_aligned_address, narrowable,
	widenable, narrow_instruction, widen_instruction, op_single_fmt_table,
	get_single_format, init_op_single_format_table): New.
	(elf_xtensa_do_asm_simplify): Add error_message parameter and use it
	instead of calling _bfd_error_handler.  Use new xtensa-isa.h functions.
	(contract_asm_expansion): Add error_message parameter and pass it to
	elf_xtensa_do_asm_simplify.  Replace use of R_XTENSA_OP0 relocation
	with R_XTENSA_SLOT0_OP.
	(get_expanded_call_opcode): Extend to handle either L32R or CONST16
	instructions.  Use new xtensa-isa.h functions.
	(r_reloc struct): Add new virtual_offset field.
	(r_reloc_init): Add contents and content_length parameters.  Set
	virtual_offset field to zero.  Add contents to target_offset field for
	partial_inplace relocations.
	(r_reloc_is_defined): Check for null.
	(print_r_reloc): New debug function.
	(source_reloc struct): Replace xtensa_operand field with pair of the
	opcode and the operand position.  Add is_abs_literal field.
	(init_source_reloc): Specify operand by opcode/position pair.  Set
	is_abs_literal field.
	(source_reloc_compare): When target_offsets are equal, compare other
	fields to make sorting predictable.
	(literal_value struct): Add is_abs_literal field.
	(value_map_hash_table struct): Add has_last_loc and last_loc fields.
	(init_literal_value): New.
	(is_same_value): Replace with ...
	(literal_value_equal): ... this function.  Add comparisons of
	virtual_offset and is_abs_literal fields.
	(value_map_hash_table_init): Use bfd_zmalloc.  Check for allocation
	failure.  Initialize has_last_loc field.
	(value_map_hash_table_delete): New.
	(hash_literal_value): Rename to ...
	(literal_value_hash): ... this.  Include is_abs_literal flag and
	virtual_offset field in the hash value.
	(get_cached_value): Rename to ...
	(value_map_get_cached_value): ... this.  Update calls to
	literal_value_hash and literal_value_equal.
	(add_value_map): Check for allocation failure.  Update calls to
	value_map_get_cached_value and literal_value_hash.
	(text_action, text_action_list, text_action_t): New types.
	(find_fill_action, compute_removed_action_diff, adjust_fill_action,
	text_action_add, text_action_add_literal, offset_with_removed_text,
	offset_with_removed_text_before_fill, find_insn_action,
	print_action_list, print_removed_literals): New.
	(offset_with_removed_literals): Delete.
	(xtensa_relax_info struct): Add is_relaxable_asm_section, action_list,
	fix_array, fix_array_count, allocated_relocs, relocs_count, and
	allocated_relocs_count fields.
	(init_xtensa_relax_info): Initialize new fields.
	(reloc_bfd_fix struct): Add new translated field.
	(reloc_bfd_fix_init): Add translated parameter and use it to set the
	translated field.
	(fix_compare, cache_fix_array): New.
	(get_bfd_fix): Remove fix_list parameter and get all relax_info for the
	section via get_xtensa_relax_info.  Use cache_fix_array to set up
	sorted fix_array and use bsearch instead of linear search.
	(section_cache_t): New struct.
	(init_section_cache, section_cache_section, clear_section_cache): New.
	(ebb_t, ebb_target_enum, proposed_action, ebb_constraint): New types.
	(init_ebb_constraint, free_ebb_constraint, init_ebb, extend_ebb_bounds,
	extend_ebb_bounds_forward, extend_ebb_bounds_backward,
	insn_block_decodable_len, ebb_propose_action, ebb_add_proposed_action):
	New.
	(retrieve_contents): Use bfd_get_section_limit.
	(elf_xtensa_relax_section): Add relocations_analyzed flag.  Update call
	to compute_removed_literals.  Free value_map_hash_table when no longer
	needed.
	(analyze_relocations): Check is_relaxable_asm_section flag.  Call
	compute_text_actions for all sections.
	(find_relaxable_sections): Mark sections as relaxable if they contain
	ASM_EXPAND relocations that can be optimized.  Adjust r_reloc_init
	call.  Increment relax_info src_count field only for appropriate
	relocation types.  Remove is_literal_section check.
	(collect_source_relocs): Use bfd_get_section_limit.  Adjust calls to
	r_reloc_init and find_associated_l32r_irel.  Check
	is_relaxable_asm_section flag.  Handle L32R instructions with absolute
	literals.  Pass is_abs_literal flag to init_source_reloc.
	(is_resolvable_asm_expansion): Use bfd_get_section_limit.  Check for
	CONST16 instructions.  Adjust calls to r_reloc_init and
	pcrel_reloc_fits.  Handle weak symbols conservatively.
	(find_associated_l32r_irel): Add bfd parameter and pass it to
	is_l32r_relocation.
	(compute_text_actions, compute_ebb_proposed_actions,
	compute_ebb_actions, check_section_ebb_pcrels_fit,
	check_section_ebb_reduces, text_action_add_proposed,
	compute_fill_extra_space): New.
	(remove_literals): Replace with ...
	(compute_removed_literals): ... this function.  Call
	init_section_cache.  Use bfd_get_section_limit.  Sort internal_relocs.
	Call xtensa_read_table_entries to get the property table.  Skip
	relocations other than R_XTENSA_32 and R_XTENSA_PLT.  Use new
	is_removable_literal, remove_dead_literal, and
	identify_literal_placement functions.
	(get_irel_at_offset): Rewrite to use bsearch on sorted relocations
	instead of linear search.
	(is_removable_literal, remove_dead_literal,
	identify_literal_placement): New.
	(relocations_reach): Update check for literal not referenced by any
	PC-relative relocations.  Adjust call to pcrel_reloc_fits.
	(coalesce_shared_literal, move_shared_literal): New.
	(relax_section): Use bfd_get_section_limit.  Call
	translate_section_fixes.  Update calls to r_reloc_init and
	offset_with_removed_text.  Check new is_relaxable_asm_section flag.
	Add call to pin_internal_relocs.  Add special handling for
	R_XTENSA_ASM_SIMPLIFY and R_XTENSA_DIFF* relocs.  Use virtual_offset
	info to calculate new addend_displacement variable.  Replace code for
	deleting literals with more general code to perform the actions
	determined by the action_list for the section.
	(translate_section_fixes, translate_reloc_bfd_fix): New.
	(translate_reloc): Check new is_relaxable_asm_section flag.  Call
	find_removed_literal only if is_operand_relocation.  Update call to
	offset_with_removed_text.  Use new target_offset and removed_bytes
	variables.
	(move_literal): New.
	(relax_property_section):  Use bfd_get_section_limit.  Set new
	is_full_prop_section flag and handle new property tables.  Update calls
	to r_reloc_init and offset_with_removed_text.  Check
	is_relaxable_asm_section flag.  Handle expansion of zero-sized
	unreachable entries, with use of offset_with_removed_text_before_fill.
	For relocatable links, combine entries only for literal tables.
	(relax_section_symbols): Check is_relaxable_asm_section flag.  Update
	calls to offset_with_removed_text.  Translate st_size field for
	function symbols.
	(do_fix_for_relocatable_link): Change to return bfd_boolean to indicate
	failure.  Add contents parameter.  Update call to get_bfd_fix.  Update
	call to r_reloc_init.  Call _bfd_error_handler and return FALSE for
	R_XTENSA_ASM_EXPAND relocs.
	(do_fix_for_final_link): Add input_bfd and contents parameters.  Update
	call to get_bfd_fix.  Include offset from contents for partial_inplace
	relocations.
	(is_reloc_sym_weak): New.
	(pcrel_reloc_fits): Use new xtensa-isa.h functions.
	(prop_sec_len): New.
	(xtensa_is_property_section): Handle new property sections.
	(is_literal_section): Delete.
	(internal_reloc_compare): When r_offset matches, compare r_info and
	r_addend to make sorting predictable.
	(internal_reloc_matches): New.
	(xtensa_get_property_section_name): Handle new property sections.
	(xtensa_get_property_predef_flags): New.
	(xtensa_callback_required_dependence): Use bfd_get_section_limit.
	Update calls to xtensa_isa_init, is_l32r_relocation, and r_reloc_init.
	* xtensa-isa.c (xtensa_default_isa): Moved to elf32-xtensa.c.
	(xtisa_errno, xtisa_error_msg): New variables.
	(xtensa_isa_errno, xtensa_isa_error_msg): New.
	(xtensa_insnbuf_alloc): Add error handling.
	(xtensa_insnbuf_to_chars): Add num_chars parameter.  Update to
	use xtensa_format_decode.  Add error handling.
	(xtensa_insnbuf_from_chars): Add num_chars parameter.  Decode the
	instruction length to find the number of bytes to copy.
	(xtensa_isa_init): Add error handling.  Replace calls to
	xtensa_load_isa and xtensa_extend_isa with code to initialize lookup
	tables in the xtensa_modules structure.
	(xtensa_check_isa_config, xtensa_add_isa, xtensa_load_isa,
	xtensa_extend_isa): Delete.
	(xtensa_isa_free): Change to only free lookup tables.
	(opname_lookup_compare): Replace with ...
	(xtensa_isa_name_compare): ... this function.  Use strcasecmp.
	(xtensa_insn_maxlength): Rename to ...
	(xtensa_isa_maxlength): ... this.
	(xtensa_insn_length): Delete.
	(xtensa_insn_length_from_first_byte): Replace with ...
	(xtensa_isa_length_from_chars): ... this function.
	(xtensa_num_opcodes): Rename to ...
	(xtensa_isa_num_opcodes): ... this.
	(xtensa_isa_num_pipe_stages, xtensa_isa_num_formats,
	xtensa_isa_num_regfiles, xtensa_isa_num_stages,
	xtensa_isa_num_sysregs, xtensa_isa_num_interfaces,
	xtensa_isa_num_funcUnits, xtensa_format_name, xtensa_format_lookup,
	xtensa_format_decode, xtensa_format_encode, xtensa_format_length,
	xtensa_format_num_slots, xtensa_format_slot_nop_opcode,
	xtensa_format_get_slot, xtensa_format_set_slot): New functions.
	(xtensa_opcode_lookup): Add error handling.
	(xtensa_decode_insn): Replace with ...
	(xtensa_opcode_decode): ... this function, with new format and
	slot parameters.  Add error handling.
	(xtensa_encode_insn): Replace with ...
	(xtensa_opcode_encode): ... this function, which does the encoding via
	one of the entries in the "encode_fns" array.  Add error handling.
	(xtensa_opcode_name): Add error handling.
	(xtensa_opcode_is_branch, xtensa_opcode_is_jump, xtensa_opcode_is_loop,
	xtensa_opcode_is_call): New.
	(xtensa_num_operands): Replace with ...
	(xtensa_opcode_num_operands): ... this function.  Add error handling.
	(xtensa_opcode_num_stateOperands,
	xtensa_opcode_num_interfaceOperands, xtensa_opcode_num_funcUnit_uses,
	xtensa_opcode_funcUnit_use, xtensa_operand_name,
	xtensa_operand_is_visible): New.
	(xtensa_get_operand, xtensa_operand_kind): Delete.
	(xtensa_operand_inout): Add error handling and special-case for
	"sout" operands.
	(xtensa_operand_get_field, xtensa_operand_set_field): Rewritten to
	operate on one slot of an instruction.  Added error handling.
	(xtensa_operand_encode): Handle default operands with no encoding
	functions.  Check for success by comparing against decoded value.
	Add error handling.
	(xtensa_operand_decode): Handle default operands.  Return decoded value
	through argument pointer.  Add error handling.
	(xtensa_operand_is_register, xtensa_operand_regfile,
	xtensa_operand_num_regs, xtensa_operand_is_known_reg): New.
	(xtensa_operand_isPCRelative): Rename to ...
	(xtensa_operand_is_PCrelative): ... this.  Add error handling.
	(xtensa_operand_do_reloc, xtensa_operand_undo_reloc): Return value
	through argument pointer.  Add error handling.
	(xtensa_stateOperand_state, xtensa_stateOperand_inout,
	xtensa_interfaceOperand_interface, xtensa_regfile_lookup,
	xtensa_regfile_lookup_shortname, xtensa_regfile_name,
	xtensa_regfile_shortname, xtensa_regfile_view_parent,
	xtensa_regfile_num_bits, xtensa_regfile_num_entries,
	xtensa_state_lookup, xtensa_state_name, xtensa_state_num_bits,
	xtensa_state_is_exported, xtensa_sysreg_lookup,
	xtensa_sysreg_lookup_name, xtensa_sysreg_name, xtensa_sysreg_number,
	xtensa_sysreg_is_user, xtensa_interface_lookup, xtensa_interface_name,
	xtensa_interface_num_bits, xtensa_interface_inout,
	xtensa_interface_has_side_effect, xtensa_funcUnit_lookup,
	xtensa_funcUnit_name, xtensa_funcUnit_num_copies): New.
	* xtensa-modules.c: Rewrite to use new data structures.
	* reloc.c (BFD_RELOC_XTENSA_DIFF8, BFD_RELOC_XTENSA_DIFF16,
	BFD_RELOC_XTENSA_DIFF32, BFD_RELOC_XTENSA_SLOT0_OP,
	BFD_RELOC_XTENSA_SLOT1_OP, BFD_RELOC_XTENSA_SLOT2_OP,
	BFD_RELOC_XTENSA_SLOT3_OP, BFD_RELOC_XTENSA_SLOT4_OP,
	BFD_RELOC_XTENSA_SLOT5_OP, BFD_RELOC_XTENSA_SLOT6_OP,
	BFD_RELOC_XTENSA_SLOT7_OP, BFD_RELOC_XTENSA_SLOT8_OP,
	BFD_RELOC_XTENSA_SLOT9_OP, BFD_RELOC_XTENSA_SLOT10_OP,
	BFD_RELOC_XTENSA_SLOT11_OP, BFD_RELOC_XTENSA_SLOT12_OP,
	BFD_RELOC_XTENSA_SLOT13_OP, BFD_RELOC_XTENSA_SLOT14_OP,
	BFD_RELOC_XTENSA_SLOT0_ALT, BFD_RELOC_XTENSA_SLOT1_ALT,
	BFD_RELOC_XTENSA_SLOT2_ALT, BFD_RELOC_XTENSA_SLOT3_ALT,
	BFD_RELOC_XTENSA_SLOT4_ALT, BFD_RELOC_XTENSA_SLOT5_ALT,
	BFD_RELOC_XTENSA_SLOT6_ALT, BFD_RELOC_XTENSA_SLOT7_ALT,
	BFD_RELOC_XTENSA_SLOT8_ALT, BFD_RELOC_XTENSA_SLOT9_ALT,
	BFD_RELOC_XTENSA_SLOT10_ALT, BFD_RELOC_XTENSA_SLOT11_ALT,
	BFD_RELOC_XTENSA_SLOT12_ALT, BFD_RELOC_XTENSA_SLOT13_ALT,
	BFD_RELOC_XTENSA_SLOT14_ALT): Add new relocations.
	* Makefile.am (xtensa-isa.lo, xtensa-modules.lo): Update dependencies.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Likewise.
	* libbfd.h: Likewise.

2004-10-07  Richard Sandiford  <rsandifo@redhat.com>

	* elf64-mips.c (mips_elf64_write_rel): Use STN_UNDEF for relocs
	against the absolute section.
	(mips_elf64_write_rela): Likewise.

2004-10-07  Jan Beulich <jbeulich@novell.com>

	* elf.c (elf_find_function): Don't generally check for matching
	section, just for non-file symbols.  Remove redunant comparison
	for the latter.
	* elf32-arm.h (arm_elf_find_function): Likewise.

2004-10-07  Jeff Baker  <jbaker@qnx.com>

	* elflink.c (_bfd_elf_add_dynamic_entry): Add code to warn if
	adding a DT_TEXTREL to a shared object and --warn-shared-textrel
	was specified.

2004-10-04  Roland McGrath  <roland@redhat.com>

	* hash.c (bfd_hash_set_default_size): Use const for table.
	Use size_t instead of int for variable compared to sizeof results.

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

	PR 425
	* syms.c (_bfd_stab_section_find_nearest_line): Ignore R_*_NONE relocs.

2004-10-01  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (elf32_arm_fake_sections,
	is_arm_elf_unwind_section_name, elf32_arm_section_from_shdr): New
	functions.
	(elf_backend_fake_sections, elf_backend_section_from_shdr): Define.

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

	* elf-bfd.h (struct eh_cie_fde): Add need_relative and
	need_lsda_relative.
	* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Set
	need_relative or need_lsda_relative if we are processing an
	offset for a reloc on a FDE initial loc or LSDA field
	respectively.
	(_bfd_elf_write_section_eh_frame): Test need_relative and
	need_lsda_relative in place of corresponding make_* field
	when deciding to use pc-relative encodings.

2004-09-30  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (bfd_elf32_arm_set_target_relocs): Handle "abs"
	target2 relocation type.

2004-09-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR 414
	* elflink.c (_bfd_elf_merge_symbol): Check TLS symbol.

2004-09-30  Paul Brook  <paul@codesourcery.com>

	* reloc.c: Add BFD_RELOC_ARM_SMI.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Ditto.

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

	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Add output section
	vma and output offset to address.
	* simple.c (simple_save_output_info): Only set output section
	and offset for debug sections, or those not already set up by
	the linker.
	(bfd_simple_get_relocated_section_contents): Update comment.

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

	* elf.c (IS_LOADED): Delete.
	(assign_file_positions_for_segments): Just test SEC_LOAD instead.
	Restore SEC_HAS_CONTENTS test to the one place it was used prior
	to 2004-09-22.

2004-09-23  Alan Modra  <amodra@bigpond.net.au>

	PR gas/396
	* elf32-sparc.c (elf32_sparc_final_write_processing): Handle
	bfd_mach_sparc_sparclet and bfd_mach_sparc_sparclite.  Remove
	redundant assignment of EM_SPARC.

2004-09-22  Brian Ford  <ford@vss.fsi.com>

	* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Enable 16 byte
	alignment for .rdata sections so sse[2] code works with gcc >= 3.3.3
	constants.
	* pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.

2004-09-22  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_modify_segment_map): Delete.
	(elf_backend_modify_segment_map): Don't define.

2004-09-22  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (IS_LOADED): Define.
	(assign_file_positions_for_segments): Don't round up file offset of
	PT_LOAD segments containing no SEC_LOAD sections, instead round down.
	Delete code handling link script adjustment of lma.  Do the adjust
	in later code handling similar ajustments.  Remove dead code error
	check.  Warn if section lma would require a negative offset
	adjustment.  Tweak lma adjustment to use p_filesz rather than p_memsz.
	Use p_vaddr + p_memsz inside section loop in place of voff.  Don't
	update voff in section loop.  Change voff in segment loop to be an
	adjustment on top of "off".  Set sec->filepos and update "off" later.
	Test for loadable sections consistently using IS_LOADED.  Similarly,
	test for alloc-only sections other than .tbss consistently.
	Don't bother checking SEC_ALLOC in PT_LOAD segments.  Remove FIXME.
	Tidy PT_NOTE handling.  Use %B and %A in error messages.
	(assign_file_positions_except_relocs): Use %B in error message.

2004-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require 1.9.
	(CONFIG_STATUS_DEPENDENCIES): New.
	(Makefile): Removed.
	(config.status): Likewise.
	* Makefile.in: Regenerated.

2004-09-17  Paul Brook  <paul@codesourcery.com>

	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add prototype.
	(bfd_elf32_arm_process_before_allocation): Update prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.h (elf32_arm_link_hash_table): Add target2_reloc.
	(elf32_arm_link_hash_table_create): Set it.
	(bfd_elf32_arm_process_before_allocation): Remove target1_is_rel.
	(bfd_elf32_arm_set_target_relocs): New function.
	(arm_real_reloc_type): New function.
	(elf32_arm_final_link_relocate): Use it.  Handle R_ARM_PREL31 and
	R_ARM_GOT_PREL.  Remove R_ARM_TARGET1.
	(elf32_arm_gc_sweep_hook): Ditto.
	(elf32_arm_check_relocs): Ditto.
	(elf32_arm_relocate_section): Handle R_ARM_GOT_PREL.
	* elfarm-nabi.c (elf32_arm_howto_table): Add R_ARM_PREL31 and
	R_ARM_GOT_TARGET2.
	(elf32_arm_got_prel): New variable.
	(elf32_arm_howto_from_type): New function.
	(elf32_arm_info_to_howto): Use it.
	(elf32_arm_reloc_map): Add BFD_RELOC_ARM_PREL31 and
	BFD_RELOC_ARM_TARGET2.
	* libbfd.h: Regenerate.
	* reloc.c: Add BFD_RELOC_ARM_TARGET2 and BFD_RELOC_ARM_PREL31.

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

	* ecoff.c: Update u.undef.next refs.
	* elf64-ppc.c: Likewise.
	* elflink.c: Likewise.
	* linker.c: Likewise.
	* xcofflink.c: Likewise.

	* elf-bfd.h (struct elf_link_hash_entry): Rearrange.  Add FIXME to
	dynamic_def.  Combine weakdef and elf_hash_value.  Move vtable
	fields to indirect struct.
	* elf-m10300.c: Update u.weakdef refs.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-sparc.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* elflink.c: Likewise.  Also u.elf_hash_value.
	(elf_gc_propagate_vtable_entries_used): Update for h->vtable
	indirection.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	(bfd_elf_gc_record_vtinherit): Alloc vtable.
	(bfd_elf_gc_record_vtentry): Likewise.
	* elf.c (_bfd_elf_link_hash_newfunc): Use memset.

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

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

2004-09-16  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_link_hash_entry): Replace elf_link_hash_flags
	with bitfields.  Make "type" and "other" bitfields too.
	(ELF_LINK_HASH_REF_REGULAR, ELF_LINK_HASH_DEF_REGULAR,
	ELF_LINK_HASH_REF_DYNAMIC, ELF_LINK_HASH_DEF_DYNAMIC,
	ELF_LINK_HASH_REF_REGULAR_NONWEAK, ELF_LINK_HASH_DYNAMIC_ADJUSTED,
	ELF_LINK_HASH_NEEDS_COPY, ELF_LINK_HASH_NEEDS_PLT, ELF_LINK_NON_ELF,
	ELF_LINK_HIDDEN, ELF_LINK_FORCED_LOCAL, ELF_LINK_HASH_MARK,
	ELF_LINK_NON_GOT_REF, ELF_LINK_DYNAMIC_DEF, ELF_LINK_DYNAMIC_WEAK,
	ELF_LINK_POINTER_EQUALITY_NEEDED): Delete.
	(ELF_COMMON_DEF_P, WILL_CALL_FINISH_DYNAMIC_SYMBOL): Update.
	* elf-hppa.h: Update all uses of elf_link_hash_flags.
	* elf-m10300.c: Likewise.
	* elf.c: Likewise.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh-symbian.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf32-sparc.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elflink.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* configure.in (AM_INIT_AUTOMAKE): Set version to 2.15.92.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2004-09-16  Alan Modra  <amodra@bigpond.net.au>

	* elf32-arm.h (elf32_arm_gc_sweep_hook): Add #ifndef OLD_ARM_ABI
	around uses of R_ARM_TARGET1.
	(elf32_arm_check_relocs): Likewise.

2004-09-13  Paul Brook  <paul@codesourcery.com>

	* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
	prototype.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf32-arm.h (elf32_arm_link_hash_table): Add target1_is_rel.
	(elf32_arm_link_hash_table_create): Set target1_is_rel.
	(bfd_elf32_arm_process_before_allocation): Ditto.
	(elf32_arm_final_link_relocate): Handle R_ARM_TARGET1.
	(elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
	* elfarm-nabi.c (elf32_arm_howto_table): Rename RELABS to TARGET1.
	* reloc.c: Ditto.

2004-09-10  Joel Brobecker  <brobecker@gnat.com>

	* hpux-core.c (thread_section_p): New function.
	(hpux_core_core_file_p): Fix computation of offset in call
	to bfd_seek. Create a ".reg" section from an arbitrary
	".reg/<id>" section if none was created after having read
	all sections.

2004-09-11  Andreas Schwab  <schwab@suse.de>

	* acinclude.m4: Fix spelling of ACX_NONCANONICAL_*.
	* aclocal.m4: Rebuild.
	* configure: Rebuild.

2004-09-10  Joel Brobecker  <brobecker@gnat.com>

	* section.c (bfd_sections_find_if): Fix parameter name in
	comment to match code.

2004-09-10  Alan Modra  <amodra@bigpond.net.au>

	* elf.c  (assign_file_positions_except_relocs): Assign relocs
	stored in a bfd section.

2004-09-08  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Reset
	h->gotplt_refcount to 0, not -1.

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

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
	case R_CRIS_32_GOTPLT>: For internal error message, handle NULL
	symname.
	(cris_elf_check_relocs) <case R_CRIS_32_PLT_PCREL>: Don't try to
	handle symbol visibility here.

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

	* elf64-ppc.c (struct ppc_link_hash_table): Add stub_globals.
	(is_ppc64_elf_target): Rename from is_ppc64_target.  Update all
	callers.
	(ppc_stub_name): Remove trailing "+0" on stub name.
	(create_linkage_sections): Create relocations for
	branch lookup table when --emit-relocs as well as when --shared.
	(ppc_build_one_stub): Emit relocs for long branch stubs.  Adjust
	relbrlt test.  For --emit-stub-syms, always output a sym even when
	one already exists on a plt call stub.  Put stub type in the stub
	symbol name.
	(ppc_size_one_stub): Size long branch stub relocs.  Adjust relbrlt
	test.
	(ppc64_elf_size_stubs): Count global sym stubs added.  Zero
	reloc_count in stub sections.  Adjust relbrlt test.
	(ppc64_elf_build_stubs): Adjust relbrlt test.  Tweak stats output.
	* elflink.c (bfd_elf_size_dynamic_sections): Fix comment typo.
	(elf_link_input_bfd): Ignore symbol index zero relocs when checking
	for relocs against discarded symbols.  Fix comments.

2004-09-06  Mark Mitchell  <mark@codesourcery.com>

	* elf-bfd.h (_bfd_elf_make_dynamic_segment): Declare it.
	* elf.c (_bfd_elf_make_dynamic_segment): New function, split out
	from ...
	(map_sections_to_segments): ... here.  Use it.  Assign a file
	position to the .dynamic section if it is not loadable, but part
	of the PT_DYNAMIC segment.
	* elf32-arm.h (elf32_arm_finish_dynamic_sections): Use file
	offsets, not VMAs, for the BPABI.  Do not fill in the header in
	the .got.plt section for the BPABI.
	* elfarm-nabi.c (elf32_arm_symbian_modify_segment_map): Add a
	PT_DYNAMIC segment.
	(elf_backend_want_got_plt): Define to zero for Symbian OS.

2004-09-06  Nick Clifton  <nickc@redhat.com>

	* elflink.c (elf_link_add_object_symbols): Set the error code to
	bfd_error_wrong_format when the input format does not match the
	output format.

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

	* elf64-ppc.c (is_ppc64_target): New function, extracted from..
	(ppc64_elf_check_directives): ..here.
	(ppc64_elf_size_dynamic_sections): Use it here to check bfd type
	before accessing ppc64_elf_tdata.
	(ppc64_elf_finish_dynamic_sections): And here too.

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

	* bfd.c (_bfd_default_error_handler): Correct loop exit.

2004-09-03  Mark Mitchell  <mark@codesourcery.com>

	* config.bfd (arm*-*-symbianelf*): Use OS-specific target vectors.
	* configure.in (bfd_elf32_bigarm_symbian_vec): Add it.
	(bfd_elf32_littlearm_symbian_vec): Likewise.
	* configure: Regenerated.
	* elf-bfd.h (elf_backend_data): Add dynamic_sec_flags.
	* elf32-arm.h (PLT_HEADER_SIZE): Do not define.
	(PLT_ENTRY_SIZE): Likewise.
	(bfd_vma_elf32_arm_symbian_plt_entry): New
	variable.
	(elf32_arm_link_hash_table): Add plt_header_size, plt_entry_size,
	and symbian_p.
	(create_got_section): Don't create sections when generating BPABI
	objects.
	(elf32_arm_create_dynamic_sections): Tidy.
	(elf32_arm_link_hash_table_create): Set plt_header_size,
	plt_entry_size, and symbian_p.
	(elf32_arm_check_relocs): Do not mark .rel.dyn as loadable when
	generating BPABI objects.
	(allocate_dynrelocs): Use htab->plt_header_size, not
	PLT_HEADER_SIZE.  Do not add to .got.plt when
	generating BPABI objects.
	(elf32_arm_finish_dynamic_symbol): Generate Symbian OS PLTs.
	* elfarm-nabi.c: Add SymbianOS target vectors.
	* elflink.c (_bfd_elf_create_got_section): Use dynamic_sec_flags.
	(_bfd_elf_link_create_dynamic_sections): Likewise.
	* elfxx-target.h (ELF_DYNAMIC_SEC_FLAGS): New macro.
	(elfNN_bed): Use it.
	* targets.c (bfd_elf32_bigarm_symbian_vec): New variable.
	(bfd_elf32_littlearm_symbian_vec): Likewise.
	(_bfd_target_vector): Add them.

2004-09-03  Nick Clifton  <nickc@redhat.com>

	PR 360
	* coffcode.h (handle_COMDAT): Replace abort with an warning
	message and allow the scan to continue.

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

	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Use static_syms passed
	in when reading relocs, not our sorted syms.  Remove unnecessary
	var.

2004-08-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* elf.c (special_sections): Add .gnu.linkonce.b modelled on .bss.

2004-08-30  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: Require AC_CANONICAL_TARGET, not AC_CANONICAL_SYSTEM.
	Include ../config/acx.m4 and use ACX_NONCANONICAL_* where appropriate;
	replace uses of *_alias with *_noncanonical.
	* aclocal.m4: Rebuild with aclocal 1.4p6.
	* Makefile.in: Rebuild with automake 1.4p6.
	* doc/Makefile.in: Rebuild with automake 1.4p6.
	* configure.in: Autoupdate with autoupdate 2.59.
	* config.in: Regenerate with autoheader 2.59.
	* configure: Regnerate with autoconf 2.59.

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

	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Copy input
	symbol pointer arrays before modifying.

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

	* bfd.c (bfd_get_synthetic_symtab): Pass counts and both symbol tables.
	* elf-bfd.h (_bfd_elf_get_synthetic_symtab): Adjust.
	* elf.c (_bfd_elf_get_synthetic_symtab): Adjust.
	* libbfd-in.h (_bfd_nodynamic_get_synthetic_symtab): Adjust.
	* targets.c (struct bfd_target <_bfd_get_synthetic_symtab>): Adjust.
	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't read symbols.
	Use both symbol tables on non-relocatable objects.  Use a common
	error exit.  Fix "mid" warning.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

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

	* elf64-ppc.c (ppc64_elf_branch_reloc): Check .opd is in a regular
	object file.
	(struct sfpr_def_parms): Save some space.
	(sfpr_define): Here too.

	* elf64-ppc.c (compare_symbols): Put section syms first.
	(sym_exists_at): New function.
	(ppc64_elf_get_synthetic_symtab): Use relocs to find code entry
	points only for relocatable files.  Use .opd section contents
	otherwise.  Generally clean up the code.

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

	* elf64-ppc.c (STD_R0_0R1, STD_R0_0R12, LD_R0_0R1, LD_R0_0R12,
	LI_R12_0, STVX_VR0_R12_R0, LVX_VR0_R12_R0, MTLR_R0, SFPR_MAX): Define.
	(struct sfpr_def_parms): New.
	(sfpr_define): New function.
	(savegpr0, savegpr0_tail, restgpr0, restgpr0_tail): New functions.
	(savegpr1, savegpr1_tail, restgpr1, restgpr1_tail): New functions.
	(savefpr, savefpr0_tail, restfpr, restfpr0_tail): New functions.
	(savefpr1_tail, restfpr1_tail): New functions.
	(savevr, savevr_tail, restvr, restvr_tail): New functions.
	(MIN_SAVE_FPR, MAX_SAVE_FPR): Don't define.
	(ppc64_elf_func_desc_adjust): Use sfpr_define in place of existing
	code.  Define all ABI mandated _save and _rest functions.

2004-08-26  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (INTERWORK_FLAG): Return true for EABIv3 objects.

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

	* elf32-m32r.c (m32r_elf_relocate_section): Don't compare with
	TRUE or FALSE.

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

	* elf32-i386.c (elf_i386_relocate_section): Tweak last change so
	that pcrel correction is applied for R_386_PC32.

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

	* elf32-i386.c (elf_i386_relocate_section): Zero section contents
	for R_386_32 and R_386_PC32 relocs against symbols defined in
	discarded sections.

2004-08-25  Dmitry Diky  <diwil@spec.ru>

	* reloc.c (BFD_RELOC_MSP430_2X_PCREL,BFD_RELOC_MSP430_RL_PCREL):
	Add new relocations.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf32-msp430.c: Clean-up code.
	(elf_msp430_howto_table): Add new relocation entries.
	(bfd_elf32_bfd_reloc_type_lookup): New relocation handlers.
	(msp430_elf_relax_section): New function.
	(msp430_elf_relax_delete_bytes): New function.
	(msp430_elf_symbol_address_p): New function.

2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* elf32-m32r.c (m32r_elf_relocate_section): Handle
	R_M32R_SDA16_RELA in the same way as R_M32R_SDA16.

2004-08-20  Daniel Jacobowitz  <dan@debian.org>

	* elflink.c (_bfd_elf_section_already_linked): Handle
	SEC_LINK_DUPLICATES_SAME_CONTENTS.

2004-08-19  Mark Mitchell  <mark@codesourcery.com>

	* config.bfd (arm*-*-symbianelf*): New target.
	(arm*-*-eabi*): Likewise.

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

	* elf64-ppc.c (ppc_get_stub_entry): Change third param to a
	"struct ppc_link_hash_entry *".
	(ppc64_elf_relocate_section): Ditto for type of h.  Introduce h_elf
	to satisfy RELOC_FOR_GLOBAL_SYMBOL.

2004-08-19  Jakub Jelinek  <jakub@redhat.com>

	* elf64-ppc.c (ppc64_elf_edit_opd): Support 16 byte long .opd
	entries (where fd_aux overlaps next entry's fd_func).
	Add non_overlapping argument, use it.
	(ppc64_elf_check_relocs, ppc64_elf_gc_mark_hook, adjust_opd_syms,
	ppc64_elf_size_stubs, ppc64_elf_relocate_section,
	ppc64_elf_output_symbol_hook): Use address / 8 instead of address / 24
	as indexes into opd_sym_map/opd_adjust array.
	* elf64-ppc.h (ppc64_elf_edit_opd): Adjust prototype.

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

	* elf64-ppc.c (func_desc_adjust): Give undefined dot-symbols a value
	if we can look up their function descriptor in a regular file.

2004-08-18  Nick Clifton  <nickc@redhat.com>

	PR 324
	* cofflink.c (coff_link_add_symbols): Check that the comdat
	pointer in the coff_section_data structure has been initialised
	before using it.

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

	PR 338
	* elflink.c (bfd_elf_record_link_assignment): Add comment about
	changing bfd_link_hash_undefined to bfd_link_hash_new.

2004-08-17  Jakub Jelinek  <jakub@redhat.com>

	* elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Only define
	if not yet defined.
	* elf64-ppc.c (bfd_elf64_get_synthetic_symtab): Define.
	(synthetic_opd, synthetic_relocatable): New variables.
	(compare_symbols, compare_relocs): New helper routines.
	(ppc64_elf_get_synthetic_symtab): New function.
	* bfd.c (bfd_get_synthetic_symtab): Rename dynsyms argument
	to relsyms.
	* bfd-in2.h: Regenerated.
	* elf.c (_bfd_elf_get_synthetic_symtab): Rename dynsyms argument
	to relsyms.  Return 0 if abfd is relocatable.

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

	* elflink.h (elf_gc_sweep): Keep non-alloc, non-load sections.

2004-08-17  Nick Clifton  <nickc@redhat.com>

	* (is_arm_mapping_symbol_name): New function - return true
	when a symbol name matches the requirements for an ARM mapping
	symbol name.
	(arm_elf_find_function): New function based on
	elf_find_function in elf.c but skipping ARM mapping symbols
	and including thumb function symbols.
	(elf32_arm_find_nearest_line): Use arm_elf_find_function.
	(elf32_arm_output_symbol_hook): Use is_arm_mapping_symbol_name.

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

	* elf64-ppc.c (ppc64_elf_branch_reloc): New function.
	(ppc64_elf_howto_raw): Use ppc64_elf_branch_reloc.
	(ppc64_elf_brtaken_reloc): Here too.

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

	* elf64-ppc.c (add_symbol_adjust): Correct mismatched function
	symbol visibility.
	(ppc64_elf_check_directives): Check that we have the right hash
	table before proceeding.

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

	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add "deleted_section".
	(adjust_opd_syms): Attach opd syms for deleted entries to one of
	the sections that will be discarded.

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

	* elflink.c (elf_section_complain_discarded): Ignore .fixup.

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

	* bfd.c (_bfd_default_error_handler): Account for doubled '%' in
	free space available.

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

	* pdp11.c (struct pdp11_aout_reloc_external): Delete.  Replace
	occurrences with bfd_byte * thoughout file.

	* coff-rs6000.c (do_shared_object_padding): Warning fix.
	(xcoff_write_armap_big): Likewise.
	(xcoff_write_archive_contents_old): Likewise.
	(xcoff_write_archive_contents_big): Likewise.

	* elf64-mmix.c (mmix_elf_get_section_contents): Delete declaration.

2004-08-13  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.h: Convert to ISO C90.

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

	PR 293
	* elf32-hppa.c (elf32_hppa_hide_symbol): Use init_refcount to
	zero the plt field.

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

	* bfd.c (_bfd_default_error_handler): Handle %A and %B.
	(bfd_archive_filename, bfd_get_section_ident): Delete.
	* ecofflink.c (bfd_ecoff_debug_accumulate_other): Don't call
	bfd_archive_filename.
	* elflink.c (elf_link_input_bfd): Don't use callbacks->error_handler
	to warn about symbols in discarded sections.  Use _bfd_error_handler.
	* aout-adobe.c (aout_adobe_callback): See below.
	* aout-cris.c (swap_ext_reloc_in): ..
	* coff-arm.c (find_thumb_glue, find_arm_glue,
	coff_arm_relocate_section, bfd_arm_process_before_allocation,
	coff_arm_merge_private_bfd_data, _bfd_coff_arm_set_private_flags,
	coff_arm_copy_private_bfd_data): ..
	* coff-i860.c (i860_reloc_processing): ..
	* coff-mcore.c (mcore_coff_unsupported_reloc,
	coff_mcore_relocate_section): ..
	* coff-ppc.c (coff_ppc_relocate_section): ..
	* coff-rs6000.c (xcoff_create_csect_from_smclas
	* coff-sh.c (sh_relax_section, sh_relax_delete_bytes,
	sh_swap_insns, sh_relocate_section): ..
	* coff-tic54x.c (tic54x_reloc_processing): ..
	* coff-tic80.c (coff_tic80_relocate_section): ..
	* coff64-rs6000.c (xcoff64_create_csect_from_smclas): ..
	* coffcode.h (styp_to_sec_flags, coff_slurp_line_table,
	coff_slurp_symbol_table, coff_classify_symbol,
	coff_slurp_reloc_table): ..
	* coffgen.c (_bfd_coff_read_string_table): ..
	* cofflink.c (coff_link_add_symbols, _bfd_coff_link_input_bfd,
	_bfd_coff_generic_relocate_section): ..
	* cpu-arm.c (bfd_arm_merge_machines): ..
	* cpu-sh.c (sh_merge_bfd_arch): ..
	* elf-hppa.h (elf_hppa_relocate_section): ..
	* elf.c (bfd_elf_string_from_elf_section, setup_group,
	_bfd_elf_setup_group_pointers, bfd_section_from_shdr,
	assign_section_numbers, _bfd_elf_symbol_from_bfd_symbol,
	copy_private_bfd_data, _bfd_elf_validate_reloc): ..
	* elf32-arm.h (find_thumb_glue, find_arm_glue,
	bfd_elf32_arm_process_before_allocation, elf32_thumb_to_arm_stub,
	elf32_arm_to_thumb_stub, elf32_arm_final_link_relocate,
	elf32_arm_relocate_section, elf32_arm_set_private_flags,
	elf32_arm_copy_private_bfd_data, elf32_arm_merge_private_bfd_data): ..
	* elf32-cris.c (cris_elf_relocate_section, cris_elf_check_relocs,
	cris_elf_merge_private_bfd_data
	* elf32-frv.c (elf32_frv_relocate_section, elf32_frv_check_relocs): ..
	* elf32-gen.c (elf32_generic_link_add_symbols): ..
	* elf32-hppa.c (hppa_add_stub, hppa_build_one_stub,
	elf32_hppa_check_relocs, get_local_syms, final_link_relocate,
	elf32_hppa_relocate_section): ..
	* elf32-i370.c (i370_elf_merge_private_bfd_data,
	i370_elf_check_relocs, i370_elf_relocate_section): ..
	* elf32-i386.c (elf_i386_info_to_howto_rel, elf_i386_check_relocs,
	elf_i386_relocate_section): ..
	* elf32-m32r.c (m32r_elf_relocate_section,
	m32r_elf_merge_private_bfd_data): ..
	* elf32-m68hc1x.c (m68hc12_add_stub,
	_bfd_m68hc11_elf_merge_private_bfd_data): ..
	* elf32-m68k.c (elf_m68k_relocate_section): ..
	* elf32-mcore.c (mcore_elf_unsupported_reloc,
	mcore_elf_relocate_section): ..
	* elf32-ppc.c (ppc_elf_merge_private_bfd_data, bad_shared_reloc,
	ppc_elf_check_relocs, ppc_elf_relocate_section,
	ppc_elf_begin_write_processing): ..
	* elf32-s390.c (elf_s390_check_relocs, invalid_tls_insn,
	elf_s390_relocate_section): ..
	* elf32-sh-symbian.c (sh_symbian_import_as,
	sh_symbian_process_embedded_commands,
	sh_symbian_relocate_section): ..
	* elf32-sh.c (sh_elf_relax_section, sh_elf_relax_delete_bytes,
	sh_elf_swap_insns, sh_elf_relocate_section, sh_elf_check_relocs,
	sh_elf_merge_private_data): ..
	* elf32-sparc.c (elf32_sparc_check_relocs,
	elf32_sparc_relocate_section,
	elf32_sparc_merge_private_bfd_data): ..
	* elf32-v850.c (v850_elf_check_relocs,
	v850_elf_merge_private_bfd_data): ..
	* elf32-xtensa.c (elf_xtensa_check_relocs,
	elf_xtensa_relocate_section, elf_xtensa_merge_private_bfd_data): ..
	* elf64-alpha.c (elf64_alpha_relax_with_lituse,
	elf64_alpha_relax_got_load, elf64_alpha_size_got_sections,
	elf64_alpha_relocate_section_r, elf64_alpha_relocate_section): ..
	* elf64-gen.c (elf64_generic_link_add_symbols): ..
	* elf64-ppc.c (ppc64_elf_merge_private_bfd_data, ppc_add_stub,
	ppc64_elf_check_relocs, ppc64_elf_edit_opd,
	ppc64_elf_relocate_section): ..
	* elf64-s390.c (elf_s390_check_relocs, invalid_tls_insn,
	elf_s390_relocate_section): ..
	* elf64-sh64.c (sh_elf64_relocate_section): ..
	* elf64-sparc.c (sparc64_elf_check_relocs,
	sparc64_elf_add_symbol_hook, sparc64_elf_relocate_section,
	sparc64_elf_merge_private_bfd_data): ..
	* elf64-x86-64.c (elf64_x86_64_check_relocs,
	elf64_x86_64_relocate_section): ..
	* elflink.c (_bfd_elf_add_default_symbol,
	_bfd_elf_link_assign_sym_version, elf_link_read_relocs_from_section,
	_bfd_elf_link_output_relocs, elf_link_add_object_symbols,
	bfd_elf_size_dynamic_sections, elf_link_output_extsym,
	elf_get_linked_section_vma, elf_fixup_link_order,
	bfd_elf_final_link, bfd_elf_gc_record_vtinherit,
	bfd_elf_gc_record_vtinherit, _bfd_elf_section_already_linked): ..
	* elfxx-ia64.c (elfNN_ia64_relax_section,
	elfNN_ia64_relocate_section, elfNN_ia64_merge_private_bfd_data): ..
	* elfxx-mips.c (mips_elf_perform_relocation,
	_bfd_mips_elf_check_relocs,
	_bfd_mips_elf_merge_private_bfd_data): ..
	* ieee.c (ieee_slurp_external_symbols): ..
	* ihex.c (ihex_bad_byte, ihex_scan, ihex_read_section): ..
	* libbfd.c (_bfd_generic_verify_endian_match): ..
	* linker.c (_bfd_generic_link_add_one_symbol,
	_bfd_generic_section_already_linked): ..
	* pdp11.c (translate_to_native_sym_flags): ..
	* pe-mips.c (coff_pe_mips_relocate_section): ..
	* peicode.h (pe_ILF_build_a_bfd): ..
	* srec.c (srec_bad_byte): ..
	* stabs.c (_bfd_link_section_stabs): ..
	* xcofflink.c (xcoff_link_add_symbols, xcoff_link_input_bfd): ..
	Replace all uses of bfd_archive_filename and bfd_get_section_ident
	with corresponding %B and %A in _bfd_error_handler format string.
	Replace occurrences of "fprintf (stderr," with _bfd_error_handler
	calls to use %A and %B.  Fix "against symbol .. from section" and
	similar error messages.  Combine multiple _bfd_error_handler calls
	where they were separated due to bfd_archive_filename deficiencies.
	* bfd-in2.h: Regenerate.

2004-08-12  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Report unrecognized
	relocation.

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

	* elf64-ppc.c (struct ppc_link_hash_entry): Add was_undefined.
	(struct ppc_link_hash_table): Remove no_multi_toc, multi_toc_needed.
	Make emit_stub_syms, stub_error and has_14bit_branch bit-fields.
	Add twiddled_syms.
	(link_hash_newfunc): Init was_undefined.
	(add_symbol_adjust): Don't set undefined dot symbols to defweak;
	Use undefweak instead.
	(ppc64_elf_check_directives): Fix undefs chain.
	(ppc64_elf_next_toc_section): Remove no_multi_toc and multi_toc_needed
	references.
	(ppc64_elf_size_stubs): Adjust for add_symbol_adjust change.
	(undo_symbol_twiddle, ppc64_elf_restore_symbols): New functions.
	* elf64-ppc.h (ppc64_elf_restore_symbols): Declare.

2004-08-09  Jakub Jelinek  <jakub@redhat.com>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): For -fno-pic
	error, test input_section flags rather than sec.

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

	* elf-bfd.h (struct elf_backend_data): Add
	elf_backend_archive_symbol_lookup.
	(_bfd_elf_archive_symbol_lookup): Declare.
	* elflink.c (_bfd_elf_archive_symbol_lookup): New function..
	(elf_link_add_archive_symbols): ..extracted from here.  Call the
	backend version.
	* elfxx-target.h (elf_backend_archive_symbol_lookup): Provide default.
	(elfNN_bed): Init new field.
	* elf64-ppc.c (elf_backend_check_directives): Define.
	(elf_backend_archive_symbol_lookup): Define.
	(struct ppc_link_hash_table): Add tls_get_add_fd.  Make tls_get_add
	a ppc_link_hash_entry pointer.
	(get_fdh): Move.
	(ppc64_elf_archive_symbol_lookup, opd_entry_value): New functions.
	(add_symbol_adjust, ppc64_elf_check_directives): New functions.
	(ppc64_elf_check_relocs, ppc64_elf_gc_mark_hook, func_desc_adjust,
	ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup,
	ppc64_elf_tls_optimize, allocate_dynrelocs, ppc_type_of_stub,
	ppc_build_one_stub, ppc64_elf_size_stubs, ppc64_elf_relocate_section,
	ppc64_elf_finish_dynamic_symbol): Handle branch relocs to function
	descriptor symbols.

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

	* elf64-ppc.c (struct ppc_link_hash_entry): Expand adjust_done comment.
	(ppc64_elf_add_symbol_hook): Test for NULL section.
	(get_sym_h): Formatting.
	(ppc64_elf_size_stubs): Include reloc addend in value stored as
	stub target_value.

	* elf64-ppc.c (ppc64_elf_relocate_section): Combine handling of
	long branch stubs with code handling plt and r2off branch stubs.

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

	* elf-bfd.h (_bfd_elf_gc_mark): Declare.
	* elflink.c (elf_link_input_bfd): Formatting.
	(_bfd_elf_gc_mark): Rename from elf_gc_mark and make global.  Adjust
	all callers.
	* elf64-ppc.c (struct ppc_link_hash_entry): Remove is_entry.
	(link_hash_newfunc): Don't set it.
	(ppc64_elf_copy_indirect_symbol): Nor copy it.
	(ppc64_elf_mark_entry_syms): Delete.
	(ppc64_elf_gc_mark_hook): Mark entry syms here.  Also mark opd
	sections.  Use get_opd_info.
	* elf64-ppc.h (ppc64_elf_mark_entry_syms): Delete.

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

	* elf64-ppc.c (adjust_opd_syms): Fix merge error.

	* elf64-ppc.c (struct ppc_link_hash_table): Remove have_undefweak.
	(func_desc_adjust): Don't set have_undefweak.
	(ppc64_elf_func_desc_adjust): Don't add an extr nop to sfpr.
	(ppc64_elf_relocate_section): NOP out calls to undefweak functions.

	* elf64-ppc.c (struct ppc_link_hash_entry): Make "oh" a
	"struct ppc_link_hash_entry *".  Adjust all references.
	(ppc64_elf_hide_symbol): Correct a comment.

	* elf64-ppc.c (get_opd_info): New function.
	(adjust_opd_syms): Use get_opd_info.  Define removed symbols as zero.
	(ppc64_elf_edit_opd): Use get_opd_info.  Check that sym has a dot
	before calling get_fdh.  Test fdh rather than h before dereferencing
	fdh.  Mark removed symbols in opd_adjust.
	(ppc64_elf_tls_optimize): Don't bother with opd adjustment here.
	(ppc64_elf_relocate_section): Use get_opd_info, and handle removed
	opd symbols.
	(ppc64_elf_output_symbol_hook): Likewise.

2004-08-06  Paul Brook  <paul@codesourcery.com>

	* elfarm-nabi.c (elf32_arm_howto_table): Add new EABI relocations.
	(elf32_arm_reloc_map): Add BFD_RELOC_ARM_RELABS32,
	BFD_RELOC_ARM_ROSEGREL32 and BFD_RELOC_ARM_SBREL32.
	* reloc.c: Add BFD_RELOC_ARM_RELABS32, BFD_RELOC_ARM_ROSEGREL32
	and BFD_RELOC_ARM_SBREL32.
	* bfd-in2.h, bbfd.h: Regenerate.

2004-08-01  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (mips_elf_calculate_relocation): Test only for
	the dynamic link symbol actually in use.

2004-08-01  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Handle bfd_link_hash_new

2004-07-31  Joel Brobecker  <brobecker@gnat.com>
	    Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (_bfd_mips_elf_symbol_processing): Handle
	SHN_MIPS_TEXT and SHN_MIPS_DATA.

2004-07-30  H.J. Lu  <hongjiu.lu@intel.com>
	    Nick Clifton  <nickc@redhat.com>

	PR 290
	* bfd.c (_bfd_default_error_handler): Make it global.

	* elf-bfd.h (elf_backend_data): Add link_order_error_handler.

	* elf.c (assign_section_numbers): Cope gracefully with sections
	which have SHF_LINK_ORDER set but no sh_link set up.
	* elflink.c (elf_get_linked_section_vma): Likewise.

	* elfxx-ia64.c (elf_backend_link_order_error_handler): New. Set
	it to NULL.

	* elfxx-target.h (elf_backend_link_order_error_handler): New.
	Set it to _bfd_default_error_handler.
	(elfNN_bed): Add elf_backend_link_order_error_handler.

	* libbfd-in.h (_bfd_default_error_handler): New.

	* libbfd.h: Regenerated.

2004-07-30  Jakub Jelinek  <jakub@redhat.com>

	* archures.c (bfd_mach_sparc_64bit_p): Define.
	* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Use it.
	* bfd-in2.h: Rebuilt.

2004-07-29  Alexandre Oliva  <aoliva@redhat.com>

	Introduce SH2a support.
	2004-02-18  Corinna Vinschen  <vinschen@redhat.com>
	* archures.c (bfd_mach_sh2a_nofpu): New.
	* bfd-in2.h: Rebuilt.
	* cpu-sh.c (SH2A_NOFPU_NEXT): New.
	(arch_info_struct): Add sh2a_nofpu.
	* elf32-sh.c (sh_elf_set_mach_from_flags): Handle sh2a_nofpu.
	2003-12-29  DJ Delorie  <dj@redhat.com>
	* reloc.c: Add relocs for sh2a.
	* bfd-in2.h: Regenerate.
	* libbfd.hh: Regenerate.
	2003-12-01  Michael Snyder  <msnyder@redhat.com>
	* archures.c (bfd_mach_sh2a): New.
	* bfd-in2.h: Rebuilt.
	* cpu-sh.c (SH_NEXT, SH2_NEXT, etc.): Change defines to enums.
	(SH2A_NEXT): New.
	(arch_info_struct): Add sh2a.
	* elf32-sh.c (sh_elf_set_mach_from_flags): Handle sh2a.

2004-07-28  Nick Clifton  <nickc@redhat.com>
	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR 273
	* som.c (setup_sections): Improve estimation of space sizes in
	relocatable objects.

2004-07-27  Jason Thorpe  <thorpej@wasabisystems.com>
	* config.bfd (hppa*-*-netbsd*): Set targ_defvec to
	bfd_elf32_hppa_nbsd_vec.  Add bfd_elf32_hppa_linux_vec
	to targ_selvecs.
	* configure.in (bfd_elf32_hppa_nbsd_vec): Add case.
	* configure: Regenerate.
	* elf32-hppa.c (elf32_hppa_object_p): Add "elf32-hppa-netbsd"
	case that accepts OSABI=NetBSD and OSABI=SysV.
	(elf32_hppa_set_gp): For "elf32-hppa-netbsd", set the GP to
	the base of .got or .data (if .got does not exist).
	(elf32_hppa_post_process_headers): For elf32-hppa-netbsd,
	set OSABI=NetBSD.
	(TARGET_BIG_SYM): Add bfd_elf32_hppa_nbsd_vec case.
	(TARGET_BIG_NAME): Add "elf32-hppa-netbsd" case.
	* targets.c (bfd_elf32_hppa_nbsd_vec): Add extern declaration.
	(_bfd_target_vector): Add bfd_elf32_hppa_nbsd_vec.

2004-07-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR 161/251
	* elf-bfd.h (bfd_elf_section_data): Add sec_group.
	(elf_sec_group): Defined.
	(bfd_elf_match_symbols_in_sections): New prototype.
	(_bfd_elf_setup_group_pointers): Likewise.

	* elf.c (bfd_elf_discard_group): Abort.
	(bfd_elf_set_group_contents): Also include relocation sections.
	Remove zero-fill for ld -r.
	(_bfd_elf_setup_group_pointers): New function.
	(elf_sort_elf_symbol): Likewise.
	(elf_sym_name_compare): Likewise.
	(bfd_elf_match_symbols_in_sections): Likewise.

	* elfcode.h (elf_object_p): Call _bfd_elf_setup_group_pointers.

	* elflink.c (match_group_member): New.
	(elf_link_input_bfd): Check group member for discarded section.
	(try_match_symbols_in_sections): New function.
	(already_linked): Likewise.
	(_bfd_elf_section_already_linked): Support mixing comdat group
	and linkonce section.

	* libbfd-in.h (bfd_section_already_linked_table_traverse): New.
	* linker.c (bfd_section_already_linked_table_traverse): New.

	* libbfd.h: Regenerated.

2004-07-27  Tomer Levi  <Tomer.Levi@nsc.com>

	* reloc.c: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16,
	BFD_RELOC_CRX_SWITCH32.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf32-crx.c: Support relocation/relaxation of
	BFD_RELOC_CRX_SWITCH* types.

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

	* elf64-ppc.c: Correct "Linker stubs" comment.

2004-07-26  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (bfd_elf_section_data): Add a pointer for the
	linked-to section.
	(elf_linked_to_section): New.

	* elf.c (assign_section_numbers): Set up sh_link for
	SHF_LINK_ORDER.

	* elfxx-ia64.c (elfNN_ia64_final_write_processing): Set sh_info
	to sh_link for SHT_IA_64_UNWIND sections.

2004-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_fixup_link_order): Add _() to error message.

2004-07-22  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_fixup_link_order): Issue a warning and flag
	an error if failed.

2004-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* aout-adobe.c (aout_32_section_already_linked): Defined.
	* aout-target.h (MY_section_already_linked): Likewise.
	* aout-tic30.c (MY_section_already_linked): Likewise.
	* binary.c (binary_section_already_linked): Likewise.
	* bout.c (b_out_section_already_linked): Likewise.
	* coff-alpha.c (_bfd_ecoff_section_already_linked): Likewise.
	* coff-mips.c (_bfd_ecoff_section_already_linked): Likewise.
	* coffcode.h (coff_section_already_linked): Likewise.
	* i386msdos.c (msdos_section_already_linked): Likewise.
	* i386os9k.c (os9k_section_already_linked): Likewise.
	* ieee.c (ieee_section_already_linked): Likewise.
	* ihex.c (ihex_section_already_linked): Likewise.
	* mach-o.c (bfd_mach_o_section_already_linked): Likewise.
	* mmo.c (mmo_section_already_linked): Likewise.
	* nlm-target.h (nlm_section_already_linked): Likewise.
	* oasys.c (oasys_section_already_linked): Likewise.
	* pef.c (bfd_pef_section_already_linked): Likewise.
	* ppcboot.c (ppcboot_section_already_linked): Likewise.
	* som.c (som_bfd_discard_group): Likewise.
	* srec.c (srec_section_already_linked): Likewise.
	* tekhex.c (tekhex_section_already_linked): Likewise.
	* versados.c (versados_section_already_linked): Likewise.
	* vms.c (vms_section_already_linked): Likewise.
	* coff-target.h (_bfd_xcoff_section_already_linked): Likewise.
	* xsym.c (bfd_sym_section_already_linked): Likewise.

	* bfd-in.h (bfd_section_already_linked_table_init): New.
	(bfd_section_already_linked_table_free): Likewise.

	* coff-rs6000.c (rs6000coff_vec): Add
	_bfd_generic_section_already_linked.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.

	* elf-bfd.h (_bfd_elf_section_already_linked): New prototype.
	* elflink.c (_bfd_elf_section_already_linked): New function.

	* elfxx-target.h (bfd_elfNN_section_already_linked): Defined.

	* libbfd-in.h (_bfd_nolink_section_already_linked): Defined.
	(_bfd_generic_section_already_linked): New.
	(bfd_section_already_linked_hash_entry): Likewise.
	(bfd_section_already_linked): Likewise.
	(bfd_section_already_linked_table_lookup): Likewise.
	(bfd_section_already_linked_table_insert): Likewise.

	* linker.c (bfd_section_already_linked): New.
	(_bfd_section_already_linked_table): Likewise.
	(bfd_section_already_linked_table_lookup): Likewise.
	(bfd_section_already_linked_table_insert): Likewise.
	(already_linked_newfunc): Likewise.
	(bfd_section_already_linked_table_init): Likewise.
	(bfd_section_already_linked_table_free): Likewise.
	(_bfd_generic_section_already_linked): Likewise.

	* section.c (bfd_section): Remove comdat.
	(bfd_comdat_info): Moved to ...
	* bfd-in.h (coff_comdat_info): Here.
	(bfd_coff_get_comdat_section): New.
	* coffgen.c (bfd_coff_get_comdat_section): Likewise.
	* libcoff-in.h (coff_section_tdata): Add comdat.
	* coffcode.h (handle_COMDAT): Updated.
	* cofflink.c (coff_link_add_symbols): Likewise.
	* ecoff.c (bfd_debug_section): Likewise.

	* targets.c (bfd_target): Add _section_already_linked.
	(BFD_JUMP_TABLE_LINK): Updated.

	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.
	* libcoff.h: Likewise.

2003-07-21  Paul Brook  <paul@codesourcery.com>

	* elflink.c (elf_get_linked_section_vma, compare_link_order,
	elf_fixup_link_order): New functions.
	(bfd_elf_final_link): Call elf_fixup_link_order.

2004-07-21  Alexandre Oliva  <aoliva@redhat.com>

	* elf-bfd.h (ELF_COMMON_DEF_P): New.
	* elflink.c (_bfd_elf_symbol_refs_local_p): Use it to handle
	common definitions.
	* elf-m10300.c: Use SYMBOL_REFERENCES_LOCAL instead of
	_bfd_elf_symbol_refs_local_p.
	* elf32-frv.c (FRVFDPIC_SYM_LOCAL): Remove hack for common
	symbols.

2004-07-19  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in.h (dynamic_lib_link_class): Add DYN_NO_ADD_NEEDED and
	DYN_NO_NEEDED.
	(bfd_elf_get_dyn_lib_class): New prototype.
	* elf.c (bfd_elf_get_dyn_lib_class): New function.

	* elflink.c (elf_link_add_object_symbols): Check DYN_AS_NEEDED,
	DYN_DT_NEEDED and DYN_NO_NEEDED bits to see if a DT_NEEDED
	entry is needed. Issue an error if a DT_NEEDED entry is needed
	for a file marked DYN_NO_NEEDED.
	(elf_link_check_versioned_symbol): Check the DYN_DT_NEEDED bit
	for DT_NEEDED tags.

	* bfd-in2.h: Regenerated.

2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elflink.c (elf_section_complain_discarded): Don't complain in
	.PARISC.unwind.

2004-07-10  James E Wilson  <wilson@specifixinc.com>

	* elfxx-ia64.c (elfNN_ia64_relax_ldxmov): Remove abfd parameter.
	(elfNN_ia64_install_value, elfNN_ia64_relax_brl): Likewise.
	(elfNN_ia64_relax_section, elfNN_ia64_relocate_section,
	elfNN_ia64_finish_dynamic_symbol, elfNN_ia64_finish_dynamic_sections):
	Fix callers.
	(elfNN_ia64_relax_brl): Change bfd_get_64 to bfd_getl64.  Change
	bfd_put_64 to bfd_putl64.
	(elfNN_ia64_relax_ldxmov, elfNN_ia64_install_value): Likewise.

2004-07-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR 240
	* elfxx-ia64.c (elfNN_ia64_relax_section): Only warn br in
	.init/.fini sections when trying to relax it.

2004-07-09  Jie Zhang  <zhangjie@magima.com.cn>

	* elf.c (assign_file_positions_for_segments): Make sure the
	.dynamic section is the first section in the PT_DYNAMIC segment.

2004-07-09  Nick Clifton  <nickc@redhat.com>

	* config.bfd: Change sh-sybmian-elf to sh-*-symbianelf.
	* elf32-sh-symbian.c: Rename the sh_find_elf_flags and
	sh_elf_get_flags_from_mach functions so that they do not conflict
	when this target is built with other sh-elf targets.
	* elf32-sh.c (sh_elf_get_flags_from_mach): Remove bogus
	suppression of this function.
	(sh_elf_find_flags): Likewise.

2004-07-07  Tomer Levi  <Tomer.Levi@nsc.com>

	* Makefile.am (ALL_MACHINES): Add cpu-crx.lo.
	(ALL_MACHINES_CFILES): Add cpu-crx.c.
	(BFD32_BACKENDS): Add elf32-crx.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-crx.c.
	(cpu-crx.lo): New target.
	(elf32-crx.lo): New target.
	* Makefile.in: Regenerate.
	* archures.c (bfd_architecture): Add bfd_{arch,mach}_crx.
	(bfd_archures_list): Add bfd_crx_arch.
	* bfd-in2.h: Regenerate.
	* config.bfd: Handle crx-*-elf*, crx*.
	* configure.in: Handle bfd_elf32_crx_vec.
	* configure: Regenerate.
	* cpu-crx.c: New file.
	* elf32-crx.c: Likewise.
	* libbfd.h: Regenerate.
	* reloc.c: Add BFD_RELOC_CRX_REL4, BFD_RELOC_CRX_REL8,
	BFD_RELOC_CRX_REL8_CMP, BFD_RELOC_CRX_REL16, BFD_RELOC_CRX_REL24,
	BFD_RELOC_CRX_REL32, BFD_RELOC_CRX_REGREL12, BFD_RELOC_CRX_REGREL22,
	BFD_RELOC_CRX_REGREL28, BFD_RELOC_CRX_REGREL32, BFD_RELOC_CRX_ABS16,
	BFD_RELOC_CRX_ABS32, BFD_RELOC_CRX_NUM8, BFD_RELOC_CRX_NUM16,
	BFD_RELOC_CRX_NUM32, BFD_RELOC_CRX_IMM16 and BFD_RELOC_CRX_IMM32
	* targets.c (bfd_elf32_crx_vec): Declare.
	(bfd_target_vector): Add bfd_elf32_crx_vec.

2004-07-06  Nick Clifton  <nickc@redhat.com>

	* config.bfd: Add sh-symbian-elf target.
	* configure.in: Add bfd_elf32_shl_symbian_vec.
	* configure: Regenerate.
	* elf-bfd.h (struct elf_backend_data): Add new field
	'check_directives'.
	* elflink.c (elf_link_add_object_symbols): Invoke the
	check_directives function, if defined.
	* elfxx-target.h: Provide a default, NULL definition for
	check_directives.
	* targets.c: Add bfd_elf32_shl_symbian_vec.
	* elf32-sh.c (sh_elf_swap_insns): Protect against unnecessary
	definition.
	(elf32_shlin_grok_prstatus, elf32_shlib_grok_psinfo,
	* sh_elf_get_flags_from_mach, sh_elf_find_flags): Likewise.
	(TARGET_BIG_SYM, TARGET_LITTLE_SYM): Only define if they have
	not already been defined.
	* elf32-sh64.c: Use SH_TARGET_ALREADY_DEFINED.
	* sh-symbian.c: New file.  Provide functions to support the
	* sh-symbian-elf target.
	* Makefile.am: Add elf32-sh-symbian.c
	* Makefile.in: Regenerate.

2004-07-05  Andrew Stubbs <andrew.stubbs@superh.com>

	* elf32-sh.c: Include ../opcodes/sh-opc.h.
	* Makefile.am: Ran make dep-am.
	* Makefile.in: Ran make dep-in.

2004-07-03  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* cofflink.c (_bfd_coff_generic_relocate_section): Resolve PE weak
	externals properly.

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

	* config.bfd: Add want64 to configuration target s390-*-linux*.

2004-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd.c (bfd_get_section_ident): New.

	* elflink.c (elf_link_read_relocs_from_section): Call
	bfd_get_section_ident to identify the section when reporting
	error.
	(_bfd_elf_link_output_relocs): Likewise.
	(elf_link_output_extsym): Likewise.
	(elf_link_input_bfd): Likewise.
	(bfd_elf_gc_record_vtinherit): Likewise.

	* bfd-in2.h: Regenerated.

2004-07-01  Jie Zhang  <zhangjie@magima.com.cn>
	    Nick Clifton  <nickc@redhat.com>

	PR 204
	* elfxx-mips.c (_bfd_mips_elf_final_link): Pass the correct number
	of section symbols to mips_elf_sort_hash_table ().

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

	* elflink.c (elf_section_ignore_discarded_relocs): Revert last
	change.  Comment.
	(elf_section_complain_discarded): New function.  Handle
	.gcc_except_table too.
	(elf_link_input_bfd): Rewrite handling of relocs against symbols
	in discarded sections.
	* elf-bfd.h (elf_discarded_section): Protect macro arg.

2004-06-30  James E Wilson  <wilson@specifixinc.com>

	* elfxx-ia64.c (elfNN_ia64_check_relocs): New local pltoff.  Initialize
	to NULL.  Call get_pltoff if NULL and NEED_PLTOFF is true.

2004-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR 233
	* elflink.c (elf_link_input_bfd): Issue an error for non-debug
	local references to discarded sections and report their
	locations.

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

	* elflink.c (elf_section_ignore_discarded_relocs): Don't test
	sec_info_type, test section name instead.

2004-06-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR 240
	* elfxx-ia64.c (elfNN_ia64_relax_section): Don't relax branch
	in .init/.fini sections.

2004-06-29  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_relocate_section): Use
	bfd_get_section_limit.

2004-06-29  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_combine_prop_entries): Don't change the
	output section size.

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

	* elf64-mmix.c (mmix_set_relaxable_size): Save original size in
	rawsize.
	(mmix_elf_perform_relocation): Adjust for above change.
	(mmix_elf_relocate_section): Likewise.
	(mmix_elf_relax_section): Likewise.  Use output_section->rawsize.
	(mmix_elf_get_section_contents): Delete.
	(bfd_elf64_get_section_contents): Delete.
	(mmix_elf_relocate_section): Zero stub area.
	* linker.c (default_indirect_link_order): Alloc max of section size
	and rawsize.
	* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
	* section.c (bfd_malloc_and_get_section): Likewise.
	(struct bfd_section): Update rawsize comment.
	* bfd-in2.h: Regenerate.

	* reloc16.c (bfd_coff_reloc16_relax_section): Set rawsize.

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

	* bfd-in.h (bfd_get_section_limit): Define.
	* reloc.c (bfd_perform_relocation, bfd_install_relocation)
	(_bfd_final_link_relocate): Use bfd_get_section_limit.
	* aout-tic30.c (tic30_aout_final_link_relocate): Likewise.
	* coff-arm.c (coff_arm_relocate_section): Likewise.
	* coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): Likewise.
	* cpu-ns32k.c (do_ns32k_reloc): Likewise.
	(bfd_ns32k_final_link_relocate): Likewise.
	* elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): Likwise.
	* elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): Likewise.
	* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc)
	(i860_howto_highadj_reloc, i860_howto_splitn_reloc): Likewise.
	* elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc)
	(m32r_elf_generic_reloc, m32r_elf_relocate_section): Likewise.
	* elf32-m68hc1x.c (m68hc11_elf_special_reloc): Likewise.
	* elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
	* elf32-or32.c (or32_elf_consth_reloc): Likewise.
	* elf32-ppc.c (ppc_elf_addr16_ha_reloc): Likewise.
	* elf32-s390.c (s390_elf_ldisp_reloc): Likewise.
	* elf32-sh.c (sh_elf_reloc_loop): Likewise.
	* elf32-sparc.c (sparc_elf_wdisp16_reloc): Likewise.
	(sparc_elf_hix22_reloc, sparc_elf_lox10_reloc): Likwise.
	* elf32-v850.c (v850_elf_reloc): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_24_reloc): Likewise.
	* elf32-xtensa.c (bfd_elf_xtensa_reloc): Likewise.
	* elf64-alpha.c (elf64_alpha_reloc_gpdisp): Likewise.
	* elf64-mips.c (mips_elf64_gprel32_reloc)
	(mips16_gprel_reloc): Likewise.
	* elf64-mmix.c (mmix_elf_reloc): Likewise.
	* elf64-s390.c (s390_elf_ldisp_reloc): Likewise.
	* elf64-sparc.c (init_insn_reloc): Likewise.
	* elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp)
	(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_lo16_reloc)
	(_bfd_mips_elf_generic_reloc): Likewise.
	* bfd-in2.h: Regenerate.

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

	* bfd-in.h (struct stab_info): Move from stabs.c.
	* stabs.c (struct stab_link_includes_table): Delete.
	(stab_link_includes_lookup): Delete.
	(_bfd_write_section_stabs, _bfd_write_stab_strings): Remove one
	level of indirection from sinfo parm.
	(_bfd_link_section_stabs): Likewise.  Set SEC_LINKER_CREATED on
	stabstr section.  Adjust hash table accesses.
	* coff-ppc.c (ppc_bfd_coff_final_link): Do include rawsize in contents
	alloc.  Adjust stab_info test.
	* cofflink.c (_bfd_coff_link_hash_table_init): Clear stab_info.
	(_bfd_coff_final_link): Adjust stab_info test.
	(_bfd_coff_link_input_bfd): Ignore SEC_LINKER_CREATED sections.
	* elf-bfd.h (struct elf_link_hash_table): Include struct stab_info
	in place.
	* libcoff-in.h (struct coff_link_hash_table): Likewise.
	* elf.c (_bfd_elf_link_hash_table_init): Clear stab_info.
	* elflink.c (bfd_elf_final_link): Don't attempt to link linker created
	stabstr section.  Adjust stab_info test.
	* libbfd-in.h (_bfd_link_section_stabs, _bfd_write_section_stabs)
	(_bfd_write_stab_strings): Adjust prototypes.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.
	* bfd-in2.h: Regenerate.

2004-06-27  Mark Kettenis  <kettenis@gnu.org>

	From Miod Vallat <miod@online.fr>:
	* aoutx.h (NAME(aout,machine_type)): Handle bfd_arch_m88k.

2004-06-26  Alexandre Oliva  <aoliva@redhat.com>

	* elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): Delete.
	(struct elf32_mn10300_link_hash_entry): Remove
	pcrel_relocs_copied.
	(mn10300_elf_check_relocs): Only reserve dynamic relocations for
	R_MN10300_32.  Don't adjust pcrel_relocs_copied.
	(mn10300_elf_final_link_relocate): Fail for direct, pc-relative
	and gotoff relocations if the symbol doesn't bind locally.  Use
	_bfd_elf_symbol_refs_local_p to test.  Don't create dynamic
	relocation for PCREL32.
	(mn10300_elf_relocate_section): Use _bfd_elf_symbol_refs_local_p
	to test whether a symbol binds locally.
	(elf32_mn10300_link_hash_newfunc): Don't initialize
	pcrel_relocs_copied.
	(_bfd_mn10300_elf_discard_copies): Delete.
	(_bfd_mn10300_elf_size_dynamic_sections): Don't call it.

2004-06-26  Mark Kettenis  <kettenis@gnu.org>

	* config.bfd: Replace m88k-*-openbsd* with m88*-*-openbsd*.

2004-06-25  Joel Brobecker  <brobecker@gnat.com>

	* som.c (som_set_reloc_info): Correct small typo.

2004-06-25  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* elf32-m32r.c (m32r_elf_howto_table): Support R_M32R_GOTOFF.
	(m32r_elf_relocate_section): Changed for R_M32R_GOTOFF.
	(m32r_elf_gcsweep_hook): Likewise.
	(m32r_elf_check_relocs): Likewise.
	(m32r_elf_howto_table): Added R_M32R_GOTOFF_HI_ULO,
	R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.
	* reloc.c: Added BFD_RELOC_M32R_GOTOFF_HI_ULO,
	BFD_RELOC_M32R_GOTOFF_HI_SLO and BFD_RELOC_M32R_GOTOFF_LO.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Regenerated.

2004-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	* elf64-x86-64.c (elf64_x86_64_check_relocs): Warn overflow
	relocation symbol.
	(elf64_x86_64_relocate_section): Issue an error for
	R_X86_64_PC8, R_X86_64_PC16 and R_X86_64_PC32 relocations
	against global symbols when building shared library.

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

	* section.c (struct sec): Rename "_cooked_size" to "size".
	Rename "_raw_size" to "rawsize".
	(STD_SECTION): Adjust comments.
	(bfd_set_section_size, bfd_get_section_contents): Use size.
	(bfd_malloc_and_get_section): New function.
	* bfd-in.h (bfd_section_size, bfd_get_section_size): Use size.
	* coff-sh.c (sh_relax_section): Alloc coff_section_data struct early.
	Correctly free reloc and contents memory.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Delete FIXME
	and fake CIE now that we can shink section size to zero.
	(_bfd_elf_write_section_eh_frame): Likewise..
	* elf32-ppc.c (ppc_elf_relax_section): Delay reading section contents.
	* elf-m10300.c (mn10300_elf_final_link_relocate): Don't use
	_bfd_stab_section_offset.  Use _bfd_elf_section_offset.
	* stabs.c (_bfd_stab_section_offset_): Remove unused args and
	unneeded indirection.
	* elf.c (_bfd_elf_section_offset): .. and update call.
	* libbfd-in.h (_bfd_stab_section_offset): Update prototype.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

	Replace occurrences of "_raw_size" and "_cooked_size" in most places
	with "size".  Set new "rawsize" for stabs, eh_frame, and SEC_MERGE
	sections.  Use "rawsize", if non-zero, for bfd_get_section_contents
	calls if the section might be a stabs, eh_frame, or SEC_MERGE section.
	Similarly use "rawsize", if non-zero, in reloc functions to validate
	reloc addresses.  Use new bfd_malloc_and_get_section in most places
	where bfd_get_section_contents was called.  Expand all occurrences of
	bfd_section_size and bfd_get_section_size.  Rename "raw_size" var in
	grok_prstatus and similar functions to "size".
	* aix386-core.c (aix386_core_file_p): ..
	* aix5ppc-core.c (xcoff64_core_p): ..
	* aout-adobe.c (aout_adobe_callback, aout_adobe_write_object_contents,
	aout_adobe_set_section_contents): ..
	* aout-target.h (callback): ..
	* aout-tic30.c (tic30_aout_callback, tic30_aout_final_link_relocate,
	MY_bfd_final_link): ..
	* aoutf1.h (sunos4_core_file_p): ..
	* aoutx.h (some_aout_object_p, adjust_o_magic, adjust_z_magic,
	adjust_n_magic, adjust_sizes_and_vmas, translate_from_native_sym_flags,
	final_link, aout_link_input_section): ..
	* binary.c (binary_object_p, binary_canonicalize_symtab,
	binary_set_section_contents): ..
	* bout.c (b_out_callback, b_out_write_object_contents,
	b_out_set_section_contents, b_out_bfd_relax_section,
	b_out_bfd_get_relocated_section_contents): ..
	* cisco-core.c (cisco_core_file_validate): ..
	* coff-alpha.c (alpha_ecoff_object_p,
	alpha_ecoff_get_relocated_section_conten, alpha_relocate_section): ..
	* coff-arm.c (coff_arm_relocate_section,
	bfd_arm_allocate_interworking_sections): ..
	* coff-h8300.c (h8300_reloc16_extra_cases,
	h8300_bfd_link_add_symbols): ..
	* coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): ..
	* coff-ppc.c (coff_ppc_relocate_section, ppc_allocate_toc_section,
	ppc_bfd_coff_final_link): ..
	* coff-rs6000.c (xcoff_reloc_type_br, xcoff_ppc_relocate_section): ..
	* coff-sh.c (sh_relax_section, sh_relax_delete_bytes,
	sh_align_loads, sh_coff_get_relocated_section_contents): ..
	* coff64-rs6000.c (xcoff64_write_object_contents,
	xcoff64_reloc_type_br, xcoff64_ppc_relocate_section): ..
	* coffcode.h (coff_compute_section_file_positions,
	coff_write_object_contents): ..
	* coffgen.c (make_a_section_from_file, coff_write_symbols,
	coff_section_symbol, build_debug_section): ..
	* cofflink.c (coff_link_add_symbols, _bfd_coff_final_link,
	process_embedded_commands, _bfd_coff_link_input_bfd,
	_bfd_coff_write_global_sym): ..
	* cpu-arm.c (bfd_arm_update_notes, bfd_arm_get_mach_from_notes): ..
	* cpu-ns32k.c (do_ns32k_reloc, _bfd_ns32k_final_link_relocate): ..
	* dwarf1.c (parse_line_table, _bfd_dwarf1_find_nearest_line): ..
	* dwarf2.c (read_indirect_string, read_abbrevs, decode_line_info,
	_bfd_dwarf2_find_nearest_line): ..
	* ecoff.c (bfd_debug_section, ecoff_set_symbol_info,
	ecoff_compute_section_file_positions,
	_bfd_ecoff_write_object_contents, ecoff_indirect_link_order): ..
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame,
	_bfd_elf_discard_section_eh_frame_hdr,
	_bfd_elf_maybe_strip_eh_frame_hdr, _bfd_elf_eh_frame_section_offset,
	_bfd_elf_write_section_eh_frame,
	_bfd_elf_write_section_eh_frame_hdr): ..
	* elf-hppa.h (elf_hppa_sort_unwind): ..
	* elf-m10200.c (mn10200_elf_relax_section,
	mn10200_elf_relax_delete_bytes,
	mn10200_elf_get_relocated_section_contents): ..
	* elf-m10300.c (_bfd_mn10300_elf_create_got_section,
	mn10300_elf_check_relocs, mn10300_elf_relax_section,
	mn10300_elf_relax_delete_bytes,
	mn10300_elf_get_relocated_section_contents,
	_bfd_mn10300_elf_adjust_dynamic_symbol,
	_bfd_mn10300_elf_discard_copies,
	_bfd_mn10300_elf_size_dynamic_sections,
	_bfd_mn10300_elf_finish_dynamic_sections): ..
	* elf.c (_bfd_elf_print_private_bfd_data, bfd_elf_get_bfd_needed_list,
	_bfd_elf_make_section_from_phdr, elf_fake_sections,
	bfd_elf_set_group_contents, map_sections_to_segments,
	elf_sort_sections, assign_file_positions_for_segments,
	SECTION_SIZE, copy_private_bfd_data,
	_bfd_elf_get_dynamic_reloc_upper_bound,
	_bfd_elf_canonicalize_dynamic_reloc, elfcore_maybe_make_sect,
	_bfd_elfcore_make_pseudosection, elfcore_grok_prstatus,
	elfcore_grok_lwpstatus, elfcore_grok_win32pstatus,
	elfcore_grok_note, elfcore_grok_nto_status, elfcore_grok_nto_gregs,
	_bfd_elf_rel_local_sym, _bfd_elf_get_synthetic_symtab): ..
	* elf32-arm.h (bfd_elf32_arm_allocate_interworking_sect,
	bfd_elf32_arm_process_before_allocation,
	elf32_arm_adjust_dynamic_symbol, allocate_dynrelocs,
	elf32_arm_size_dynamic_sections, elf32_arm_finish_dynamic_sections,
	elf32_arm_write_section): ..
	* elf32-cris.c (cris_elf_grok_prstatus,
	elf_cris_finish_dynamic_sections, cris_elf_gc_sweep_hook,
	elf_cris_adjust_gotplt_to_got, elf_cris_adjust_dynamic_symbol,
	cris_elf_check_relocs, elf_cris_size_dynamic_sections,
	elf_cris_discard_excess_dso_dynamics,
	elf_cris_discard_excess_program_dynamics): ..
	* elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): ..
	* elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): ..
	* elf32-frv.c (_frvfdpic_add_dyn_reloc, _frvfdpic_add_rofixup,
	_frv_create_got_section, _frvfdpic_assign_plt_entries,
	elf32_frvfdpic_size_dynamic_sections,
	elf32_frvfdpic_modify_segment_map,
	elf32_frvfdpic_finish_dynamic_sections): ..
	* elf32-h8300.c (elf32_h8_relax_section, elf32_h8_relax_delete_bytes,
	elf32_h8_get_relocated_section_contents): ..
	* elf32-hppa.c (hppa_build_one_stub, hppa_size_one_stub,
	elf32_hppa_adjust_dynamic_symbol, allocate_plt_static,
	allocate_dynrelocs, elf32_hppa_size_dynamic_sections, group_sections,
	elf32_hppa_size_stubs, elf32_hppa_set_gp, elf32_hppa_build_stubs,
	elf32_hppa_finish_dynamic_sections): ..
	* elf32-i370.c (i370_elf_adjust_dynamic_symbol,
	i370_elf_size_dynamic_sections, i370_elf_check_relocs,
	i370_elf_finish_dynamic_sections): ..
	* elf32-i386.c (elf_i386_grok_prstatus, elf_i386_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_i386_size_dynamic_sections,
	elf_i386_relocate_section, elf_i386_finish_dynamic_sections): ..
	* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc,
	i860_howto_highadj_reloc, i860_howto_splitn_reloc): ..
	* elf32-ip2k.c (ip2k_is_switch_table_128,
	ip2k_relax_switch_table_128, ip2k_is_switch_table_256,
	ip2k_relax_switch_table_256, ip2k_elf_relax_section,
	adjust_all_relocations, ip2k_elf_relax_delete_bytes): ..
	* elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc,
	m32r_elf_generic_reloc, m32r_elf_adjust_dynamic_symbol,
	allocate_dynrelocs, m32r_elf_size_dynamic_sections,
	m32r_elf_relocate_section, m32r_elf_finish_dynamic_sections,
	m32r_elf_relax_section, m32r_elf_relax_delete_bytes,
	m32r_elf_get_relocated_section_contents): ..
	* elf32-m68hc11.c (m68hc11_elf_build_one_stub,
	m68hc11_elf_size_one_stub, m68hc11_elf_relax_section,
	m68hc11_elf_relax_delete_bytes): ..
	* elf32-m68hc12.c (m68hc12_elf_build_one_stub,
	m68hc12_elf_size_one_stub): ..
	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs,
	elf32_m68hc11_build_stubs, m68hc11_elf_special_reloc): ..
	* elf32-m68k.c (elf_m68k_check_relocs, elf_m68k_gc_sweep_hook,
	elf_m68k_adjust_dynamic_symbol, elf_m68k_size_dynamic_sections,
	elf_m68k_discard_copies, elf_m68k_finish_dynamic_sections): ..
	* elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
	elf32_mips_grok_prstatus): ..
	* elf32-or32.c (or32_elf_consth_reloc): ..
	* elf32-ppc.c (ppc_elf_relax_section, ppc_elf_addr16_ha_reloc,
	elf_create_pointer_linker_section, ppc_elf_create_linker_section,
	ppc_elf_additional_program_headers, ppc_elf_adjust_dynamic_symbol,
	allocate_dynrelocs, ppc_elf_size_dynamic_sections,
	ppc_elf_finish_dynamic_sections, ppc_elf_grok_prstatus,
	ppc_elf_final_write_processing): ..
	* elf32-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_s390_size_dynamic_sections,
	elf_s390_finish_dynamic_sections, elf_s390_grok_prstatus): ..
	* elf32-sh.c (sh_elf_reloc_loop, sh_elf_relax_section,
	sh_elf_relax_delete_bytes, sh_elf_align_loads,
	sh_elf_adjust_dynamic_symbol, allocate_dynrelocs,
	sh_elf_size_dynamic_sections, sh_elf_get_relocated_section_contents,
	sh_elf_finish_dynamic_sections, elf32_shlin_grok_prstatus): ..
	* elf32-sh64-com.c (sh64_address_in_cranges,
	sh64_get_contents_type): ..
	* elf32-sh64.c (sh64_find_section_for_address,
	sh64_elf_final_write_processing): ..
	* elf32-sparc.c (sparc_elf_wdisp16_reloc, sparc_elf_hix22_reloc,
	sparc_elf_lox10_reloc, elf32_sparc_adjust_dynamic_symbol,
	allocate_dynrelocs, elf32_sparc_size_dynamic_sections,
	elf32_sparc_relocate_section, elf32_sparc_finish_dynamic_sections): ..
	* elf32-v850.c (v850_elf_reloc, v850_elf_relax_section): ..
	* elf32-vax.c (elf_vax_check_relocs, elf_vax_adjust_dynamic_symbol,
	elf_vax_size_dynamic_sections, elf_vax_discard_copies,
	elf_vax_instantiate_got_entries, elf_vax_relocate_section,
	elf_vax_finish_dynamic_sections): ..
	* elf32-xstormy16.c (xstormy16_elf_24_reloc,
	xstormy16_elf_check_relocs, xstormy16_relax_plt_check,
	xstormy16_elf_relax_section, xstormy16_elf_always_size_sections,
	xstormy16_elf_finish_dynamic_sections): ..
	* elf32-xtensa.c (xtensa_read_table_entries,
	elf_xtensa_allocate_got_size, elf_xtensa_allocate_local_got_size,
	elf_xtensa_size_dynamic_sections, elf_xtensa_do_reloc,
	bfd_elf_xtensa_reloc, elf_xtensa_relocate_section,
	elf_xtensa_combine_prop_entries, elf_xtensa_finish_dynamic_sections,
	elf_xtensa_discard_info_for_section, elf_xtensa_grok_prstatus,
	get_relocation_opcode, retrieve_contents, find_relaxable_sections,
	collect_source_relocs, is_resolvable_asm_expansion, remove_literals,
	relax_section, shrink_dynamic_reloc_sections, relax_property_section,
	xtensa_callback_required_dependence): ..
	* elf64-alpha.c (elf64_alpha_reloc_gpdisp, elf64_alpha_relax_section,
	elf64_alpha_check_relocs, elf64_alpha_adjust_dynamic_symbol,
	elf64_alpha_calc_got_offsets_for_symbol, elf64_alpha_calc_got_offsets,
	elf64_alpha_size_plt_section, elf64_alpha_size_plt_section_1,
	elf64_alpha_always_size_sections, elf64_alpha_calc_dynrel_sizes,
	elf64_alpha_size_rela_got_section, elf64_alpha_size_rela_got_1,
	elf64_alpha_size_dynamic_sections, elf64_alpha_emit_dynrel,
	elf64_alpha_finish_dynamic_sections, elf64_alpha_final_link): ..
	* elf64-hppa.c (allocate_dynrel_entries,
	elf64_hppa_size_dynamic_sections,
	elf64_hppa_finish_dynamic_sections): ..
	* elf64-mips.c (mips_elf64_gprel32_reloc, mips16_gprel_reloc,
	mips_elf64_canonicalize_dynamic_reloc, mips_elf64_slurp_reloc_table,
	elf64_mips_grok_prstatus): ..
	* elf64-mmix.c (mmix_elf_perform_relocation, mmix_elf_reloc,
	mmix_elf_relocate_section, mmix_elf_final_link,
	mmix_set_relaxable_size, _bfd_mmix_after_linker_allocation,
	mmix_elf_relax_section, mmix_elf_get_section_contents): ..
	* elf64-ppc.c (ppc64_elf_object_p, ppc64_elf_grok_prstatus,
	ppc64_elf_check_relocs, ppc64_elf_func_desc_adjust,
	ppc64_elf_adjust_dynamic_symbol, ppc64_elf_edit_opd,
	allocate_dynrelocs, ppc64_elf_size_dynamic_sections,
	ppc_build_one_stub, ppc_size_one_stub, ppc64_elf_next_toc_section,
	toc_adjusting_stub_needed, group_sections, ppc64_elf_size_stubs,
	ppc64_elf_build_stubs, ppc64_elf_relocate_section,
	ppc64_elf_finish_dynamic_sections): ..
	* elf64-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_s390_size_dynamic_sections,
	elf_s390_finish_dynamic_sections): ..
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents,
	sh_elf64_check_relocs, sh64_elf64_adjust_dynamic_symbol,
	sh64_elf64_discard_copies, sh64_elf64_size_dynamic_sections,
	sh64_elf64_finish_dynamic_sections): ..
	* elf64-sparc.c (sparc64_elf_slurp_reloc_table, init_insn_reloc,
	sparc64_elf_check_relocs, sparc64_elf_adjust_dynamic_symbol,
	sparc64_elf_size_dynamic_sections, sparc64_elf_relocate_section,
	sparc64_elf_finish_dynamic_symbol,
	sparc64_elf_finish_dynamic_sections): ..
	* elf64-x86-64.c (elf64_x86_64_grok_prstatus,
	elf64_x86_64_adjust_dynamic_symbol, allocate_dynrelocs,
	elf64_x86_64_size_dynamic_sections, elf64_x86_64_relocate_section,
	elf64_x86_64_finish_dynamic_sections): ..
	* elfarm-nabi.c (elf32_arm_nabi_grok_prstatus): ..
	* elfcode.h (elf_slurp_reloc_table): ..
	* elflink.c (_bfd_elf_create_got_section, elf_add_dt_needed_tag,
	elf_finalize_dynstr, elf_link_add_object_symbols,
	bfd_elf_size_dynamic_sections, elf_link_sort_relocs,
	elf_link_input_bfd, bfd_elf_final_link, bfd_elf_discard_info): ..
	* elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
	elf32_mips_grok_prstatus): ..
	* elfxx-ia64.c (elfNN_ia64_relax_section, allocate_dynrel_entries,
	elfNN_ia64_size_dynamic_sections, elfNN_ia64_install_dyn_reloc,
	elfNN_ia64_choose_gp, elfNN_ia64_final_link,
	elfNN_ia64_finish_dynamic_sections): ..
	* elfxx-mips.c (mips_elf_create_procedure_table,
	mips_elf_check_mips16_stubs, _bfd_mips_elf_gprel16_with_gp,
	_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_generic_reloc,
	mips_elf_global_got_index, mips_elf_multi_got,
	mips_elf_create_compact_rel_section, mips_elf_calculate_relocation,
	mips_elf_allocate_dynamic_relocations,
	mips_elf_create_dynamic_relocation, _bfd_mips_elf_fake_sections,
	_bfd_mips_relax_section, _bfd_mips_elf_adjust_dynamic_symbol,
	_bfd_mips_elf_always_size_sections,
	_bfd_mips_elf_size_dynamic_sections,
	_bfd_mips_elf_finish_dynamic_symbol,
	_bfd_mips_elf_finish_dynamic_sections,
	_bfd_mips_elf_modify_segment_map, _bfd_mips_elf_discard_info,
	_bfd_mips_elf_write_section, _bfd_mips_elf_set_section_contents,
	_bfd_elf_mips_get_relocated_section_contents,
	_bfd_mips_elf_final_link, _bfd_mips_elf_merge_private_bfd_data): ..
	* hp300hpux.c (callback): ..
	* hppabsd-core.c (make_bfd_asection): ..
	* hpux-core.c (make_bfd_asection): ..
	* i386linux.c (linux_link_create_dynamic_sections,
	bfd_i386linux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* i386msdos.c (msdos_write_object_contents): ..
	* i386os9k.c (os9k_callback, os9k_write_object_contents,
	os9k_set_section_contents): ..
	* ieee.c (parse_expression, ieee_slurp_external_symbols,
	ieee_slurp_sections, ieee_slurp_debug, ieee_slurp_section_data,
	ieee_write_section_part, do_with_relocs, do_as_repeat,
	do_without_relocs, ieee_write_debug_part, init_for_output,
	ieee_set_section_contents): ..
	* ihex.c (ihex_scan, ihex_read_section, ihex_get_section_contents): ..
	* irix-core.c (do_sections, make_bfd_asection): ..
	* libaout.h (aout_section_merge_with_text_p): ..
	* libbfd.c (_bfd_generic_get_section_contents,
	_bfd_generic_get_section_contents_in_window): ..
	* linker.c (default_indirect_link_order): ..
	* lynx-core.c (make_bfd_asection): ..
	* m68klinux.c (linux_link_create_dynamic_sections,
	bfd_m68klinux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* mach-o.c (bfd_mach_o_make_bfd_section,
	bfd_mach_o_scan_read_dylinker, bfd_mach_o_scan_read_dylib,
	bfd_mach_o_scan_read_thread, bfd_mach_o_scan_read_symtab,
	bfd_mach_o_scan_read_segment): ..
	* merge.c (_bfd_add_merge_section, record_section, merge_strings,
	_bfd_merge_sections): ..
	* mmo.c (mmo_find_sec_w_addr, mmo_get_spec_section, mmo_get_loc,
	mmo_map_set_sizes, mmo_canonicalize_symtab,
	mmo_internal_write_section, mmo_write_object_contents): ..
	* netbsd-core.c (netbsd_core_file_p): ..
	* nlm32-alpha.c (nlm_alpha_read_reloc, nlm_alpha_write_import,
	nlm_alpha_set_public_section): ..
	* nlm32-ppc.c (nlm_powerpc_read_reloc, nlm_powerpc_write_reloc): ..
	* nlm32-sparc.c (nlm_sparc_write_import): ..
	* nlmcode.h (add_bfd_section, nlm_swap_auxiliary_headers_in,
	nlm_compute_section_file_positions): ..
	* oasys.c (oasys_object_p, oasys_slurp_section_data,
	oasys_write_sections, oasys_write_data, oasys_set_section_contents): ..
	* opncls.c (get_debug_link_info): ..
	* osf-core.c (make_bfd_asection): ..
	* pdp11.c (some_aout_object_p, adjust_o_magic, adjust_z_magic,
	adjust_n_magic, adjust_sizes_and_vmas, squirt_out_relocs,
	final_link, aout_link_input_section): ..
	* peXXigen.c (_bfd_XXi_swap_sym_in, _bfd_XXi_swap_aouthdr_out,
	pe_print_idata, pe_print_edata, pe_print_pdata, pe_print_reloc): ..
	* pef.c (bfd_pef_make_bfd_section, bfd_pef_print_loader_section,
	bfd_pef_scan_start_address, bfd_pef_parse_symbols): ..
	* ppcboot.c (ppcboot_object_p, ppcboot_canonicalize_symtab): ..
	* ptrace-core.c (ptrace_unix_core_file_p): ..
	* reloc.c (bfd_perform_relocation, bfd_install_relocation,
	_bfd_final_link_relocate, bfd_generic_relax_section,
	bfd_generic_get_relocated_section_contents): ..
	* reloc16.c (bfd_coff_reloc16_relax_section,
	bfd_coff_reloc16_get_relocated_section_c): ..
	* riscix.c (riscix_some_aout_object_p): ..
	* rs6000-core.c (read_hdr, make_bfd_asection): ..
	* sco5-core.c (make_bfd_asection): ..
	* simple.c (bfd_simple_get_relocated_section_contents): ..
	* som.c (som_object_setup, setup_sections, som_prep_headers,
	som_write_fixups, som_begin_writing, bfd_section_from_som_symbol,
	som_set_reloc_info, som_get_section_contents,
	som_bfd_link_split_section): ..
	* sparclinux.c (linux_link_create_dynamic_sections,
	bfd_sparclinux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* srec.c (srec_scan, srec_read_section, srec_get_section_contents): ..
	* stabs.c (_bfd_link_section_stabs, _bfd_discard_section_stabs,
	_bfd_write_stab_strings, _bfd_stab_section_offset): ..
	* sunos.c (sunos_read_dynamic_info, sunos_create_dynamic_sections,
	bfd_sunos_size_dynamic_sections, sunos_scan_std_relocs,
	sunos_scan_ext_relocs, sunos_scan_dynamic_symbol,
	sunos_write_dynamic_symbol, sunos_check_dynamic_reloc,
	sunos_finish_dynamic_link): ..
	* syms.c (_bfd_stab_section_find_nearest_line): ..
	* tekhex.c (first_phase, tekhex_set_section_contents,
	tekhex_write_object_contents): ..
	* trad-core.c (trad_unix_core_file_p): ..
	* versados.c (process_esd, process_otr, process_otr): ..
	* vms-gsd.c (_bfd_vms_slurp_gsd, _bfd_vms_write_gsd): ..
	* vms-misc.c (add_new_contents): ..
	* vms-tir.c (check_section, new_section, _bfd_vms_write_tir): ..
	* vms.c (vms_set_section_contents): ..
	* xcofflink.c (xcoff_get_section_contents, xcoff_link_add_symbols,
	xcoff_sweep, bfd_xcoff_size_dynamic_sections, xcoff_build_ldsyms,
	_bfd_xcoff_bfd_final_link, xcoff_link_input_bfd): ..
	* xsym.c (bfd_sym_scan): .. See above.

2004-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Add addend when
	calling _bfd_merged_section_offset only for section symbols.

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

	* elf32-ppc.c (ppc_elf_relax_section): Implement reference code
	for handling SEC_MERGE symbols in relax_section.

2004-06-21  Alexandre Oliva  <aoliva@redhat.com>

	2003-05-15  Richard Sandiford  <rsandifo@redhat.com>
	* cpu-h8300.c (compatible): Allow h8300s and h8300sx code to be
	linked together. Mark the result as h8300sx code.

2004-06-21  Alexandre Oliva  <aoliva@redhat.com>

	* elf-bfd.h (struct elf_backend_data): Added
	elf_backend_omit_section_dynsym.
	(_bfd_elf_link_omit_section_dynsym): Declare.
	* elf32-frv.c (_frvfdpic_link_omit_section_dynsym): New.
	(elf_backend_omit_section_dynsym): Use it for frvfdpic.
	* elflink.c (_bfd_elf_link_omit_section_dynsym): Split out of...
	(_bfd_elf_link_renumber_dynsyms): ... this function.
	* elfxx-target.h (elf_backend_omit_section_dynsym): Default to
	_bfd_elf_link_omit_section_dynsym).
	(elfNN_bed): Added elf_backend_omit_section_dynsym.

2004-06-21  Nick Clifton  <nickc@redhat.com>

	* coffcode.h (styp_to_sec_flags): Ignore IMAGE_SCN_MEM_NOT_PAGED
	flags.

2004-06-17  Jerome Guitton  <guitton@gnat.com>

	* bfd-in.h (bfd_cache_close_all): New function declaration.
	* bfd-in2.h: Regenerate.
	* cache.c (bfd_cache_close_all): New function definition.

2004-06-16  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Don't set COREFILE to trad-core.lo for FreeBSD
	4.10 and beyond.
	* configure: Regenerate.

2004-06-16  Daniel Jacobowitz  <dan@debian.org>

	* elf32-ppc.c (ppc_elf_create_linker_section): Create symbols in
	the pre-existing section.

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

	* section.c (struct sec): Remove usused flags.  Reorganize a little.
	(bfd_get_section_size_before_reloc): Delete.
	(bfd_get_section_size_after_reloc): Delete.
	(STD_SECTION): Update.
	(bfd_get_section_size_now): Delete.
	(bfd_set_section_contents): Don't referece reloc_done.
	(bfd_get_section_contents): Remove reloc_done comment.
	* bout.c (b_out_bfd_get_relocated_section_contents): Don't set
	reloc_done.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise.
	* ecoff.c (bfd_debug_section): Update initializer.
	* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Ditto.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
	* bfd-in.h (bfd_section_size): Expand.
	(bfd_get_section_size): New macro.
	* bfd-in2.h: Regenerate.
	* coff64-rs6000.c (xcoff64_write_object_contents): Replace
	bfd_get_section_size_before_reloc with bfd_get_section_size.
	* coffcode.h (coff_write_object_contents): Likewise.
	* coffgen.c (build_debug_section): Likewise.
	* dwarf1.c (parse_line_table): Likewise.
	(_bfd_dwarf1_find_nearest_line): Likewise.
	* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
	* i386msdos.c (msdos_write_object_contents): Likewise.
	* pdp11.c (squirt_out_relocs): Likewise.
	* elf32-sh64.c (sh64_find_section_for_address): Remove comment.
	* elf64-mmix.c (mmix_elf_final_link): Update comment.

2004-06-14  Chris Demetriou  <cgd@broadcom.com>

	* elf32-mips.c (elf_mips_gnu_pcrel32): Add (undoing 2004-04-24
	removal) with updated comment.
	(bfd_elf32_bfd_reloc_type_lookup): Add back case for
	BFD_RELOC_32_PCREL.
	(mips_elf32_rtype_to_howto): Add back case for R_MIPS_PC32.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.

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

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc
	overflow on branches to undefweaks.

2004-06-11  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* coff-alpha.c (alpha_relocate_section): Set used_by_bfd directly
	as ecoff_section_data() does not return a valid lvalue.

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

	* elflink.c (elf_sort_symbol): Compare section id, not pointers.
	(elf_link_add_object_symbols): Likewise.

	* elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
	(elf_backend_reloc_type_class): New.

2004-06-08  Mark Kettenis  <kettenis@gnu.org>

	* configure.in (hppa*-*-netbsd*, hppa*-*-openbsd): Set COREFILE to
	netbsd-core.lo.
	* configure: Regenerate.

2004-06-07  Daniel Jacobowitz  <dan@debian.org>

	From:  Albert Chin-A-Young  <china@thewrittenword.com>
	* elf-bfd.h (struct eh_cie_fde): Convert unsigned char bitfields
	to unsigned int.

2004-05-29  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Undo the last
	change.

2004-05-28  DJ Delorie  <dj@redhat.com>

	* elf-m10300.c (mn10300_elf_relax_section): Preserve reloc addend
	for linking, but otherwise adjust reloc for merged sections.

2004-05-28  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Properly call
	_bfd_merged_section_offset for local symbols.

2004-05-28  Andrew Stubbs <andrew.stubbs@superh.com>

	* Makefile.am: Regenerate dependencies.
	* Makefile.in: Regenerate.
	* archures.c: Add bfd_mach_sh3_nommu .
	* bfd-in2.h: Regenerate.
	* cpu-sh.c: Add sh3-nommu architecture.
	(bfd_to_arch_table): Create new table.
	(sh_get_arch_from_bfd_mach): Create new function.
	(sh_get_arch_up_from_bfd_mach): Create new function.
	(sh_merge_bfd_arch): Create new function.
	* elf32-sh.c (sh_ef_bfd_table): Add table.
	(sh_elf_check_relocs): Replace switch statement with
	use of sh_ef_bfd_table .
	(sh_elf_get_flags_from_mach): Add new function.
	(sh_find_elf_flags): Likewise.
	(sh_elf_copy_private_data): Replace most of non-elf contents
	with a call to sh_merge_bfd_arch() .

2004-05-27  Michael Chastain  <mec.gnu@mindspring.com>

	* Makefile.am (bfdver.h): Use explicit filename, not $< .
	* Makefile.in: Regenerate.

2004-05-27  Alexandre Oliva  <aoliva@redhat.com>

	* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Avoid
	custom calling conventions for dynamic symbols.
	(mn10300_elf_relax_section): Avoid relaxing a function as a local
	symbol if it's an alias to a global one.

2004-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_make_section_from_shdr): Undo the last
	change.

2004-05-27  Alexandre Oliva  <aoliva@redhat.com>

	* elf-m10300.c (mn10300_elf_relax_section): Don't test isym within
	loop over hashes.

2004-05-26  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (_bfd_elf_make_section_from_shdr): Don't set SEC_EXCLUDE
	for SHT_GROUP sections.

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

	* elflink.c (elf_link_add_object_symbols): Don't set up merge
	section data here..
	* elf.c (_bfd_elf_merge_sections): .. Do it here instead.
	* merge.c: Formatting.  Remove unnecessary casts.  Expand
	bfd_get_section_alignment macro.
	(struct sec_merge_sec_info): Rename "first" to "first_str".  Update
	use throughout file.
	(_bfd_add_merge_section): Rename from _bfd_merge_section.  Update
	comment.  Abort on dynamic or non-SEC_MERGE input.  Don't test
	section name to determine sinfo group, instead test output section
	and alignment.
	(_bfd_merge_sections): Add struct bfd_link_info param.  Call
	_bfd_strip_section_from_output rather than just twiddling flags.
	* libbfd-in.h (_bfd_add_merge_section): Rename, update comment.
	(_bfd_merge_sections): Update prototype.
	* libbfd.h: Regenerate.

2004-05-24  Mark Kettenis  <kettenis@gnu.org>

	* netbsd-core.c: Correctly indent section that sets architecture
	from machine ID.

	From Miod Vallat <miod@online.fr>:
	* m88kopenbsd.c: New file.
	* targets.c (m88k_openbsd_vec): New.
	* config.bfd: Add m88k-*-openbsd*.
	* configure.in (m88k-*-openbsd*): Set COREFILE to netbsd-core.lo.
	(m88kopenbsd_vec): New.
	* configure: Regenerate.
	* Makefile.am (BFD32_BACKENDS): Add m88kopenbsd.lo.
	(BFD32_BACKENDS_CFILES): Add m88kopenbsd.c.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2004-05-24  Nick Clifton  <nickc@redhat.com>

	* hash.c: Remove bogus node "Changing the default Hash Table Size"
	introduced by hash table size patch.

2004-05-22  Ben Elliston  <bje@au.ibm.com>

	* configure.in (is_release): Remove.
	(bfd_version_date, bfd_version, bfd_version_string): Likewise.
	(AC_OUTPUT): Don't output bfdver.h from version.h.
	* configure: Regenerate.
	* Makefile.am (RELEASE): New variable.
	(bfdver.h): New target.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Likewise.

2004-05-22  Ben Elliston  <bje@au.ibm.com>

	* Makefile.am (config.status): Don't depend on version.h.
	* Makefile.in: Regenerate.

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

	* merge.c (_bfd_merged_section_offset): Remove "addend" param.
	* libbfd-in.h (_bfd_merged_section_offset): Adjust prototype.
	* libbfd.h: Regenerate.
	* elf.c (_bfd_elf_rela_local_sym): Adjust call.
	(_bfd_elf_rel_local_sym): Likewise.
	* elflink.c (_bfd_elf_link_sec_merge_syms): Likewise.
	(elf_link_input_bfd): Likewise.
	* elf32-ppc.c (ppc_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
	(elfNN_ia64_relocate_section): Likewise.

2004-05-21  Andy Chittenden  <achittenden@bluearc.com>

	* hash.c (bfd_default_hash_table_size): New variable.
	(bfd_hash_table_init): Use new variable instead of DEFAULT_SIZE.
	(bfd_hash_set_default_size): New function.  Set the default size
	to a selected prime number close to the argument.  Document new
	function.
	* bfd-in.h: Add prototype for  bfd_hash_set_default_size.
	* bfd-in2.h: Regenerate.
	* Makefile.am (hash.lo): Add dependency upon libiberty.h.
	* Makefile.in: Regenerate.

2004-05-21  Mark Kettenis  <kettenis@gnu.org>

	* libaout.h (machine_type): Add M_88K_OPENBSD and M_HPPA_OPENBSD.
	* netbsd-core.c (netbsd_core_file_p): Set architecture for alpha,
	arm, m68k, m88k and hppa core files.

2004-05-21  Nick Clifton  <nickc@redhat.com>

	* bfdio.c (bfd_bread): Do not use iovec if it is NULL.
	(bfd_bwrite): Likewise.
	(bfd_tell): Likewise.
	(bfd_flush): Likewise.
	(bfd_stat): Likewise.
	(bfd_seek): Likewise.
	(bfd_get_mtime): Likewise.
	(bfd_get_size): Likewise.

2004-05-19  Ben Elliston  <bje@au.ibm.com>

	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Comment correction.

2004-05-19  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>

	* archive.c (_bfd_get_elt_at_filepos): Cope with a nested archives.
	(bfd_generic_openr_next_archived_file): Likewise.

2004-05-17  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (xtensa_get_property_section_name): Determine linkonce
	section names by inserting a new substring after .gnu.linkonce, except
	for .gnu.linkonce.t.* where the "t." is replaced.

2004-05-17  Adam Nemet  <anemet@lnxw.com>

	* config.bfd (sparc-*-lynxos* case): Add to obsolete list.
	(m68-*-lynxos* case): Likewise.
	(powerpc-*-lyxnos* case): New case.
	(i[3-7]86-*-lynxos* case): Update to LynxOS 4.0 ELF.

2004-05-17  David Heine  <dlheine@tensilica.com>

	* aout-target.h (MY_bfd_copy_private_header_data): Define.
	* aout-tic30.c (MY_bfd_copy_private_header_data): Define.
	* bfd.c (bfd_copy_private_header_data): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add entries for new
	interface.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_copy_private_header_data): Define.
	* elf-bfd.h (_bfd_elf_copy_private_header_data): Declare.
	* elf.c (_bfd_elf_copy_private_section_data): Remove code to set up
	segments by calling copy_private_bfd_data.
	(_bfd_elf_copy_private_header_data): Define.
	* elfxx-target.h (bfd_elfNN_bfd_copy_private_header_data): Define.
	* libbfd-in.h (_bfd_generic_bfd_copy_private_header_data): Define.
	* libecoff.h (_bfd_ecoff_bfd_copy_private_header_data): Define.
	* mach-o.c (bfd_mach_o_bfd_copy_private_header_data): Define.
	* mmo.c (mmo_bfd_copy_private_header_data): Define.
	* ppcboot.c (ppcboot_bfd_copy_private_header_data): Define.
	* som.c (som_bfd_copy_private_header_data): Define.
	* targets.c (BFD_JUMP_TABLE_COPY): Add _bfd_copy_private_header_data.
	* vms.c (vms_bfd_copy_private_header_data): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

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

	* elfxx-mips.c (MINUS_TWO): Define.
	(mips_elf_higher, mips_elf_highest,
	mips_elf_create_dynamic_relocation): Use MINUS_ONE and MINUS_TWO for
	some bfd_vma values.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise. Code cleanup.

2004-05-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* som.c (log2): Rename to exact_log2.  Adjust all callers.

2004-05-13  Paul Brook  <paul@codesourcery.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Handle
	dwarf3 format CIE entries.  Remove comment about the size of the
	ra_column field.  It is now correctly deduced.

2004-05-13  Joel Sherrill <joel@oarcorp.com>

	* config.bfd (or32-*-rtems*): Switch to elf.

2004-05-13  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

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

	* elflink.c (bfd_elf_final_link): Don't output STT_SECTION symbol
	into .dynsym if elf_section_data (sec)->dynindx <= 0.
	Adjust counting of last_local.
	(_bfd_elf_link_renumber_dynsyms): Don't assign dynindx to sections
	other than SHT_PROGBITS/SHT_NOBITS and neither for .got/.got.plt/.plt
	created by the linker nor !SHF_ALLOC.

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.  Set sh_entsize for .got section in addition
	to .got.plt.
	(elf_i386_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.
	* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.
	(elf64_x86_64_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.  Set sh_entsize for .got section
	in addition to .got.plt.
	* elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_RELRO.
	(bfd_section_from_phdr): Likewise.
	(map_sections_to_segments): Likewise.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Likewise.
	* elflink.c (bfd_elf_size_dynamic_sections): Set
	elf_tdata (output_bfd)->relro from info->relro.
	* elf-bfd.h (struct elf_obj_tdata): Add relro field.

2004-05-08  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (_frvfdpic_add_dyn_reloc): Don't warn when we get
	a zero symndx for which we hadn't accounted a dynamic relocation.
	(_frvfdpic_add_rofixup): Likewise.

2004-05-07  Brian Ford  <ford@vss.fsi.com>
	    DJ Delorie  <dj@redhat.com>

	* coffcode.h (coff_write_object_contents) [COFF_IMAGE_WITH_PE]:
	Propagate IMAGE_FILE_LARGE_ADDRESS_AWARE.
	* peXXigen.c (_bfd_XX_print_private_bfd_data_common): Recognize
	IMAGE_FILE_LARGE_ADDRESS_AWARE.  Use PE defines.

2004-05-07  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (elf32_frvfdpic_modify_segment_map): Return
	immediately if there's no link info.
	(elf32_frvfdpic_copy_private_bfd_data): New.
	(bfd_elf32_bfd_copy_private_bfd_data): Use it for frvfdpic.

2004-05-06  Zack Weinberg  <zack@codesourcery.com>

	* dwarf2.c (add_line_info): Also set info->filename to NULL if
	filename argument is null; do not call strlen on a null pointer.

2004-05-06  Daniel Jacobowitz  <drow@mvista.com>

	* elf32-arm.h (elf32_arm_relocate_section): Remove R_ARM_PLT32
	special case.

2004-05-05  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (bfd_elf32_frvfdpic_vec): New.
	* configure: Rebuilt.
	* targets.c (bfd_elf32_frvfdpic_vec): New.
	* config.bfd: Enable it on frv-*-elf and frv-*-*linux*, as default
	on the latter.
	* elf32-frv.c: Prefix all identifiers added for FDPIC support with
	frvfdpic instead of frv.  Rearrange elf-target macros such that
	the FDPIC-specific ones are only defined for this new target
	vector.
	(bfd_elf32_frvfdpic_vec): Declare.
	(IS_FDPIC): New.
	(elf32_frv_relocate_section): Use it to enable segment checking
	and to control rofixup emission.  Add output section vma to
	applied relocation in non-LOAD non-ALLOC sections.  Use
	_bfd_error_handler for errors.
	(_frv_create_got_section): Create .rel.got and .rofixup only in
	FDPIC.  Create non-dynamic _gp at .got+2048 in non-FDPIC, like the
	linker script.
	(elf32_frvfdpic_size_dynamic_sections): Assume FDPIC.
	(elf32_frvfdpic_modify_segment_map): Likewise.
	(elf32_frv_finish_dynamic_sections): New, do-nothing.
	(elf32_frvfdpic_finish_dynamic_sections): Assume FDPIC.  Improve
	error message if we miscompute the rofixup size.
	(frvfdpic_elf_use_relative_eh_frame): Assume FDPIC.
	(frvfdpic_elf_encode_eh_address): Likewise.
	(elf32_frv_check_relocs): Reject FDPIC-only relocs in non-FDPIC.
	Record relocs only in FDPIC.  Make sure _gp is defined for GPREL
	relocs.  Reject unknown relocation types.
	(elf32_frv_object_p): Make sure target vector matches FDPIC bits.
	(frv_elf_merge_private_bfd_data): Likewise.
	(ELF_MAXPAGESIZE): Revert to 0x1000 for elf32-frv; keep it as
	0x4000 for newly-added elf32-frvfdpic.

2004-05-05  Nick Clifton  <nickc@redhat.com>

	PR/136
	* cache.c (bfd_cache_lookup_worker): Call abort() rather than
	returning NULL as most users of this function do not check its
	return value.
	* hppabsd-core.c (hppabsd_core_core_file_p): Do not check result
	of bfd_cache_lookup().
	* sco5-core.c (sco5_core_file_p): Likewise.
	* trad-core.c (trad_unix_core_file_p): Likewise.

2004-05-05  Nick Clifton  <nickc@redhat.com>

	* cache.c (bfd_cache_lookup): Improve formatting.
	* archive.c: Fix formatting.

2004-05-05  Peter Barada  <peter@the-baradas.com>

	* bfd_archures.c(bfd_architecture): Add 521x,5249,547x,548x.
	* cpu-m68k.c(bfd_m68k_arch): Likewise.
	* bfd-in2.h(bfd_architecture): Regenerate.

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

	* elf.c (_bfd_elf_rela_local_sym): Set kept_section for excluded
	SEC_MERGE sections.
	* elflink.c (elf_link_input_bfd): Adjust output reloc index for
	those against discarded link-once and SEC_MERGE section symbols.

2004-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* section.c (bfd_get_section_by_name_if): New.
	* bfd-in2.h: Regenerated.

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

	* som.c (som_bfd_is_group_section): Define.

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

	* section.c (bfd_make_section_anyway): Copy the whole
	bfd_hash_entry, not just "next" from existing entry.

2004-04-30  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (bfd_section_from_shdr): Maintain the section order in
	a section group.
	(special_sections): Add ".note.GNU-stack".
	(elf_fake_sections): Handle section group for relocatable
	link..

2004-04-30  H.J. Lu  <hongjiu.lu@intel.com>

	* section.c (bfd_sections_find_if): New.
	* bfd-in2.h: Regenerated.

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

	* section.c (bfd_make_section_anyway): Add all sections to hash tab.

	* elf-bfd.h (bfd_elf_is_group_section): Declare.
	* elf.c (bfd_elf_is_group_section): New function.
	* elfxx-target.h (bfd_elfNN_bfd_is_group_section
	* section.c (bfd_generic_is_group_section): New function.
	* targets.c (struct bfd_target): Add _bfd_is_group_section field.
	(BFD_JUMP_TABLE_LINK): Adjust.
	* aout-adobe.c (aout_32_bfd_is_group_section): Define.
	* aout-target.h (MY_bfd_is_group_section): Define.
	* aout-tic30.c (MY_bfd_is_group_section): Define.
	* bfd.c (bfd_is_group_section): Define.
	* binary.c (binary_bfd_is_group_section): Define.
	* bout.c (b_out_bfd_is_group_section): Define.
	* coff-alpha.c (_bfd_ecoff_bfd_is_group_section): Define.
	* coff-mips.c (_bfd_ecoff_bfd_is_group_section): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Adjust.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Adjust.
	* coffcode.h (coff_bfd_is_group_section): Define.
	* i386msdos.c (msdos_bfd_is_group_section): Define.
	* i386os9k.c (os9k_bfd_is_group_section): Define.
	* ieee.c (ieee_bfd_is_group_section): Define.
	* ihex.c (ihex_bfd_is_group_section): Define.
	* libbfd-in.h (_bfd_nolink_bfd_is_group_section): Define.
	* mach-o.c (bfd_mach_o_bfd_is_group_section): Define.
	* mmo.c (mmo_bfd_is_group_section): Define.
	* nlm-target.h (nlm_bfd_is_group_section): Define.
	* oasys.c (oasys_bfd_is_group_section): Define.
	* pef.c (bfd_pef_bfd_is_group_section): Define.
	* ppcboot.c (ppcboot_bfd_is_group_section): Define.
	* srec.c (srec_bfd_is_group_section): Define.
	* tekhex.c (tekhex_bfd_is_group_section): Define.
	* versados.c (versados_bfd_is_group_section): Define.
	* vms.c (vms_bfd_is_group_section): Define.
	* xsym.c (bfd_sym_bfd_is_group_section): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

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

	* elflink.c (elf_gc_mark): Follow indirect and warning syms.

2004-04-30  Hans-Peter Nilsson  <hp@axis.com>

	* configure.in: Update version to 2.15.91.
	* configure: Regenerate.

2004-04-29  Brian Ford  <ford@vss.fsi.com>

	* bfd.c (bfd_get_sign_extend_vma): Add pe[i]-i386 case to DJGPP hack.
	* coffcode.h (DOT_DEBUG, GNU_LINKONCE_WI): Define.
	[!COFF_WITH_PE] (sec_to_styp_flags, styp_to_sec_flags): Use them.
	(coff_compute_section_file_positions) [RS6000COFF_C]: Likewise.
	[COFF_WITH_PE] (sec_to_styp_flags): Handle DWARF 2/3 .debug* and
	.gnu.linkonce.wi. sections.
	* pe-i386.c (COFF_SUPPORT_GNU_LINKONCE): Define.
	(COFF_SECTION_ALIGNMENT_ENTRIES): Add entries for .debug and
	.gnu.linkonce.wi..
	* pei-i386.c (COFF_SUPPORT_GNU_LINKONCE): Likewise.
	(COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.

2004-04-28  Chris Demetriou  <cgd@broadcom.com>

	* reloc.c: Remove BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.

2004-04-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* som.c (struct som_misc_symbol_info): Add is_comdat, is_common and
	dup_common fields.
	(setup_sections): Use som_subspace_dictionary_record struct instead
	subspace_dictionary_record.  Set SEC_LINK_ONCE if subspace is
	is_comdat, is_common or dup_common.
	(som_prep_headers): Use som_subspace_dictionary_record struct.  Set
	is_comdat, is_common and dup_common in section subspace_dict from
	copy_data.
	(som_begin_writing): Use som_subspace_dictionary_record struct.
	(som_finish_writing): Likewise.
	(som_bfd_derive_misc_symbol_info): Add support to set is_comdat,
	is_common and dup_common flags in info for symbol.  Add comment
	regarding linker support for these fields.  Slightly reorganize
	function.
	(som_build_and_write_symbol_table): Set is_comdat, is_common and
	dup_common fields in symbol table from symbol info.
	(bfd_som_set_subsection_attributes): Add comdat, common and dup_common
	arguments.  Set corresponding fields in copy_data.  Change all callers.
	(som_bfd_ar_write_symbol_stuff): Set dup_common flag in library
	symbol table.
	(som_vec): Add SEC_LINK_ONCE to applicable section flags.
	* som.h (som_subspace_dictionary_record): Define.
	(som_copyable_section_data_struct): Add is_comdat, is_common and
	dup_common fields.
	(som_section_data_struct): Use som_subspace_dictionary_record struct
	instead of subspace_dictionary_record.
	(bfd_boolean bfd_som_set_subsection_attributes): Adjust prototype.

2004-04-27  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (xtensa_read_table_entries): Use section _cooked_size
	if set.  Check reloc_done flag before applying relocations.  Use
	output addresses, both when applying relocations and when comparing
	against the specified section.
	(elf_xtensa_relocate_section): Use output address to check if dynamic
	reloc is in a literal pool.  Set section's reloc_done flag.

2004-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-sh64.c (elf_backend_section_flags): New. Defined.
	(sh64_elf_set_mach_from_flags): Remove the kludge for .cranges
	section.
	(sh64_elf_section_flags): New. Set SEC_DEBUGGING for .cranges
	section.

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

	* elf64-alpha.c (elf64_alpha_read_ecoff_info): Don't assign
	structure field removed in 2004-04-24 patch.
	* elf64-sparc.c (sparc64_elf_plt_sym_val): Warning fix.

	* elf-bfd.h (struct elf_backend_data <elf_backend_section_flags>):
	Constify hdr arg.
	* elf32-arm.h (elf32_arm_section_flags): Likewise.
	* elf64-alpha.c (elf64_alpha_section_flags): Likewise.
	* elfxx-ia64.c (elfNN_ia64_section_flags): Likewise.
	* elf.c (_bfd_elf_make_section_from_shdr): Set the bfd_section
	field before calling elf_backend_section_flags.

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

	* elf32-mips.c (elf_mips_gnu_rel_hi16, elf_mips_gnu_rel_lo16)
	(elf_mips_gnu_pcrel64, elf_mips_gnu_pcrel32): Remove.
	(bfd_elf32_bfd_reloc_type_lookup): Remove cases for
	BFD_RELOC_PCREL_HI16_S, BFD_RELOC_PCREL_LO16, BFD_RELOC_64_PCREL,
	and BFD_RELOC_32_PCREL.
	(mips_elf32_rtype_to_howto): Remove cases for R_MIPS_GNU_REL_HI16,
	R_MIPS_GNU_REL_LO16, R_MIPS_PC64, R_MIPS_PC32.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
	(_bfd_mips_elf_lo16_reloc): Remove handling for R_MIPS_GNU_REL_HI16.
	(mips_elf_next_relocation): Move comment about matching HI/LO
	relocations to...
	(_bfd_mips_elf_relocate_section): Here.  Remove handling for
	R_MIPS_GNU_REL_HI16.

2004-04-23  Chris Demetriou  <cgd@broadcom.com>

	* coff-mips.c (mips_relhi_reloc, mips_rello_reloc)
	(mips_switch_reloc, mips_read_relocs, mips_relax_section)
	(mips_relax_pcrel16, PCREL16_EXPANSION_ADJUSTMENT): Remove.
	(mips_relocate_hi): Remove now-unused 'adjust' and 'pcrel' arguments,
	and update comments to reflect current usage.
	(mips_howto_table): Remove entries for MIPS_R_RELHI, MIPS_R_RELLO,
	and MIPS_R_SWITCH, as well as several empty entries.  Update comment
	for MIPS_R_PCREL16.
	(mips_ecoff_swap_reloc_in, mips_ecoff_swap_reloc_out)
	(mips_adjust_reloc_out, mips_bfd_reloc_type_lookup): Remove support
	for MIPS_R_SWITCH, MIPS_R_RELLO, and MIPS_R_RELHI relocations.
	(mips_adjust_reloc_in): Likewise, adjust maximum accepted relocation
	type number to be MIPS_R_PCREL16.
	(mips_relocate_section): Remove support for link-time relaxation
	of branches used by embedded-PIC.  Remove support for MIPS_R_SWITCH,
	MIPS_R_RELLO, and MIPS_R_RELHI relocations.
	(_bfd_ecoff_bfd_relax_section): Redefine to bfd_generic_relax_section.
	* ecoff.c (ecoff_indirect_link_order): Remove support for link-time
	relaxation of branches used by embedded-PIC.
	* ecofflink.c (bfd_ecoff_debug_accumulate): Likewise.
	* libecoff.h (struct ecoff_section_tdata): Remove embedded-PIC
	related members, update comment.
	* pe-mips.c: Remove disabled (commented-out and #if 0'd)
	code related to embedded-PIC.
	* elfxx-mips.c (_bfd_mips_elf_read_ecoff_info): Remove
	initialization of now-removed 'adjust' member of
	'struct ecoff_debug_info'.

2004-04-23  Chris Demetriou  <cgd@broadcom.com>

	* elfxx-mips.c (mips_elf_get_global_gotsym_index): Remove.

2004-04-21  Philip Blundell  <pb@nexus.co.uk>

	* elf32-arm.h (elf32_arm_check_relocs): Don't output REL32
	relocs for locally defined symbols during -shared final link.
	(elf32_arm_final_link_relocate): Likewise.

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

	* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Copy also
	ELF_LINK_POINTER_EQUALITY_NEEDED.
	(elf64_x86_64_check_relocs): Set ELF_LINK_POINTER_EQUALITY_NEEDED
	if r_type is not R_X86_64_PC32.
	(elf64_x86_64_finish_dynamic_symbol): If
	ELF_LINK_POINTER_EQUALITY_NEEDED is not set, clear st_value of
	SHN_UNDEF symbols.

2004-04-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (sh_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.

2004-04-22  Andrew Cagney  <cagney@redhat.com>

	* opncls.c (bfd_alloc): Fix type of "wanted" in doco.

2004-04-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hpux-core.c (hpux_core_core_file_p): Add cast in call to
	make_bfd_asection.
	* som.c (som_set_section_contents): Constantify second argument.
	(hppa_som_gen_reloc_type): Abort for unsupported selectors.
	(som_object_setup): Rework to avoid warning.
	(setup_sections, som_write_fixups, bfd_section_from_som_symbol):
	Likewise.

2004-04-22  Andrew Cagney  <cagney@redhat.com>

	* cache.c (bfd_cache_close): Check for a previously closed file.

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

	* bfd.c (bfd_get_synthetic_symtab): Define.
	* targets.c (BFD_JUMP_TABLE_DYNAMIC): Add
	NAME##_get_synthetic_symtab.
	(struct bfd_target): Add _bfd_get_synthetic_symtab.
	* libbfd-in.h (_bfd_nodynamic_get_synthetic_symtab): Define.
	* elf-bfd.h (struct elf_backend_data): Add plt_sym_val and
	relplt_name fields.
	(_bfd_elf_get_synthetic_symtab): New prototype.
	* elfcode.h (elf_get_synthetic_symtab): Define.
	* elf.c (_bfd_elf_get_synthetic_symtab): New function.
	* elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Define.
	(elf_backend_plt_sym_val, elf_backend_relplt_name): Define.
	(elfNN_bed): Add elf_backend_plt_sym_val and elf_backend_relplt_name.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-i386.c (elf_i386_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-x86-64.c (elf64_x86_64_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-s390.c (elf_s390_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-s390.c (elf_s390_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-sparc (elf32_sparc_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-sparc.c (sparc64_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-ppc.c (ppc_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* aout-target.h (MY_get_synthetic_symtab): Define.
	* aout-tic30.c (MY_get_synthetic_symtab): Define.
	* coff-rs6000.c (rs6000coff_vec): Add
	_bfd_nodynamic_get_synthetic_symtab.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Add
	_bfd_nodynamic_get_synthetic_symtab.
	(aix5coff64_vec): Likewise.
	* sunos.c (MY_get_synthetic_symtab): Define.
	* vms.c (vms_get_synthetic_symtab): Define.

2004-04-22  Nick Clifton  <nickc@redhat.com>

	* bfd.c (bfd_archive_filename): Return NULL on NULL input.

2004-04-22  Peter Barada <peter@the-baradas.com>

	* archures.c: Add bfd_mach_mcfv4e to bfd_architecture.
	* bfd2-in.h: Regenerate.
	* cpu-m68k.c: Add 'm68k:mcfv4e' to arch_info_struct[].

2004-04-21  Chris Demetriou  <cgd@broadcom.com>

	* coff-mips.c (bfd_mips_ecoff_create_embedded_relocs): Remove.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Remove.
	* bfd-in.h (bfd_mips_ecoff_create_embedded_relocs)
	(bfd_mips_elf32_create_embedded_relocs): Remove prototypes
	* bfd-in2.h: Regenerate.

2004-04-21  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (is_same_value): Add final_static_link argument and
	require relocations against a weak symbol to reference the same
	symbol hash entry if not a final, static link.
	(get_cached_value, add_value_map): Add final_static_link argument.
	(remove_literals): Pass final_static_link argument as needed.

2004-04-21  Andrew Cagney  <cagney@redhat.com>

	* opncls.c (_bfd_new_bfd_contained_in): Copy "iovec".
	(struct opncls, opncls_btell, opncls_bseek, opncls_bread)
	(opncls_bwrite, opncls_bclose, opncls_bflush)
	(opncls_bstat, opncls_iovec, bfd_openr_iovec): Implement a
	bfd iovec that uses function callbacks.
	(bfd_close): Use the iovec's bclose.
	* cache.c (cache_btell, cache_bseek, cache_bread, cache_bwrite)
	(cache_bclose, cache_bflush, cache_bstat)
	(cache_iovec): New functions and global variable, implement a
	cache "iovec", where applicable set bfd_error.
	(bfd_cache_init, bfd_cache_close): Set/test the bfd's iovec.
	* bfdio.c (struct bfd_iovec): Define.
	(real_read): Delete function.
	(bfd_bread, bfd_bread, bfd_bwrite, bfd_tell, bfd_flush, bfd_stat)
	(bfd_seek, bfd_get_mtime, bfd_get_size): Use the bfd's "iovec",
	assume that bread and bwrite set bfd_error.
	* bfd.c (struct bfd): Add "iovec", update comments.
	* bfd-in2.h, libbfd.h: Re-generate.

2004-04-21  Andrew Cagney  <cagney@redhat.com>

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

2004-04-21  Eric Botcazou  <ebotcazou@act-europe.fr>

	* elflink.c (elf_gc_mark_dynamic_ref_symbol): New function.
	(bfd_elf_gc_sections): Fail if a shared object is being created.
	Do not fail if dynamic sections have been created.  Instead call
	elf_gc_mark_dynamic_ref_symbol to mark sections that contain
	dynamically referenced symbols.  Do not mark the whole graph
	rooted at .eh_frame, only the section proper.

2004-04-20  DJ Delorie  <dj@redhat.com>

	* reloc.c: Add BFD_RELOC_32_SECREL.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.
	* coff-i386.c (howto_table) [COFF_WITH_PE]: Add R_SECREL32.
	(coff_i386_rtype_to_howto) [COFF_WITH_PE]: Handle it.
	(coff_i386_reloc_type_lookup) [COFF_WITH_PE]: Likewise.

2004-04-19  Jakub Jelinek  <jakub@redhat.com>

	* elf32-sparc.c (elf32_sparc_relocate_section): Handle
	relocs against hidden/protected undefweak symbols properly.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.

2004-04-18  Mark Kettenis  <kettenis@gnu.org>

	* libaout.h (enum machine_type): Add M_POWERPC_NETBSD.
	* netbsd-core.c (netbsd_core_file_p): Set architecture for PowerPC
	core files.

2004-04-17  Brian Ford  <ford@vss.fsi.com>

	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Use the first non-zero
	filepos for the SizeOfHeaders field.
	(_bfd_XXi_swap_scnhdr_out): Correct section flags lossage on reloc
	overflow.
	(_bfd_XXi_swap_sym_in): Remove redundant section flags assignment.

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

	* simple.c (bfd_simple_get_relocated_section_contents): Don't
	change reloc_done.  Set and restore _cooked_size.
	(RETURN): Delete.

2004-04-15  Mark Kettenis  <kettenis@gnu.org>

	* netbsd-core.c (netbsd_core_file_p): Set architecture for VAX
	core files.

2004-04-15  Nick Clifton  <nickc@redhat.com>

	* bfd.c (bfd_archive_filename): Catch NULL bfd pointers.

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

	* elf64-sparc.c (sparc64_elf_check_relocs): Fix thinko last change.

2004-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (_bfd_elf_merge_symbol): Treat weak as strong only
	when it is a definition.

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

	* elf32-sparc.c (elf32_sparc_relocate_section): Don't abort
	when statically linking PIC code.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.

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

	* config.bfd: Remove mips*-*-mach3* and mips*-dec-mach3* targets.
	* configure.in: Remove mips-dec-bsd*, mips-dec-mach3*, mips-*-mach3*
	targets amd aout_mips_big_vec, aout_mips_little_vec target vectors.
	* configure: Regenerate.

2004-04-08  Richard Sandiford  <rsandifo@redhat.com>

	* elflink.c: Include libiberty.h.
	* Makefile.am (elflink.lo): Depend on libiberty.h.
	* Makefile.in: Regenerate.

2004-04-06  Daniel Jacobowitz  <drow@mvista.com>

	* elfxx-mips.c (MIPS_ELF_STUB_SECTION_NAME): Always use
	".MIPS.stubs".

2004-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Always
	reserve the memory for dynamic linker

2004-04-05  Mark Kettenis  <kettenis@gnu.org>

	* netbsd-core.c (CORE_WCOOKIE_OFFSET): New define.
	(netbsd_core_file_p): Create a .wcookie section for OpenBSD/sparc.

2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-cr16c.c (elf32_cr16c_relocate_section): Use
	RELOC_FOR_GLOBAL_SYMBOL.
	(elf32_cr16c_add_symbol_hook): Remove const from Elf_Internal_Sym.

2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Handle
	R_ARM_ALU* only if OLD_ARM_ABI is not defined.

2004-04-01  Paul Brook  <paul@codesourcery.com>

	* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update.
	* elf32-arm.h (struct elf32_elf_section_map): New.
	(struct _arm_elf_section_data): New.
	(elf32_arm_section_data): Define.
	(struct elf32_arm_link_hash_table): Add byteswap_code.
	(elf32_arm_link_hash_table_create): Initialize byteswap_code.
	(bfd_elf32_arm_process_before_allocation): Add byteswap_code.
	(elf32_arm_post_process_headers): Set EF_ARM_BE8.
	(elf32_arm_output_symbol_hook, elf32_arm_new_section_hook,
	elf32_arm_compare_mapping, elf32_arm_write_section): New functions.
	(bfd_elf32_new_section_hook, elf_backend_write_section,
	elf_backend_link_output_symbol_hook): Define.

2004-04-01  Andy Chittenden  <achittenden@bluearc.com>

	* stabs.c (struct stab_link_includes_totals): Add field 'symb'
	that keeps the characters in a B_INCL..B_EINCL range.
	(_bfd_link_section_stabs): When computing the sum of the
	characters in a B_INCL..B_EINCL range also keep a copy of those
	characters.  Use this information to distinguish between
	include sections that have the same sum and the same length
	but which are nevertheless unique.

2004-03-31  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Add R_ARM_ALU*.
	* elfarm-nabi.c (elf32_arm_howto_table): Ditto.

2004-03-31  Andy Chittenden <achittenden@bluearc.com>

	* stabs.c (struct stab_link_includes_totals): Rename field 'total'
	to 'sum_chars' and add field 'num_chars'.
	(_bfd_link_section_stabs): When computing the sum of the
	characters in a B_INCL..B_EINCL range also keep a count of the
	number of characters.  Use this information to help distinguish
	between include sections when have the same sum but which
	nevertheless are still unique.

2004-03-31  Mattias Engdegård  <mattias@virtutech.se>

	* stabs.c (_bfd_link_section_stabs): Do not skip N_EXCL stabs.

2004-03-30  Galit Heller  <Galit.Heller@nsc.com>
	    Tomer Levi    <Tomer.Levi@nsc.com>

	* Makefile.am (ALL_MACHINES): Add cpu-cr16c.lo.
	(ALL_MACHINES_CFILES): Add cpu-cr16c.c.
	(BFD32_BACKENDS): Add elf32-cr16c.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-cr16c.c.
	(cpu-cr16c.lo): New target.
	(elf32-cr16c.lo): Likewise.
	* Makefile.in: Regenerate.
	* archures.c (bfd_architecture): Add bfd_{arch,mach}_cr16c.
	(bfd_archures_list): Add bfd_cr16c_arch.
	* config.bfd: Handle cr16c-*-elf*.
	* configure.in: Handle bfd_elf32_cr16c_vec.
	* configure: Regenerate.
	* reloc.c: Add BFD_RELOC_16C_NUM08, BFD_RELOC_16C_NUM08_C,
	BFD_RELOC_16C_NUM16, BFD_RELOC_16C_NUM16_C,
	BFD_RELOC_16C_NUM32, BFD_RELOC_16C_NUM32_C,
	BFD_RELOC_16C_DISP04, BFD_RELOC_16C_DISP04_C,
	BFD_RELOC_16C_DISP08, BFD_RELOC_16C_DISP08_C,
	BFD_RELOC_16C_DISP16, BFD_RELOC_16C_DISP16_C,
	BFD_RELOC_16C_DISP24, BFD_RELOC_16C_DISP24_C,
	BFD_RELOC_16C_DISP24a, BFD_RELOC_16C_DISP24a_C,
	BFD_RELOC_16C_REG04, BFD_RELOC_16C_REG04_C,
	BFD_RELOC_16C_REG04a, BFD_RELOC_16C_REG04a_C,
	BFD_RELOC_16C_REG14, BFD_RELOC_16C_REG14_C,
	BFD_RELOC_16C_REG16, BFD_RELOC_16C_REG16_C,
	BFD_RELOC_16C_REG20, BFD_RELOC_16C_REG20_C,
	BFD_RELOC_16C_ABS20, BFD_RELOC_16C_ABS20_C,
	BFD_RELOC_16C_ABS24, BFD_RELOC_16C_ABS24_C,
	BFD_RELOC_16C_IMM04, BFD_RELOC_16C_IMM04_C,
	BFD_RELOC_16C_IMM16, BFD_RELOC_16C_IMM16_C,
	BFD_RELOC_16C_IMM20, BFD_RELOC_16C_IMM20_C,
	BFD_RELOC_16C_IMM24, BFD_RELOC_16C_IMM24_C,
	BFD_RELOC_16C_IMM32, BFD_RELOC_16C_IMM32_C.
	* targets.c (bfd_elf32_cr16c_vec): Declare.
	(bfd_target_vector): Add bfd_elf32_cr16c_vec.
	* cpu-cr16c.c: New file.
	* elf32-cr16c.c: Likewise.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Likewise.

2004-03-30  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (map_sections_to_segments): Fix handling of .tbss.

2004-03-27  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Remove all mention of elflink.h.
	* Makefile.in: Regenerate.
	* bfd-in.h (bfd_elf_discard_info): Declare.
	(bfd_elf32_discard_info, bfd_elf64_discard_info): Delete.
	* bfd-in2.h: Regenerate.
	* elf-bfd.h (bfd_elf32_print_symbol, bfd_elf64_print_symbol,
	bfd_elf32_link_record_dynamic_symbol,
	bfd_elf64_link_record_dynamic_symbol,
	_bfd_elf_link_record_dynamic_symbol, bfd_elf32_bfd_final_link,
	bfd_elf64_bfd_final_link, elf_link_record_local_dynamic_symbol,
	_bfd_elf32_link_record_local_dynamic_symbol,
	_bfd_elf64_link_record_local_dynamic_symbol,
	_bfd_elf32_gc_sections, _bfd_elf32_gc_common_finalize_got_offsets,
	_bfd_elf32_gc_common_final_link, _bfd_elf64_gc_common_final_link,
	_bfd_elf32_gc_record_vtinherit, _bfd_elf32_gc_record_vtentry,
	_bfd_elf64_gc_sections, _bfd_elf64_gc_common_finalize_got_offsets,
	_bfd_elf64_gc_record_vtinherit, _bfd_elf64_gc_record_vtentry,
	_bfd_elf32_reloc_symbol_deleted_p,
	_bfd_elf64_reloc_symbol_deleted_p): Delete.
	(bfd_elf_link_record_dynamic_symbol,
	bfd_elf_link_record_local_dynamic_symbol,
	bfd_elf_final_link, bfd_elf_gc_sections,
	bfd_elf_gc_record_vtinherit, bfd_elf_gc_record_vtentry,
	bfd_elf_gc_common_finalize_got_offsets, bfd_elf_gc_common_final_link,
	bfd_elf_reloc_symbol_deleted_p): Declare.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	* elf32-arm.h: Update for changed function names.  Remove local
	WILL_CALL_FINISH_DYNAMIC_SECTION define.
	* elf-hppa.h, elf-m10300.c, elf32-cris.c, elf32-d10v.c, elf32-dlx.c,
	* elf32-fr30.c, elf32-frv.c, elf32-h8300.c, elf32-hppa.c, elf32-i386.c,
	* elf32-iq2000.c, elf32-m32r.c, elf32-m68hc1x.c, elf32-m68k.c,
	* elf32-mcore.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
	* elf32-sh.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
	* elf32-xstormy16.c, elf32-xtensa.c, elf64-alpha.c, elf64-hppa.c,
	* elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, elf64-sparc.c,
	* elf64-x86-64.c, elfxx-ia64.c, elfxx-mips.c, elfxx-target.h: Likewise.
	* elfxx-target.h (bfd_elfNN_bfd_final_link): Define.
	(bfd_elfNN_print_symbol): Define.
	* elfcode.h: Don't include elflink.h.
	(elf_bfd_discard_info, elf_reloc_symbol_deleted_p,
	elf_link_record_dynamic_symbol, elf_bfd_final_link, elf_gc_sections,
	elf_gc_common_finalize_got_offsets, elf_gc_common_final_link,
	elf_gc_record_vtinherit, elf_gc_record_vtentry,
	elf_link_record_local_dynamic_symbol): Don't define.
	* elflink.c: Update for changed function names.  Move elflink.h
	code here.
	* elflink.h: Delete file.
	* po/SRC-POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.

2004-03-27  Alan Modra  <amodra@bigpond.net.au>

	* elf64-mmix.c (mmix_elf_relocate_section): Restore code setting
	"name" for global syms accidentally removed in 2004-03-20 change.

2004-03-27  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_reloc_cookie): Add r_sym_shift field.
	* elflink.h: Replace all occurrences of sizeof (Elf_External_*)
	where Elf_External_* is different for 64 and 32 bit, with
	corresponding elf_size_info field.
	(struct elf_final_link_info): Use "bfd_byte *" instead
	of "Elf_External_Sym *" for external_syms and symbuf.
	(elf_link_adjust_relocs): Set up r_type_mask and r_sym_shift local
	vars and use instead of ELF_R_INFO and ELF_R_TYPE macros.
	(struct elf_link_sort_rela): Add "sym_mask" alias for "offset".
	(elf_link_sort_cmp1): Use sym_mask field instead of ELF_R_SYM.
	(elf_link_sort_cmp2): Adjust.
	(elf_link_sort_relocs): Set up r_sym_mask local var instead of
	using ELF_R_SYM macro.  Set u.sym_mask.
	(elf_bfd_final_link): Call _bfd_elf_stringtab_init instead of macro
	version, elf_stringtab_init.  Ditto for bfd_section_from_elf_index
	vs. section_from_elf_index.  Adjust Elf_External_Sym pointer
	arithmetic.  Pass bed to elf_link_flush_output_syms.  Adjust
	Elf_External_Dyn pointer arithmentic.  Use bed swap_dyn_in and
	swap_syn_out functions.  Rearrange dyn swap in/out switch.
	(elf_link_output_sym): Adjust Elf_External_Sym pointer arithmentic.
	Pass bed to elf_link_flush_output_syms.  Use bed swap_symbol_out.
	(elf_link_flush_output_syms): Add elf_backend_data arg.
	(elf_link_check_versioned_symbol): Likewise.
	(elf_link_output_extsym): Pass bed to elf_link_check_versioned_symbol.
	Adjust Elf_External_Sym pointer arithmetic.  Use bed swap_symbol_out.
	(elf_link_input_bfd): Use bfd_section_from_elf_index.  Set up
	r_type_mask and r_sym_shift local vars and use instead of ELF_R_SYM,
	ELF_R_TYPE and ELF_R_INFO macros.
	(elf_reloc_link_order): Select ELF32_R_INFO or ELF64_R_INFO invocation
	based on size rather than using ELF_R_INFO.
	(elf_gc_mark): Set up r_sym_shift local var and use instead of
	ELF_R_SYM macro.
	(struct alloc_got_off_arg): New.
	(elf_gc_common_finalize_got_offsets): Use elf_size_info instead of
	ARCH_SIZE.  Pass get entry size down to elf_gc_allocate_got_offsets.
	(elf_gc_allocate_got_offsets): Adjust.
	(elf_reloc_symbol_deleted_p): Usee cookie.r_sym_shift instead of
	ELF_R_SYM.  Use bfd_section_from_elf_index.
	(elf_bfd_discard_info): Set cookie.r_sym_shift.
	* elfcode.h (elf_stringtab_init, section_from_elf_index): Delete.
	(elf_slurp_symbol_table): Use bfd_section_from_elf_index.

2004-03-26  Stan Shebs  <shebs@apple.com>

	Remove MPW support, no longer used.
	* config.bfd (powerpc-*-mpw*): Remove configuration.
	* mpw-config.in, mpw-make.sed: Remove files.
	* ecoffswap.h [MPW_C]: Remove MPW-C-friendly version of code.

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

	* elf64-ppc.c (elf_backend_add_symbol_hook): Define.
	(ppc64_elf_add_symbol_hook): New function.
	* elf-bfd.h (struct elf_backend_data <elf_add_symbol_hook>): Remove
	const from Elf_Internal_Sym param.
	* elflink.c (elf_link_add_object_symbols): Adjust.
	* elf-hppa.h (elf_hppa_add_symbol_hook): Adjust.
	* elf32-frv.c (elf32_frv_add_symbol_hook): Adjust.
	* elf32-i370.c (elf_backend_add_symbol_hook): Adjust.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Adjust.
	* elf32-m68hc1x.c (elf32_m68hc11_add_symbol_hook): Adjust.
	* elf32-m68hc1x.h (elf32_m68hc11_add_symbol_hook): Adjust.
	* elf32-ppc.c (ppc_elf_add_symbol_hook): Adjust.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Adjust.
	* elf32-v850.c (v850_elf_add_symbol_hook): Adjust.
	* elf64-alpha.c (elf64_alpha_add_symbol_hook): Adjust.
	* elf64-mmix.c (mmix_elf_add_symbol_hook): Adjust.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Adjust.
	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Adjust.
	* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Adjust.
	* elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Adjust.
	* elfxx-mips.h (_bfd_mips_elf_add_symbol_hook): Adjust.

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

	* elfxx-target.h (bfd_elfNN_bfd_link_add_symbols): Define.
	* elf-bfd.h (_bfd_elf_link_add_archive_symbols): Delete.
	(_bfd_elf_sort_symbol, _bfd_elf_add_dt_needed_tag): Delete.
	(_bfd_elf_finalize_dynstr, bfd_elf32_bfd_link_add_symbols): Delete.
	(bfd_elf64_bfd_link_add_symbols): Delete.
	(bfd_elf_link_add_symbols): Declare.
	* elfcode.h (elf_bfd_link_add_symbols): Delete.
	* elflink.c: Include safe-ctype.h.
	(elf_add_dt_needed_tag): Rename from _bfd_elf_add_dt_needed_tag,
	make static.
	(elf_sort_symbol): Rename from _bfd_elf_sort_symbol, make static.
	(elf_finalize_dynstr): Rename from _bfd_elf_finalize_dynstr, make
	static.
	(elf_link_add_archive_symbols): Rename from
	_bfd_elf_link_add_archive_symbols, make static.
	(elf_link_add_object_symbols): New function.  Corresponding
	elflink.h function converted to use elf_size_info.
	(bfd_elf_link_add_symbols): Likewise.
	(bfd_elf_size_dynamic_sections): Adjust.
	* elflink.h (elf_bfd_link_add_symbols): Delete.
	(elf_link_add_object_symbols): Delete.
	* elf32-gen.c (elf32_generic_link_add_symbols): Call
	bfd_elf_link_add_symbols.
	* elf64-gen.c (elf64_generic_link_add_symbols): Likewise.

2004-03-25  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed
	and chained shared libs only if dynsym.  Clear dynsym on forced-local.

	* elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare.
	(bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete.
	(_bfd_elf_add_dt_needed_tag): Declare.
	(_bfd_elf_sort_symbol): Declare.
	(_bfd_elf_finalize_dynstr): Declare.
	(RELOC_FOR_GLOBAL_SYM): Formatting.
	* elfcode.h (elf_add_dynamic_entry): Delete.
	* elflink.c (_bfd_elf_add_dynamic_entry): New function.  Corresponding
	elflink.h function converted to use elf_size_info.
	(_bfd_elf_add_dt_needed_tag): Likewise.
	(_bfd_elf_sort_symbol): Likewise.
	(_bfd_elf_finalize_dynstr): Likewise.
	(compute_bucket_count): Likewise.
	(bfd_elf_size_dynamic_sections): Likewise.  Check result of
	_bfd_elf_strtab_add before calling _bfd_elf_strtab_addref.
	(elf_adjust_dynstr_offsets, elf_collect_hash_codes): Moved from..
	* elflink.h: ..here.
	(sort_symbol, add_dt_needed_tag): Delete.
	(elf_add_dynamic_entry, elf_finalize_dynstr): Delete.
	(compute_bucket_count, NAME(bfd_elf,size_dynamic_sections)): Delete.
	Update all users.
	* elf32-arm.h (add_dynamic_entry): Update.  Remove casts.
	* elf32-cris.c (add_dynamic_entry): Likewise.
	* elf32-hppa.c (add_dynamic_entry): Likewise.
	* elf32-i370.c (add_dynamic_entry): Likewise.
	* elf32-i386.c (add_dynamic_entry): Likewise.
	* elf32-m32r.c (add_dynamic_entry): Likewise.
	* elf32-m68k.c (add_dynamic_entry): Likewise.
	* elf32-ppc.c (add_dynamic_entry): Likewise.
	* elf32-s390.c (add_dynamic_entry): Likewise.
	* elf32-sh.c (add_dynamic_entry): Likewise.
	* elf32-sparc.c (add_dynamic_entry): Likewise.
	* elf32-vax.c (add_dynamic_entry): Likewise.
	* elf32-xtensa.c (add_dynamic_entry): Likewise.
	* elf64-alpha.c (add_dynamic_entry): Likewise.
	* elf64-hppa.c (add_dynamic_entry): Likewise.
	* elf64-ppc.c (add_dynamic_entry): Likewise.
	* elf64-s390.c (add_dynamic_entry): Likewise.
	* elf64-sparc.c (add_dynamic_entry): Likewise.
	* elf64-x86-64.c (add_dynamic_entry): Likewise.
	* elfxx-ia64.c (add_dynamic_entry): Likewise.
	* elfxx-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
	* elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Likewise.
	* elf32-frv.c (elf32_frv_size_dynamic_sections): Likewise.
	* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.

2004-03-23  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.h (arm_print_private_bfd_data): Add EABI v3.

2004-03-22  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_check_relocs): Remove code to read
	literal tables and check for relocs outside of literal pools.
	(elf_xtensa_make_sym_local): Don't clear ELF_LINK_NON_GOT_REF flag.
	(elf_xtensa_fix_refcounts): Don't check ELF_LINK_NON_GOT_REF or
	set DF_TEXTREL.
	(elf_xtensa_size_dynamic_sections): Don't add DT_TEXTREL entry.
	(elf_xtensa_relocate_section): Read literal tables and check for
	dynamic relocations in read-only sections and not in literal pools.

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

	PR 51.
	* linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.

2004-03-22  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
	R_CRIS_16_GOTPLT>: Also error if there's no PLT for a symbol
	not defined by the executable, or defined in a DSO.
	<eliding run-time relocation of .got>: Initialize GOT entry for a
	function symbol or ELF_LINK_HASH_NEEDS_PLT statically in an
	executable.
	(cris_elf_gc_sweep_hook): Improve fallthrough marking.
	(elf_cris_try_fold_plt_to_got): Improve head comment.  Do not fold
	a PLT reloc to GOT for an executable.
	(elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
	.got for a DSO and explain why.
	(elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
	and unreferenced symbols for which a PLT is defined.  Adjust
	dynamic-symbol pruning correspondingly, to make sure we don't lose
	a dynamic symbol also defined by a DSO.

2004-03-22  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add input_bfd, input_section
	and rel args.  Group input and output args.  Wrap to 80 columns.
	* elf-m10200.c, elf-m10300.c, elf32-arm.h, elf32-avr.c,
	elf32-cris.c, elf32-d10v.c, elf32-fr30.c, elf32-h8300.c,
	elf32-hppa.c, elf32-i386.c, elf32-i860.c, elf32-ip2k.c,
	elf32-iq2000.c, elf32-m68hc1x.c, elf32-m68k.c, elf32-mcore.c,
	elf32-msp430.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
	elf32-sparc.c, elf32-v850.c, elf32-vax.c, elf32-xstormy16.c,
	elf32-xtensa.c, elf64-alpha.c, elf64-mmix.c, elf64-ppc.c,
	elf64-s390.c, elf64-sparc.c, elf64-x86-64.c, elfxx-ia64.c: Update
	RELOC_FOR_GLOBAL_SYMBOL invocation.

2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Report error if
	unresolved symbols in objects aren't allowed.

	* elf-hppa.h (elf_hppa_relocate_section): Properly handle
	unresolved symbols.
	(elf_hppa_remark_useless_dynamic_symbols): Likewise.
	(elf_hppa_unmark_useless_dynamic_symbols):
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
	(elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.

	* elf-m10200.c (mn10200_elf_relocate_section): Use
	RELOC_FOR_GLOBAL_SYMBOL.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m68hc1x.c (m68hc11_get_relocation_value): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_relocate_section): Likewise.

2004-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf32-hppa.c (elf32_hppa_check_relocs): Handle R_PARISC_PCREL32.
	(final_link_relocate): Likewise.
	* elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for
	R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations.

2004-03-19  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* po/bfd.pot: Regenerate.

2004-03-19  Alan Modra  <amodra@bigpond.net.au>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (_bfd_elf_merge_symbol): Revert last change.  Move
	type and size change code to where it was previously.  Remove
	dt_needed param.  Treat old weak syms as strong if new sym is
	from a shared lib, even when old sym is from another shared
	lib.  Remove unnecessary tests of oldweak and newweak.  Correct
	comments.
	(_bfd_elf_add_default_symbol): Remove dt_needed param.  Update
	_bfd_elf_merge_symbol calls.
	* elflink.h (elf_link_add_object_symbols): Update calls.  Remove
	dt_needed local var.  Update comments.
	* elf-bfd.h (_bfd_elf_merge_symbol): Update prototype.
	(_bfd_elf_add_default_symbol): Likewise.

	* elflink.c (_bfd_elf_merge_symbol): Reinstate code to handle
	strong syms in one shared object overriding weak syms in another.

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

	* elf-bfd.h (struct elf_obj_tdata): Delete dt_soname field.  Add
	dyn_lib_class field.  Rearrange for better packing.
	(elf_dt_soname): Delete.
	(elf_dyn_lib_class): Define.
	* elf.c (bfd_elf_set_dt_needed_name): Update comment.
	(bfd_elf_set_dt_needed_soname): Delete.
	(bfd_elf_set_dyn_lib_class): New function.
	* elflink.h (add_dt_needed_tag): New function.  Split out from..
	(elf_link_add_object_symbols): ..here.  Rename "name" to "soname".
	Use elf_dyn_lib_class to set dt_needed and add_needed.  Move fallback
	initialization of soname.
	(elf_link_check_versioned_symbol): Test elf_dyn_lib_class instead of
	elf_dt_soname.
	* bfd-in.h (enum dynamic_lib_link_class): New.
	(bfd_elf_set_dt_needed_soname): Delete.
	(bfd_elf_set_dyn_lib_class): Declare.
	* bfd-in2.h: Regenerate.

	* elflink.c (_bfd_elf_merge_symbol): Rewrite weak symbol handling.
	(_bfd_elf_add_default_symbol): Remove indirect BFD_ASSERTs.
	* elflink.h (elf_link_add_object_symbols): Don't clear dt_needed in
	symbol loop.  Instead use add_needed to flag tag as written.

2004-03-17  Nathan Sidwell  <nathan@codesourcery.com>

	* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
	logic for null_input_bfd detection.

2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* config.bfd: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff*.

2004-03-16  Mark Kettenis  <kettenis@gnu.org>

	* netbsd-core.c (netbsd_core_file_p) [CORE_FPU_OFFSET]: Remove
	code.

2004-03-16  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (elf_link_read_relocs_from_section): Don't use
	NUM_SHDR_ENTRIES in end of reloc calc.  Move NULL shdr check..
	(_bfd_elf_link_read_relocs): ..to here.
	* elf32-ppc.c (ppc_elf_relax_section): Formatting.

2004-03-16  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (HOST_64BIT_TYPE, HOST_U_64BIT_TYPE): Don't override
	values selected in configure.host.  Require both to be defined
	before setting BFD_HOST_64_BIT_DEFINED.  Protect assignment to
	corresponding BFD_HOST vars with quotes.
	<${host64}-${target64}-${want64} in *true*>: Don't exempt gcc;
	Always require BFD_HOST_64_BIT_DEFINED.
	<file_ptr type>: Find off_t size before emitting message.  Combine
	off_t and ftello64 conditional.
	* configure: Regenerate.

2004-03-16  Alan Modra  <amodra@bigpond.net.au>

	* elf32-m32r.c (m32r_elf_create_dynamic_sections): Fix pointer
	aliasing warning.  Remove trailing whitespace throughout file.

2004-03-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf-hppa.h (elf_hppa_relocate_section): Pass input_bfd instead of
	input_section in calls to get_dyn_name.
	* elf64-hppa.c (get_dyn_name): Change type of first argument to "bfd *".	Use section id of first section in input BFD to build dynamic name for
	local symbols.
	(elf64_hppa_check_relocs): Pass abfd in call to get_dyn_name.

2004-03-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (bfd_int64_t, bfd_uint64_t): New types.
	(BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Don't define here.
	(bfd_getb64, bfd_getl64, bfd_get_bits): Return bfd_uint64_t.
	(bfd_getb_signed_64, bfd_getl_signed_64): Return bfd_int64_t.
	(bfd_putb64, bfd_putl64, bfd_put_bits): Accept bfd_uint64_t.
	* configure.in (HOST_U_64BIT_TYPE): Set when sizeof long is 8.
	(BFD_HOST_64_BIT_DEFINED, BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Set
	when using long.
	* libbfd.c (EIGHT_GAZILLION, COERCE64): Use bfd_int64_t.
	(bfd_getb64): Return bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
	(bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
	(bfd_putb64): Accept bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
	(bfd_putl64, bfd_put_bits, bfd_get_bits): Likewise.
	* dwarf2.c (struct attribute): Use bfd_int64_t and bfd_uint64_t.
	(read_8_bytes, read_indirect_string, read_address): Likewise.
	(read_abbrevs, parse_comp_unit): Likewise.
	* targets.c (struct bfd_target): Likewise.
	* aix386-core.c (NO_GET64, NO_PUT64, NO_GETS64): Define and use.
	* hppabsd-core.c: Likewise.  Formatting.
	* hpux-core.c: Likewise.
	* irix-core.c: Likewise.
	* netbsd-core.c: Likewise.
	* osf-core.c: Likewise.
	* ptrace-core.c: Likewise.
	* sco5-core.c: Likewise.
	* trad-core.c: Likewise.
	* configure: Regenerate.
	* bfd-in2.h: Regenerate.

2004-03-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (bfd_getb64, bfd_getl64): Replace bfd_byte* with void*.
	(bfd_getb32, bfd_getl32, bfd_getb16, bfd_getl16): Likewise.
	(bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
	(bfd_getb_signed_32, bfd_getl_signed_32): Likewise.
	(bfd_getb_signed_16, bfd_getl_signed_16): Likewise.
	(bfd_putb64, bfd_putl64, bfd_putb32, bfd_putl32): Likewise.
	(bfd_putb16, bfd_putl16, bfd_get_bits, bfd_put_bits): Likewise.
	* libbfd.c: Likewise in function definitions.
	(bfd_put_8): Mask with 0xff rather than casting to char.
	(bfd_putb16, bfd_putl16, bfd_putb32, bfd_putl32): Likewise.
	(bfd_putb64, bfd_putl64, bfd_put_bits): Likewise.
	(H_PUT_64, H_PUT_32, H_PUT_16, H_PUT_8): Remove casts, simplify.
	(H_PUT_S64, H_PUT_S32, H_PUT_S16, H_PUT_S8): Likewise.
	(H_GET_64, H_GET_32, H_GET_16, H_GET_8): Likewise.
	(H_GET_S64, H_GET_S32, H_GET_S16, H_GET_S8): Likewise.
	* libaout.h (H_PUT_64 H_PUT_32, H_PUT_16): Remove casts, simplify.
	(H_PUT_S64, H_PUT_S32, H_PUT_S16): Likewise.
	(H_GET_64, H_GET_32, H_GET_16): Likewise.
	(H_GET_S64, H_GET_S32, H_GET_S16): Likewise.
	* archive.c (do_slurp_coff_armap): Update swap prototype.
	* coff-tic54x.c (tic54x_getl32): Replace bfd_byte* with void*.
	(tic54x_getl_signed_32): Likewise.
	(tic54x_putl32): Likewise.  Mask with 0xff rather than casting to char.
	* mach-o.c (bfd_mach_o_read_header): Update get32 prototype.
	* pdp11.c (bfd_getp32): Make static, replace bfd_byte* with void*.
	(bfd_getp_signed_32, bfd_putp32): Likewise.
	* targets.c (struct bfd_target): Use void* in place of bfd_byte* for
	bfd_getx64, bfd_getx_signed_64, bfd_putx64, bfd_getx32,
	bfd_getx_signed_32, bfd_putx32, bfd_getx16, bfd_getx_signed_16,
	bfd_putx16, bfd_h_getx64, bfd_h_getx_signed_64, bfd_h_putx64,
	bfd_h_getx32, bfd_h_getx_signed_32, bfd_h_putx32, bfd_h_getx16,
	bfd_h_getx_signed_16, bfd_h_putx16.
	* aix386-core.c (NO_GET, NO_GETS, NO_PUT): Update prototypes.
	* hppabsd-core.c: Similarly.  Rename NO_SIGNED_GET to NO_GETS.
	* hpux-core.c: Likewise.
	* irix-core.c: Likewise.
	* netbsd-core.c: Likewise.
	* osf-core.c: Likewise.
	* ptrace-core.c: Likewise.
	* sco5-core.c: Likewise.
	* trad-core.c: Likewise.
	* bfd-in2.h: Regenerate.

2004-03-15  Matt Thomas  <matt@3am-software.com>

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

2004-03-13  Mark Kettenis  <kettenis@gnu.org>

	* config.bfd: Add x86_64-*-openbsd*.
	* configure.in (x86_64-*-openbsd*): Set COREFILE to
	netbsd-core.lo.
	* configure: Regenerate.

2004-03-12  Nick Clifton  <nickc@redhat.com>
	    Dave Murphy  <wintermute2k4@ntlworld.com>

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Skip most checks
	if the input bfd does not contain any code.

2004-03-09  Steve Ellcey  <sje@cup.hp.com>

	* elfxx-ia64.c (plt_full_entry): Change ld8 to ld8.acq.

2004-03-05  Fred Fish  <fnf@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Just force
	mips16 symbols to be even rather than testing first for even/odd.
	(_bfd_mips_elf_link_output_symbol_hook): Ditto.

2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>

	* elf.c (map_sections_to_segments): Ignore .tbss sections for
	layout purposes.

2004-03-03  Alexandre Oliva  <aoliva@redhat.com>

	* elflink.c (bfd_elf_record_link_assignment): Mark undefweak and
	undefined symbols as hash_new.

2003-03-03  Andrew Stubbs  <andrew.stubbs@superh.com>

	* archures.c: Add bfd_mach_sh4_nommu_nofpu.
	* cpu-sh.c: Ditto.
	* elf32-sh.c: Ditto.
	* bfd-in2.h: Regenerate.

2004-03-02  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (struct frv_pic_relocs_info): Added fixups and
	dynrelocs.
	(_frv_count_got_plt_entries): Initialize them.
	(frv_pic_relocs_info_find): Add insert argument.  Adjust all
	callers.
	(frv_pic_relocs_info_for_global): Likewise.
	(frv_pic_relocs_info_for_local): Likewise.
	(frv_pic_merge_early_relocs_info): New.
	(_frv_resolve_final_relocs_info): Use it in case one entry maps to
	another.
	(_frv_add_dyn_reloc): Add entry argument.  Adjust all callers.
	Check that we don't exceed the allocated count for entry.
	(_frv_add_rofixup): Likewise.
	(_frv_emit_got_relocs_plt_entries): Adjust for coding standards.
	(elf32_frv_finish_dynamic_sections): Improve error message in case
	we emit too few rofixup entries.

2004-03-01  Richard Sandiford  <rsandifo@redhat.com>

	* archures.c (bfd_mach_fr450): New.
	* bfd-in2.h: Regenerate.
	* cpu-frv.c (arch_info_450): New bfd_arch_info_type.
	(arch_info_500): Link to it.
	* elf32-frv.c (elf32_frv_machine, frv_elf_merge_private_bfd_data)
	(frv_elf_print_private_bfd_data): Handle fr405 and fr450 header flags.
	(frv_elf_arch_extension_p): New function.
	(frv_elf_merge_private_bfd_data): Use it.

2004-02-28  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (_bfd_elf_link_add_archive_symbols): New prototype.

	* elflink.h (is_global_data_symbol_definition): Moved to
	elflink.c.
	(elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_archive_symbols): Likewise. Renamed to
	_bfd_elf_link_add_archive_symbols.

	* elflink.c (elf_link_is_defined_archive_symbol): Get the size
	of ELF symbol table entry from backend.
	(_bfd_elf_link_add_archive_symbols): Call bfd_link_add_symbols
	instead of elf_link_add_object_symbols.

2004-02-27  Alexandre Oliva  <aoliva@redhat.com>

	* elf-bfd.h (struct elf_backend_data): Added
	elf_backend_can_make_relative_eh_frame,
	elf_backend_can_make_lsda_relative_eh_frame and
	elf_backend_encode_eh_address.
	(_bfd_elf_encode_eh_address): Declare.
	(_bfd_elf_can_make_relative): Declare.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use new
	hooks to decide whether to attempt to make_relative and
	make_lsda_relative.
	(_bfd_elf_write_section_eh_frame_hdr): Call encode_eh_address.
	(_bfd_elf_can_make_relative): New.
	(_bfd_elf_encode_eh_address): New.
	* elf32-frv.c (frv_elf_use_relative_eh_frame): New.
	(frv_elf_encode_eh_address): New.
	(elf_backend_can_make_relative_eh_frame): Define.
	(elf_backend_can_make_lsda_relative_eh_frame): Define.
	(elf_backend_encode_eh_address): Define.
	* elfxx-target.h
	(elf_backend_can_make_relative_eh_frame): Define.
	(elf_backend_can_make_lsda_relative_eh_frame): Define.
	(elf_backend_encode_eh_address): Define.
	(elfNN_bed): Add them.

2004-02-27  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (elf32_frv_howto_table) <R_FRV_LABEL16>: Set
	complain_on_overflow to signed.

2004-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.h (sort_symbol): New.
	(elf_link_add_object_symbols): Use a sorted symbol array for
	weakdef.

2004-02-27  Jakub Jelinek  <jakub@redhat.com>

	* elf32-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
	for pc relative relocs.
	(elf_s390_relocate_section): Likewise.
	* elf64-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
	for pc relative relocs.
	(elf_s390_relocate_section): Likewise.

2004-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_check_relocs): Fix call to
	count_dyn_reloc.

2004-02-25  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_dyn_reloc_entry): Add the reltext.
	field to track if a relocation is against readonly section.
	(count_dyn_reloc): Take a new argument for rent->reltext.
	(elfNN_ia64_check_relocs): Adjust call to count_dyn_reloc.
	(get_reloc_section): Don't set ia64_info->reltext here.
	(allocate_dynrel_entries): Set ia64_info->reltext here.

2004-02-24  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (FRV_SYM_LOCAL): Weak undefined doesn't imply local.
	(_frv_emit_got_relocs_plt_entries): Decay relocation to protected
	function's descriptor to symbol+offset, and map local undefweak
	symbol to NULL function descriptor.
	(elf32_frv_relocate_section): Likewise.

2004-02-23  Mark Kettenis  <kettenis@gnu.org>

	* libaout.h (enum machine_type): Add M_SPARC64_NETBSD and
	M_X86_64_NETBSD.
	* netbsd-core.c (M_SPARC64_OPENBSD): Define.
	(netbsd_core_file_p): Set architecture from machine ID for
	selected machines.

2004-02-23  Jakub Jelinek  <jakub@redhat.com>

	* elflink.h (size_dynamic_sections): If not adding DT_FLAGS and
	DF_BIND_NOW is set in info->flags, create DT_BIND_NOW dynamic entry.

2004-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (_bfd_elf_merge_symbol): Properly handle undefined
	symbols with non-default visibility.

2004-02-21  Danny Smith  <daanysmith@users.sourceforge.net>

	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Clear
	IMAGE_SCN_MEM_WRITE on known sections only.

2004-02-20  Jakub Jelinek  <jakub@redhat.com>

	* elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
	symbols used in PIE relocs.

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

	* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
	.plt sh_entsize.

2004-02-18  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Update version to 2.15.90.
	* configure: Regenerate.

2004-02-17  Daniel Jacobowitz  <drow@mvista.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Use
	_bfd_elf_symbol_refs_local_p to decide whether to decay
	a GOT_PAGE/GOT_OFST pair to GOT_DISP/addend.
	(_bfd_mips_elf_check_relocs): Add a global GOT entry for GOT_PAGE
	relocs if the symbol wasn't defined by a regular object file.
	Don't check the symbol's dynindx.

2004-02-16  Andrew Cagney  <cagney@redhat.com>

	* bfd-in.h (file_ptr, ufile_ptr): Configure type using
	@bfd_file_ptr@.
	* bfd-in2.h: Re-generate.

2004-02-14  Andrew Cagney  <cagney@redhat.com>

	* configure.host (HDEFINES): When hppa*-*-hpux*, define
	_LARGEFILE64_SOURCE.

2004-02-13  Andrew Cagney  <cagney@redhat.com>

	* elf.c	(vma_page_aligned_bias): New function.
	(assign_file_positions_except_relocs)
	(assign_file_positions_for_segments): Replace broken modulo
	arithmetic with call to vma_page_aligned_bias.

2004-02-11  Andrew Cagney  <cagney@redhat.com>

	* bfd-in.h: Update copyright.
	(bfd_tell): Change return type to file_ptr.
	* bfd-in2.h: Re-generate.
	* cache.c: Update copyright.
	(bfd_cache_lookup_worker): Use real_fseek, do not cast offset
	parameter.
	(close_one): Use real_ftell.
	* bfdio.c: Update copyright.
	(real_ftell, real_fseek): New functions.
	(bfd_tell): Use real_fseek and real_ftell, change return type to
	file_ptr.
	(bfd_seek): Use real_ftell and real_fseek, change type of
	file_position to a file_ptr.
	* libbfd-in.h: Update copyright.
	(real_ftell, real_fseek): Declare.
	* libbfd.h: Re-generate.

	* configure.in (AC_CHECK_FUNCS): Check for ftello, ftello64,
	fseeko and fseeko64.  Determine bfd_file_ptr.
	* configure: Re-generate.
	* config.in: Re-generate.

2004-02-09  Anil Paranjpe  <anilp1@KPITCummins.com>

	* coff-h8300.c: Added comments about relaxation for ldc.w and stc.w.
	* elf32-h8300.c: Likewise.

2004-02-09  Christian Vogel <vogelchr@vogel.cx>
	    Nick Clifton  <nickc@redhat.com>

	* elf64-alpha.c (elf64_alpha_calc_got_offsets_for_symbol): Catch
	GOT entries with no associated GOT subsection.

2004-02-09  Richard Sandiford  <rsandifo@redhat.com>

	* bfd-elf.h (elf_backend_name_local_section_symbols): New hook.
	* elf.c (swap_out_syms): Use it to decide whether local section
	symbols should be named.
	* elfxx-target.h (elf_backend_name_local_section_symbols): New macro.
	* elfxx-mips.h (_bfd_mips_elf_name_local_section_symbols): Declare.
	(elf_backend_name_local_section_symbols): Define.
	* elfxx-mips.c (_bfd_mips_elf_name_local_section_symbols): New.

2004-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_brl): New function.
	(elfNN_ia64_relax_section): Optimize brl to br during the relax
	finalize pass.

2004-01-30  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (elf32_frv_always_size_sections): Initialize pointer
	to bfd_link_hash_entry passed by reference to
	_bfd_generic_link_add_one_symbol.

2004-01-25  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Disallow imm
	relocations against dynamic symbols.

2004-01-23  Daniel Jacobowitz  <drow@mvista.com>

	* elf32-arm.h (elf32_arm_check_relocs): Revert part of 2004-01-13
	change.

2004-01-21  Tom Rix  <tcrix@worldnet.att.net>

	* reloc.c: New 5 bit reloc, BFD_RELOC_M68HC12_5B, for m68hc12 movb/movw.
	* bfd-in2.h, libbfd.h: Rebuilt.

2004-01-20  Danny Smith  <dannysmith@users.sourceforge.net>

	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Don't remove
	IMAGE_SCN_MEM_WRITE flag from .text section if WP_TEXT
	flag has been cleared.

2004-01-19  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c: Add and adjust comments about relaxation.
	* elf32-h8300.c: Likewise.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c: Fix comment typos.
	* elf32-h8300.c: Likewise.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c: Add comments about relaxation.
	* elf32-h8300.c: Likewise.

2004-01-14  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* acinclude.m4: Quote names of macros to be defined by AC_DEFUN
	throughout.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>

	* elf64-mips.c (mips_elf64_slurp_one_reloc_table): Call
	mips_elf64_rtype_to_howto instead of using howto_table.

2004-01-13  Daniel Jacobowitz  <drow@mvista.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
	the .plt section.
	(elf32_arm_check_relocs): Don't increment the PLT refcount for
	relocs which would not use the PLT.

2004-01-13  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_check_relocs): Ignore !SEC_ALLOC relocs.
	(ppc64_elf_gc_sweep_hook): Likewise.
	(ppc64_elf_size_dynamic_sections): Test for .plt directly.

2004-01-12  Anil Paranjpe  <anilp1@KPITCummins.com>

	Adds linker relaxation support for bit manipulation insns like
	band, bclr, biand, bild, bior, bist, bixor, bld, bnot, bor, bset,
	bst, btst, bxor.
	* elf32-h8300.c: Opcode for bit manipulation insn is checked in
	elf32_h8_relax_section function while relxation for aa:16 and aa:32.
	* coff-h8300.c: Opcode for bit manipulation insn is checked in
	h8300_reloc16_extra_cases function while relxation for aa:16 and aa:32.

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

	* dwarf2.c: Convert to C90, remove unneeded casts and prototypes.

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

	* elf32-h8300.c: Fix formatting.

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

	* elf32-cris.c (cris_elf_gc_sweep_hook): Return early if no
	dynamic object is present.  Declare r_symndx and h in an inner
	scope.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.

2004-01-09  Daniel Jacobowitz  <drow@mvista.com>

	* elf32-arm.h (struct elf32_arm_relocs_copied): Remove pc_count.
	(elf32_arm_copy_indirect_symbol): Don't copy pc_count.
	(elf32_arm_final_link_relocate): Handle PLT32 and PC24 relocs
	identically.  Do not emit PC24 relocations for shared libraries.
	(elf32_arm_gc_sweep_hook): Handle PLT32 and PC24 relocs
	identically.  Don't adjust pc_count.
	(elf32_arm_check_relocs): Handle PLT32 and PC24 relocs identically.
	Set ELF_LINK_HASH_NEEDS_PLT for both.  Don't adjust pc_count; don't
	adjust count for branch relocations.
	(allocate_dynrelocs): Correct typo in call to
	WILL_CALL_FINISH_DYNAMIC_SYMBOL.  Never allocate space for
	PC24 or PLT32 relocs when linking.

2004-01-09  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>

	* coff-arm.c (aoutarm_std_reloc_howto): [ARM_WINCE] Synchronize ARM_26D
	relocation howto with ARM_26 one for consistency.
	(coff_arm_relocate_section): Set partial_inplace for ARM_26 relocations
	that will be converted to ARM_26D ones, since we always want 'done'
	relocations to be reflected in section's data.
	(coff_arm_relocate_section): [ARM_WINCE] Quick fix for BL instruction
	offset.
	(_bfd_final_link_relocate): Do not modify "inplace" data, if not
	requested.

2004-01-08  Dmitry Semyonov  <Dmitry.Semyonov@oktet.ru>

	* coff-arm.c (coff_arm_relocate_section): Do not alter relocs that
	are not partial_inplace during a relocatable link.

2004-01-08  Kazu Hirata  <kazu@cs.umass.edu>

	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Return early
	if no dynamic object is present.  Declare r_symndx and h in an
	inner scope.

2004-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Don't install
	trampoline if it is known out of range.

2004-01-06  Alexandre Oliva  <aoliva@redhat.com>

	2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (_frv_osec_readonly_p): New.
	(_frv_emit_got_relocs_plt_entries): Don't emit rofixup for
	undefweak symbol.
	(_frv_count_got_plt_entries): Adjust expected count accordingly.
	(elf32_frv_relocate_section): Likewise.  Error out if attempting
	to emit rofixups or dynamic relocs in read-only segments.  Use
	_bfd_elf_section_offset to adjust r_offsets in rofixups and
	dynamic relocations.
	2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_relocate_section): Compute dynamic
	relocations or fixups involving merged sections correctly.  Avoid
	crash when undefined symbol is referenced by R_FRV_32 or
	R_FRV_FUNCDESC_VALUE.
	2003-12-02  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_relocate_section): Add output_offset of
	input section holding local symbol to addend of R_FRV_32 or
	R_FRV_FUNCDESC_VALUE dynamic relocation.
	2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_modify_segment_map): Add link info arg.
	(elf32_frv_always_size_sections): Don't store pointer to
	__stacksize symbol in sec_info.
	(elf32_frv_modify_segment_map): Look it up here.
	2003-11-26  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Emit the address
	of the lazy PLT entry, not only its offset, as the low word of a
	function descriptor.
	2003-11-10  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_always_size_sections): Define __stacksize
	if a hash table entry already exists but is not a definition.
	2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (frv_elf_link_hash_table_create): Use bfd_zalloc.
	(_frv_add_rofixup): Don't inline.
	(_frv_emit_got_relocs_plt_entries): Use NULL as funcdesc address
	for undefweak symbols.
	(elf32_frv_relocate_section): Avoid crash while computing
	relocation when linking with shared library.  Only emit rofixups
	and dynamic relocations for alloc&load sections.  Mark binaries
	with inter-segment relocations for relocation as a unit.
	(_frv_create_got_section): Rename .rofixup.got to .rofixup.
	(DEFAULT_STACK_SIZE): New.
	(_frv_count_got_plt_entries): Fix thinko in deciding whether to
	emit rofixups or dynamic relocs when linking dynamic non-PIE
	executables.
	(elf32_frv_size_dynamic_sections): Generate rofixup on PIEs and
	shared libs too.  Reserve the last entry for the GOT pointer.
	(elf32_frv_finish_dynamic_sections): Emit it.
	(elf32_frv_always_size_sections): New.
	(elf32_frv_modify_segment_map): New.
	(elf32_frv_check_relocs): Reserve relocs32 space only in ALLOC
	sections.
	(frv_elf_merge_private_bfd_data): Clear PIC bit if FDPIC is set.
	(frv_elf_print_private_bfd_data): Handle FDPIC and LIBPIC.
	(elf_backend_always_size_sections): New.
	(elf_backend_modify_segment_map): New.
	2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
	* config.bfd: Added frv-*-*linux*.
	* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Use idx 0 for
	ABS section, instead of crashing.
	(elf32_frv_relocate_section): Don't crash before warning about
	different segments in non-PIC relocation.
	2003-10-17  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_relocate_section): Don't warn on LABEL24
	relocs to undefweak symbols.
	(elf32_frv_relocate_section): Ditto for undefined symbols.
	2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_create_dynamic_sections): Make sure
	gotfixup section was created.
	2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_howto_table): Change GOT12,
	FUNCDESC_GOT12, GOTOFF12 and FUNCDESC_GOTOFF12 to
	complain_overflow_signed.
	* elf32-frv.c (_frv_add_rofixup): Do not error out if contents
	have not been allocated.
	(_frv_emit_got_relocs_plt_entries): Return non-void.  Assert
	privfd only if dynamic sections were created.
	(elf32_frv_relocate_section): Compute gprel_segment, and use it
	for GPREL relocs.  When linking relocatable FDPIC executables,
	emit warnings for relocations that would be illegal on PIE or
	shared libraries.  Emit rofixup for R_FRV_32 only if input object
	is not FDPIC.
	(_frv_create_got_section): Define _gp symbol in the rofixup
	section.
	(elf32_frv_finish_dynamic_sections): If rofixups needed but
	dynamic sections missing, error out requesting -melf32frvfd.
	2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Rearrange
	computation of addends from section and global or local symbol
	value.  Change return type to bfd_boolean, and return a failure if
	a dynamic FUNCDESC or FUNCDESC_VALUE relocation that requires a
	nonzero addend is required.
	(elf32_frv_relocate_section): Likewise.  Print error for
	unsupported nonzero addends.
	2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (FRV_SYM_LOCAL): In the absence of dynamic sections,
	force everything local.
	(_frv_emit_got_relocs_plt_entries): Cope with NULL sec.
	* elf32-frv.c (struct frv_elf_link_hash_table): Added sgotfixup.
	(frv_gotfixup_section): New.
	(FRV_SYM_LOCAL): Accept undefweak and local common symbols.
	(struct frv_pic_relocs_info): Split relocs into relocs32, relocsfd
	and relocsfdv.
	(_frv_add_rofixup): New.
	(_frv_emit_got_relocs_plt_entries): Generate fixups for non-PIE
	fdpic executables.  Use FRV_SYM_LOCAL more widely to simplify and
	improve some ugly conditions.
	(elf32_frv_relocate_section): Likewise.  Reject inter-segment
	relocations in fdpic.
	(_frv_create_got_section): Create .rofixup.got section.
	(struct _frv_dynamic_got_info): Added fixups.
	(_frv_count_got_plt_entries): Account in-GOT relocations into
	relocs32, relocsfd and relocsfdv.  Account them into relocs or
	fixups, as appropriate.
	(elf32_frv_size_dynamic_sections): Size rofixup section.  Simplify
	sizing of gotrel.
	(elf32_frv_finish_dynamic_sections): Verify that the right number
	of relocations and fixups was generated.
	(elf32_frv_check_relocs): Compute relocs32, relocsfd and
	relocsfdv.
	* elf32-frv.c (FRV_SYM_LOCAL): New macro, used instead of
	SYMBOL_CALLS_LOCAL and SYMBOL_REFERENCES_LOCAL.
	(FRV_FUNCDESC_LOCAL): New macro, used to decide whether a function
	descriptor of a (formerly-)global symbol is local.
	(struct frv_pic_relocs_info): Adjust comments.
	(_frv_emit_got_relocs_plt_entries): Adjust.
	(elf32_frv_relocate_section): Likewise.
	(_frv_count_got_plt_entries): Likewise.
	* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Don't add global
	symbol's value to addend in the common preamble.  Decay dynamic
	symbols to section+offset if they bind or call locally, for GOT
	and FUNCDESC_VALUE, respectively.
	(elf32_frv_relocate_section): Likewise.
	(elf32_frv_check_relocs): Don't register as dynamic symbols of
	internal or hidden visibility.
	2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Get addend as
	argument, so as to not call _bfd_elf_rel_local_sym to compute it.
	(elf32_frv_relocate_section): Pass relocation addend in.  Use
	original relocation addend to look up the got relocs/plt entries
	table.  Do not call _bfd_elf_rel_local_sym.  Don't error out when
	processing relocations that reference .scommon symbols.
	2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
	Introduce support for dynamic linking.
	* elf32-frv.c (R_FRV_FUNCDESC_VALUE): Mark it as 64 bits.
	(elf32_frv_rel_32_howto, elf32_frv_rel_funcdesc_howto,
	elf32_frv_rel_funcdesc_value_howto): New REL descriptors.
	(frv_reloc_type_lookup): Return REL howtos for executables and
	dynamic libraries.
	(frv_info_to_howto_rel): New.
	(struct frv_elf_link_hash_table): New.
	(frv_hash_table, frv_got_section, frv_gotrel_section,
	frv_plt_section, frv_pltrel_section, frv_relocs_info,
	frv_got_initial_offset, frv_plt_initial_offset): New macros.
	(frv_elf_link_hash_table_create): New.
	(struct frv_pic_relocs_info): New.
	(frv_pic_relocs_info_hash, frv_pic_relocs_info_eq): New.
	(frv_pic_relocs_info_find): New.
	(frv_pic_relocs_info_for_global, frv_pic_relocs_info_for_local):
	New.
	(FRV_LZPLT_BLOCK_SIZE, FRV_LZPLT_RESOLVE_LOC): New.
	(_frv_add_dyn_reloc, _frv_osec_to_segment): New.
	(_frv_emit_got_relocs_plt_entries): New.
	(elf32_frv_relocate_section): Add support for dynamic linking.
	Handle new relocations.
	(_frv_create_got_section): New.
	(elf32_frv_create_dynamic_sections): New.
	(ELF_DYNAMIC_INTERPRETER): New.
	(struct _frv_dynamic_got_info): New.
	(_frv_count_got_plt_entries): New.
	(struct _frv_dynamic_got_plt_info): New.
	(_frv_compute_got_alloc_data): New.
	(_frv_get_got_entry, _frv_get_fd_entry): New.
	(_frv_assign_got_entries, _frv_assign_plt_entries): New.
	(_frv_resolve_final_relocs_info): New.
	(elf32_frv_size_dynamic_sections): New.
	(elf32_frv_finish_dynamic_sections): New.
	(elf32_frv_adjust_dynamic_symbol): New.
	(elf32_frv_finish_dynamic_symbol): New.
	(elf32_frv_check_relocs): Handle new relocs.  Explain how the
	whole thing works.
	(elf_info_to_howto_rel): Define.
	(bfd_elf32_bfd_link_hash_table_create): Define.
	(elf_backend_create_dynamic_sections): Define.
	(elf_backend_adjust_dynamic_symbol): Define.
	(elf_backend_size_dynamic_sections): Define.
	(elf_backend_finish_dynamic_symbol): Define.
	(elf_backend_finish_dynamic_sections): Define.
	(elf_backend_want_got_sym): Define.
	(elf_backend_got_header_size): Define.
	(elf_backend_want_got_plt): Define.
	(elf_backend_plt_readonly): Define.
	(elf_backend_want_plt_sym): Define.
	(elf_backend_plt_header_size): Define.
	(elf_backend_may_use_rel_p): Define.
	(elf_backend_may_use_rela_p): Define.
	(elf_backend_default_use_rela_p): Define.
	2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
	R_FRV_FUNCDESC_GOTOFFHI, R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12,
	R_FRV_GOTOFFHI, R_FRV_GOTOFFLO): New.
	(frv_reloc_map): Map the corresponding BFD relocs to them.
	(frv_reloc_type_lookup): ... and back to BFD relocs.
	* reloc.c: New relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
	R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
	R_FRV_FUNCDESC_GOTLO): New.
	(frv_reloc_map): Map the corresponding BFD relocs to them.
	(frv_reloc_type_lookup): ... and back to BFD relocs.
	* reloc.c: New relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.

2004-01-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
	targets to support pages of up to 64kB.
	(elf32_bed): Redefine to get a separate backend data structure for
	traditional targets.
	* elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
	targets to support pages of up to 64kB.
	(elf64_bed): Redefine to get a separate backend data structure for
	traditional targets.
	* elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
	targets to support pages of up to 64kB.
	(elf32_bed): Redefine to get a separate backend data structure for
	traditional targets.

2004-01-04  Mark Kettenis  <kettenis@gnu.org>

	* elf32-sparc.c (elf32_sparc_grok_psinfo): New function.

2004-01-02  Mark Kettenis  <kettenis@gnu.org>

	* elf32-i386.c (elf_i386_grok_prstatus): Add support for FreeBSD.
	(elf_i386_grok_psinfo): Likewise.

2004-01-02  Bernardo Innocenti  <bernie@develer.com>

	* config.bfd: Add m68k-uClinux target.

2004-01-01  Grant Edwards <grante@visi.com>

	* elflink.h (elf_gc_sections): Warn when gc-sections option is ignored.
	* elf32-h8300.c (elf32_h8_gc_mark_hook): New function.
	(elf32_h8_gc_sweep_hook): New function.
	(elf_backend_gc_mark_hook): Define.
	(elf_backend_gc_sweep_hook): Define.
	(elf_backend_can_gc_sections): Define.

For older changes see ChangeLog-0203

Copyright (C) 2004 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
