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>

	* bfd/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.
	* bfd/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>
	* bfd/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

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
