2005-05-29  Richard Henderson  <rth@redhat.com>

	* configure.in (--enable-secureplt): New.
	* elf64-alpha.c (INSN_LDA, INSN_LDAH, INSN_LDQ, INSN_BR): New.
	(INSN_SUBQ, INSN_S4SUBQ, INSN_JMP): New.
	(INSN_A, INSN_AB, INSN_ABC, INSN_ABO, INSN_AD): New.
	(elf64_alpha_use_secureplt): New.
	(OLD_PLT_HEADER_SIZE, OLD_PLT_ENTRY_SIZE): New.
	(NEW_PLT_HEADER_SIZE, NEW_PLT_ENTRY_SIZE): New.
	(PLT_HEADER_SIZE, PLT_ENTRY_SIZE): Conditionalize on secureplt.
	(ALPHA_ELF_LINK_HASH_PLT_LOC): Remove.
	(struct alpha_elf_link_hash_entry): Add plt_offset.
	(PLT_HEADER_WORD1, PLT_HEADER_WORD2, PLT_HEADER_WORD3): Remove.
	(PLT_HEADER_WORD4, PLT_ENTRY_WORD1, PLT_ENTRY_WORD2): Remove.
	(PLT_ENTRY_WORD3): Remove.
	(elf64_alpha_create_dynamic_sections): If secureplt, set SEC_READONLY
	on .plt and create .got.plt.
	(elf64_alpha_output_extsym): Remove .plt frobbing for symbol values.
	(get_got_entry): Initialize plt_offset.
	(elf64_alpha_want_plt): New.
	(elf64_alpha_check_relocs): Use it.
	(elf64_alpha_adjust_dynamic_symbol): Likewise.  Don't allocate
	plt entries here.
	(elf64_alpha_calc_got_offsets_for_symbol): Don't report internal
	error as user error.
	(elf64_alpha_size_plt_section_1): Allocate one plt entry per
	got subsection.
	(elf64_alpha_size_plt_section): Size .got.plt section.
	(elf64_alpha_size_rela_got_1): Don't allocate relocations if
	plt entries used.
	(elf64_alpha_size_dynamic_sections): Call elf64_alpha_size_plt_section.
	Add PLTRO DYNAMIC entry.
	(elf64_alpha_finish_dynamic_symbol): Generate secureplt format.
	(elf64_alpha_finish_dynamic_sections): Likewise.

2005-05-28  David Daney  <ddaney@avtrex.com>

	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections):  Move
	calculation of DT_RELSZ to occur after all dynamic relocations
	are created.

2005-05-28  Eli Zaretskii  <eliz@gnu.org>

	* configure.in: Add snprintf and vsnprintf to AC_CHECK_DECLS.
	* config.in, configure: Regenerate.

2005-05-26  Mark Kettenis  <kettenis@gnu.org>
	    Maciej W. Rozycki  <macro@linux-mips.org>

	* elfxx-mips.c (_bfd_mips_elf_section_processing): Warn and
	stop processing of options if one of invalid size is
	encountered.
	(_bfd_mips_elf_section_from_shdr): Likewise.
	(_bfd_mips_elf_fake_sections): Reset the type of empty special
	sections.

2005-05-26  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (struct alpha_elf_link_hash_entry): Remove
	plt_old_section, plt_old_value.
	(elf64_alpha_adjust_dynamic_symbol): Don't set it.
	(elf64_alpha_size_plt_section_1): Don't use it.

2005-05-26  Jakub Jelinek  <jakub@redhat.com>

	* elfcode.h (elf_object_p): Fail if e_shoff != 0, e_shnum == 0 and
	first shdr has sh_size == 0.  Fail if e_shnum is large to cause
	arithmetic overflow when allocating the i_shdr array.
	Sanity check sh_link and sh_info fields.  Fix e_shstrndx sanity check.

2005-05-25  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c: Update all function definitions to ISO C.  Remove
	all function prototypes; rearrange functions into def-use order.

2005-05-25  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_merge_gots): Fix gotent iteration
	in the presence of deleting elements.
	(elf64_alpha_size_got_sections): Zero dead got section size.

2005-05-23  Fred Fish  <fnf@specifixinc.com>

	* dwarf2.c (struct dwarf2_debug): Add inliner_chain member.
	(struct funcinfo): Add caller_func, caller_file, caller_line.
	tag, and nesting_level members.
	(lookup_address_in_function_table): Change first passed parameter
	from "struct funcinfo *" to "struct comp_unit *".
	(lookup_address_in_function_table): Dereference unit to find function
	table.
	(lookup_address_in_function_table): Traverse the function list to
	create a chain of inlined functions back to the first non inlined
	function.
	(scan_unit_for_functions): Remember tag and nesting level.  Handle
	DW_AT_call_file and DW_AT_call_line.
	(comp_unit_find_nearest_line): Adjust lookup_address_in_function_table
	call to pass unit pointer instead of function table pointer.  For
	inlined functions, save pointer to the inliner chain.
	(_bfd_dwarf2_find_nearest_line): Initialize inliner_chain to NULL.
	(_bfd_dwarf2_find_inliner_info): New function that returns information
	from the inliner chain after a call to bfd_find_nearest_line.

	* bfd.c (bfd_find_inliner_info): Define using BFD_SEND.
	* targets.c (BFD_JUMP_TABLE_SYMBOLS): Add entry for
	NAME##_find_inliner_info.
	(bfd_target): Add _bfd_find_inliner_info.
	* bfd-in2.h: Regenerate.

	* libbfd-in.h (_bfd_nosymbols_find_inliner_info): Define as
	macro that always returns bfd_false.
	(_bfd_dwarf2_find_inliner_info): Declare.
	* libbfd.h: Regenerate.

	* elf32-arm.c (elf32_arm_find_inliner_info): New function
	that calls _bfd_dwarf2_find_inliner_info.
	(bfd_elf32_find_inliner_info): Define to elf32_arm_find_inliner_info.

	* elfxx-mips.c (_bfd_mips_elf_find_inliner_info): New function
	that calls _bfd_dwarf2_find_inliner_info.
	* elfxx-mips.h (_bfd_mips_elf_find_inliner_info): Declare.
	* elfn32-mips.c (bfd_elf32_find_inliner_info): Define to
	_bfd_mips_elf_find_inliner_info.
	* elf64-mips.c (bfd_elf64_find_inliner_info): Ditto.
	* elf32-mips.c (bfd_elf32_find_inliner_info): Ditto.

	* elf.c (_bfd_elf_find_inliner_info): New function that calls
	_bfd_dwarf2_find_inliner_info.
	* elf-bfd.h (_bfd_elf_find_inliner_info): Declare.
	* elfxx-target.h (bfd_elfNN_find_inliner_info): Define to
	_bfd_elf_find_inliner_info.

	* coffgen.c (coff_find_inliner_info): New function that
	calls _bfd_dwarf2_find_inliner_info.
	* libcoff-in.h (coff_find_inliner_info): Declare.
	* libcoff.h: Regenerate.
	* coff-rs6000.c (rs6000coff_vec): Add coff_find_inliner_info.
	(pmac_xcoff_vec) Ditto.
	* coff64-rs6000.c (rs6000coff64_vec): Ditto.
	(aix5coff64_vec): Ditto.

	* aout-target.h (MY_find_inliner_info): Define as
	_bfd_nosymbols_find_inliner_info.
	* aout-tic30.c (MY_find_inliner_info): Ditto.
	* binary.c (binary_find_inliner_info): Ditto.
	* i386msdos.c (msdos_find_inliner_info): Ditto.
	* ihex.c (ihex_find_inliner_info): Ditto.
	* libaout.h (aout_32_find_inliner_info): Ditto.
	* libecoff.h (_bfd_ecoff_find_inliner_info): Ditto.
	* mach-o.c (bfd_mach_o_find_inliner_info): Ditto.
	* mmo.c (mmo_find_inliner_info): Ditto.
	* nlm-target.h (nlm_find_inliner_info): Ditto.
	* pef.c (bfd_pef_find_inliner_info): Ditto.
	* ppcboot.c (ppcboot_find_inliner_info): Ditto.
	* srec.c (srec_find_inliner_info): Ditto.
	* tekhex.c (tekhex_find_inliner_info): Ditto.
	* versados.c (versados_find_inliner_info): Ditto.
	* xsym.c (bfd_sym_find_inliner_info): Ditto.

	* ieee.c (ieee_find_inliner_info): New function that always
	returns FALSE.
	* oasys.c (oasys_find_inliner_info): Ditto.
	* vms.c (vms_find_inliner_info): Ditto.

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

	* elf32-ppc.c (ppc_elf_check_relocs): For old gcc -fPIC code
	force old plt layout.

2005-05-22  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Ignore non-allocated
	sections.
	(elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_relocate_section): Don't emit dynamic relocations to
	non-allocated sections.

2005-05-22  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_with_lituse): Relax jsr to
	undefweak to use zero register.  Call elf64_alpha_relax_got_load
	if not all uses removed.
	(elf64_alpha_relax_got_load): Relax undefweak to lda zero.
	(elf64_alpha_relax_section): Handle undefweak symbols.
	(elf64_alpha_calc_dynrel_sizes): Don't add relocs for undefweak.
	(elf64_alpha_size_rela_got_1): Likewise.
	(elf64_alpha_relocate_section): Likewise.

2005-05-22  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Only operate
	on SEC_CODE sections.

2005-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* som.c (try_prev_fixup): Changed type of subspace_reloc_sizep to
	unsigned int *.
	(som_write_space_strings): Change type of tmp_space and p to char *.
	(som_write_symbol_strings): Likewise.  Also change type of comp to
	char *comp[4].
	(som_begin_writing): Change type of strings_size to unsigned int.
	(som_finish_writing): Likewise.
	(som_slurp_reloc_table): Change type of external_relocs to unsigned
	char *.
	* som.h (struct som_section_data_struct): Change type of reloc_stream
	field to unsigned char *.

2005-05-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't eliminate
	copy relocations for VxWorks.

2005-05-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* bfd/elf32-ppc.c (struct ppc_elf_link_hash_entry): Add new field
	has_sda_refs.
	(ppc_elf_copy_indirect_symbol): Copy has_sda_refs.
	(ppc_elf_check_relocs): Set has_sda_refs.
	(ppc_elf_adjust_dynamic_symbol): Check has_sda_refs before eliminating
	copy relocations.  Use has_sda_refs to place variables in .sbss.
	(ppc_elf_finish_dynamic_symbol): Use has_sda_refs to place variables in
	.sbss.

2005-05-20  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (bfd_elf_xtensa_reloc): Make sure that
	xtensa_default_isa is initialized.

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

	* elf32-ppc.c (allocate_dynrelocs): Correct plt offset assigned
	for second and subsequent list entries.  Only allocate multiple
	glink stubs when shared or pie.
	(ppc_elf_finish_dynamic_symbol): Break out early when only one
	glink stub is needed.

2005-05-19  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.am: Have 'all' depend on 'info'.
	* Makefile.in: Regenerate.

2005-05-19  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_link_hash_table): Delete init_refcount and
	init_offset.  Add init_got_refcount, init_plt_refcount,
	init_got_offset and init_plt_offset.
	* elf.c (_bfd_elf_link_hash_newfunc): Adjust for above change.
	(_bfd_elf_link_hash_hide_symbol): Likewise.
	(_bfd_elf_link_hash_table_init): Likewise.
	* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
	* elf64-ppc.c (ppc64_elf_link_hash_table_create): Likewise.
	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Likewise.
	(bfd_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.c (GLINK_PLTRESOLVE): Now 16 insns.
	(LWZU_0_X_12, LWZ_0_4_30, LWZ_0_X_12, LWZ_11_X_11, LWZ_11_X_30,
	LWZ_12_4_12, LWZ_12_8_30, LWZ_12_X_12, SUB_11_11_30): Delete.
	(ADDIS_12_12, BCL_20_31, LWZU_0_12, LWZ_0_12, LWZ_11_11, LWZ_11_30,
	LWZ_12_12, MFLR_0, MFLR_12, MTLR_0, SUB_11_11_12): Define.
	(struct plt_entry): New.
	(ppc_elf_link_hash_table_create): Set new init_plt fields.
	(ppc_elf_copy_indirect_symbol): Handle merge of plt plist.  Don't
	use _bfd_elf_link_hash_copy_indirect.
	(update_plt_info, find_plt_ent): New functions.
	(ppc_elf_check_relocs): Handle R_PPC_PLTREL24 with non-zero addend
	and adjust for use of plt list rather than refcount.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_tls_optimize): Likewise.
	(ppc_elf_adjust_dynamic_symbol): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.  Adjust R_PPC_PLTREL24 addends
	when performing a relocatable link.
	(ppc_elf_finish_dynamic_symbol): Likewise.  Write .glink stubs here..
	(ppc_elf_finish_dynamic_sections): ..rather than here.  Use new
	pic resolver stub.

2005-05-19  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (assign_file_positions_for_segments): Use maximum of
	maxpagesize and section alignment when adjusting initial
	segment offset and section offsets.

2005-05-18  Zack Weinberg  <zack@codesourcery.com>

	* elf32-arm.c: Make all #ifndef OLD_ARM_ABI blocks
	unconditional.

2005-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (group_signature): Undo the last change. Check if the
	symbol table section is correct.

2005-05-17  Zack Weinberg  <zack@codesourcery.com>

	* elf32-arm.c: Wherever possible, use official reloc names
	from AAELF.
	(elf32_arm_howto_table, elf32_arm_tls_gd32_howto)
	(elf32_arm_tls_ldo32_howto, elf32_arm_tls_ldm32_howto)
	(elf32_arm_tls_le32_howto, elf32_arm_tls_ie32_howto)
	(elf32_arm_vtinherit_howto, elf32_arm_vtentry_howto)
	(elf32_arm_pc11_howto, elf32_arm_thm_pc9_howto, elf32_arm_got_prel)
	(elf32_arm_r_howto): Replace with elf32_arm_howto_table_1,
	elf32_arm_howto_table_2, and elf32_arm_howto_table_3.
	Add many new relocations from AAELF.
	(elf32_arm_howto_from_type): Update to match.
	(elf32_arm_reloc_map): Add entries for R_ARM_THM_JUMP24,
	R_ARM_THM_JUMP11, R_ARM_THM_JUMP19, R_ARM_THM_JUMP8,
	R_ARM_THM_JUMP6, R_ARM_GNU_VTINHERIT, and R_ARM_GNU_VTENTRY.
	(elf32_arm_reloc_type_lookup): Use elf32_arm_howto_from_type.
	(elf32_arm_final_link_relocate): Add support for
	R_ARM_THM_JUMP24, R_ARM_THM_JUMP19, R_ARM_THM_JUMP6.  Remove
	case entries redundant with default.

	* reloc.c: Reorganize ARM relocations.  Add Thumb
	assembler-internal relocations BFD_RELOC_ARM_T32_OFFSET_U8,
	BFD_RELOC_ARM_T32_OFFSET_IMM, BFD_RELOC_ARM_T32_IMMEDIATE.
	Add visible relocations BFD_RELOC_THUMB_PCREL_BRANCH7,
	BFD_RELOC_THUMB_BRANCH20, BFD_RELOC_THUMB_BRANCH25.
	Delete unused relocations BFD_RELOC_ARM_GOT12, BFD_RELOC_ARM_COPY.
	* bfd-in2.h, libbfd.h: Regenerate.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf.c (_bfd_elf_write_object_contents): Check for non-NULL
	elf_shstrtab.
	* format.c (bfd_check_format_matches): Set output_has_begun
	for both_direction.
	* section.c (bfd_set_section_contents): Use bfd_write_p.  Remove
	special case for both_direction.

2005-05-17  Nick Clifton  <nickc@redhat.com>

	* elf.c (group_signature): Check for a group section which is
	actually a (corrupt) symbol table section in disguise and prevent
	an infinite loop from occurring.

2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_brl): Undo the change made on
	2005-02-16.

2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_br): Keep the original
	predicate on slot 0 only if slot 0 isn't br.

2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR 797
	* elf32-i386.c (elf_i386_size_dynamic_sections): Also remove
	empty sdynbss section.
	* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections): Likewise.

2005-05-17  Tavis Ormandy <taviso@gentoo.org>

	* elf.c (bfd_section_from_shdr): Add sanity check when parsing
	dynamic sections.

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

	* elf32-ppc.c (LIS_11. LIS_12): Define.
	(LWZU_0_X_12, LWZ_0_X_12, LWZ_12_4_12, LWZ_12_X_12): Define.
	(ppc_elf_finish_dynamic_sections): Provide non-pic plt call stub
	for --data-plt when building non-pie executables.

2005-05-17  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Gracefully handle
	the situation where a symbols's section is not known but a section
	relative R_ARM_RELATIVE reloc has to be generated for the Symbian
	OS.

	* elf32-v850.c (v850_elf_relocate_section): Move code to test for
	the presence of a symbol table to just before the symbol table is
	actually used.

2005-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR 834
	* elfxx-ia64.c (elfNN_ia64_relax_br): New.
	(elfNN_ia64_relax_section): Use it.

2005-05-14  Mark Kettenis  <kettenis@gnu.org>

	* elflink.c (bfd_elf_size_dynamic_sections): Use lbasename instead
	of basename.

2005-05-14  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set DT_PPC_GOT,
	not DT_PPC_GLINK.
	(ppc_elf_finish_dynamic_sections): Likewise.

2005-05-13  Fred Fish  <fnf@specifixinc.com>

	* libbfd-in.h: Fix a comment typo, 'neaderst' -> 'nearest'
	* libbfd.h: Rebuilt.

2005-05-13  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (xtensa_get_property_section_name): Add missing
	periods in linkonce_kind values.

2005-05-12  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Allow R_386_GOTOFF
	against protected function when building executable.

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

	* elf32-ppc.c (LWZU_0_X_11): Delete.
	(B, LWZ_11_X_11, LWZ_11_X_30, MTCTR_11): Define.
	(ppc_elf_select_plt_layout): Set .got flags too.  Formatting.
	(ppc_elf_size_dynamic_sections): Allocate space for .glink branch
	table.
	(ppc_elf_finish_dynamic_symbol): Point .plt entries into the branch
	table.
	(ppc_elf_finish_dynamic_sections): Adjust DT_PPC_GLINK value.
	Generate .glink branch table and updated stubs.

2005-05-11  Alan Modra  <amodra@bigpond.net.au>

	* reloc.c (BFD_RELOC_HI16_PCREL): Define.
	(BFD_RELOC_HI16_S_PCREL, BFD_RELOC_LO16_PCREL): Define.
	* elf32-ppc.c (GLINK_PLTRESOLVE, GLINK_ENTRY_SIZE): Define.
	(CROR_151515, CROR_313131): Delete.
	(ADDIS_11_11, ADDI_11_11, SUB_11_11_30, ADD_0_11_11, ADD_11_0_11,
	LWZ_0_4_30, MTCTR_0, LWZ_12_8_30, BCTR, ADDIS_11_30,
	LWZU_0_X_11): Define.
	(ppc_elf_howto_raw): Add R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI
	and R_PPC_REL16_HA entries.
	(ppc_elf_reloc_type_lookup): Convert new bfd reloc types.
	(ppc_elf_addr16_ha_reloc): Also handle R_PPC_REL16_HA.
	(struct ppc_elf_link_hash_table): Add glink, glink_pltresolve,
	new_plt, and old_plt.
	(ppc_elf_create_dynamic_sections): Create .glink section.
	(ppc_elf_check_relocs): Set new_plt and old_plt.
	(ppc_elf_select_plt_layout): New function.
	(ppc_elf_tls_setup): Set plt output section elf type and flags.
	(allocate_got): Handle differences between old and new got layout.
	(allocate_dynrelocs): Likewise for plt.
	(ppc_elf_size_dynamic_sections): Likewise.  Allocate memory for
	.glink.  Don't allocate memory for old bss .plt.  Emit DT_PPC_GLINK.
	(ppc_elf_relax_section): Rename ppc_info to htab.  Handle .glink
	destination of R_PPC_PLTREL24 relocs.
	(ppc_elf_relocate_section): Handle new relocs and changed destination
	of R_PPC_PLTREL24.
	(ppc_elf_finish_dynamic_symbol): Init new style plt and handle
	differences in layout.
	(ppc_elf_finish_dynamic_sections): Set DT_PPC_GLINK value.  Don't
	put a blrl in new got.  Write glink contents.
	* elf32-ppc.h (ppc_elf_select_plt_layout): Declare.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

2005-05-11  Andreas Schwab  <schwab@suse.de>

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Fix signedness
	warning.

2005-05-10  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_make_section_from_shdr): Only check debug
	section if SEC_ALLOC isn't set.

2005-05-09  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
	* acinclude.m4: Don't sinclude accross.m4.
	* config.in, configure, Makefile.in, doc/Makefile.in: Regenerate.

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

	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_dotsym.
	(ppc64_elf_add_symbol_hook): Set has_dotsym.
	(ppc64_elf_check_directives): Only process syms when has_dotsym.
	(func_desc_adjust): Hide fake function descriptors when function
	code entry is defined.
	(adjust_opd_syms): Adjust for deleted_section becoming union field.

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

	* elfcode.h (elf_object_p): Add more sanity checks on elf header.

2005-05-08  Dave Korn   <dave.korn@artimi.com>

	* coff-tic80.c:  Undefine _CONST after system headers to prevent
	clash with tic80-specific definition in include/coff/tic80.h

2005-05-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR 939
	* elflink.c (elf_link_output_extsym): Use output_bfd if
	h->root.u.def.section is bfd_abs_section_ptr when reporting
	error.

2005-05-07  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (elf_backend_data): Update special_sections to
	array of pointer to bfd_elf_special_section.
	* elf.c (special_sections): Likewise.
	* elf32-arm.c (elf32_arm_symbian_special_sections): Likewise.
	* elf32-m32r.c (m32r_elf_special_sections): Likewise.
	* elf32-m68hc11.c (elf32_m68hc11_special_sections): Likewise.
	* elf32-m68hc12.c (elf32_m68hc12_special_sections): Likewise.
	* elf32-mcore.c (mcore_elf_special_sections): Likewise.
	* elf32-ppc.c (ppc_elf_special_sections): Likewise.
	* elf32-sh64.c (sh64_elf_special_sections): Likewise.
	* elf32-v850.c (v850_elf_special_sections): Likewise.
	* elf32-xtensa.c (elf_xtensa_special_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_special_sections): Likewise.
	* elf64-hppa.c (elf64_hppa_special_sections): Likewise.
	* elf64-ppc.c (ppc64_elf_special_sections): Likewise.
	* elf64-sh64.c (sh64_elf64_special_sections): Likewise.
	* elfxx-ia64.c (elfNN_ia64_special_sections): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_special_sections): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_special_sections): Likewise.

	* elf.c (get_special_section): Updated.

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

	* elf-bfd.h (struct elf_backend_data): Remove got_symbol_offset.
	* elfxx-target.h (elf_backend_got_symbol_offset): Delete.
	* elflink.c (_bfd_elf_create_got_section): Use zero in place of
	got_symbol_offset.
	* elf-m10300.c (_bfd_mn10300_elf_create_got_section): Likewise.
	* elf32-frv.c (_frv_create_got_section): Likewise.
	* elf32-i370.c (i370_elf_finish_dynamic_sections): Delete ppc code.
	(elf_backend_got_symbol_offset): Don't define.
	* elf64-ppc.c (elf_backend_got_symbol_offset): Don't define.
	* elf32-ppc.c (struct ppc_elf_link_hash_table): Add got_header_size
	and got_gap.
	(ppc_elf_create_got): Tidy.
	(ppc_elf_create_dynamic_sections): Don't set SEC_IN_MEMORY for .plt.
	(ppc_elf_check_relocs): Reduce string comparisons by using elf.hgot.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_relocate_section): Likewise.
	(ppc_elf_finish_dynamic_symbol): Likewise.
	(allocate_got): New function.
	(allocate_dynrelocs): Use allocate_got.
	(ppc_elf_size_dynamic_sections): Likewise.  Delay tlsld_got allocation
	so that local got can refcount it.  Set got_header_size.
	(ppc_elf_relocate_section): Use value of elf.hgot rather than hard-
	coded 4.
	(ppc_elf_finish_dynamic_sections): Likewise.
	(elf_backend_got_symbol_offset): Don't define.
	(elf_backend_got_header_size): Ditto.

2005-05-05  Steve Ellcey  <sje@cup.hp.com>

	* configure.in (ACX_HEADER_STRING): New.
	* configure: Regenerate.
	* config.in: Regenerate.
	* sysdep.h (STRING_WITH_STRINGS): Use.

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

	* elf.c (_bfd_elf_close_and_cleanup): Only call
	_bfd_dwarf2_cleanup_debug_info on bfd_object.

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

	* elflink.c (_bfd_elf_provide_section_bound_symbols): Use
	"__bss_start" instead of "_edata" as fallback.

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

	* bfd-in2.h: Regenerated.

2005-05-05  Paul Brook  <paul@codesourcery.com>

	* config.bfd: Use bfd_elf32_i386_vxworks_vec for i?86-*-vxworks.
	* configure.in: Add bfd_elf32_i386_vxworks_vec. i386 targets need
	elf-vxworks.lo.
	* configure: Regenerate.
	* Makefile.am (BFD32_BACKENDS): Add elf-vxworks.lo.
	(BFD32_BACKENDS_CFILES): Add elf-vxworks.c.
	(elf32-i386.lo): Depend on elf-vxworks.h.
	(elf-vxworks.lo): New rule.
	* Makefile.in: Regenerate.
	* elf-bfd.h (elf_backend_data): Update type of
	elf_backend_emit_relocs.
	(_bfd_elf_link_output_relocs): Update prototype.
	* elflink.c (_bfd_elf_link_output_relocs): Always use
	bed->elf_backend_emit_relocs when outputting relocations.
	* elfxx-target.h (elf_backend_emit_relocs): Default to
	_bfd_elf_link_output_relocs.
	* targets.c (bfd_elf32_i386_vxworks_vec): Declare.
	(_bfd_target_vector): Add bfd_elf32_i386_vxworks_vec.
	* elf32-i386.c: Add elf32-i386-vxworks target BFD.
	(elf_i386_plt0_entry): Remove padding.
	(elf_i386_pic_plt0_entry): Ditto.
	(PLTRESOLVE_RELOCS_SHLIB, PLTRESOLVE_RELOCS): Define.
	(PLT_NON_JUMP_SLOT_RELOCS): Define.
	(elf_i386_link_hash_table): Add srelplt2, hgot, hplt, is_vxworks and
	plt0_pad_byte fields.
	(elf_i386_link_hash_table_create): Zero them.
	(elf_i386_create_dynamic_sections): Create static relocation section.
	(allocate_dynrelocs): Allocate space for static PLT relocations.
	(elf_i386_size_dynamic_sections): Save shortcuts to PLT and GOT
	symbols.  Give PLT symbols function type.  Don't strip PLT sections
	if we have exported symbols from them.
	(elf_i386_finish_dynamic_symbol): Fill in VxWorks PLT static
	relocation section.  Don't mark _GLOBAL_OFFSET_TABLE_ as absolute on
	VxWorks.
	(elf_i386_finish_dynamic_sections): Allow different pad bytes.
	Add relocation for GOT location.  Fill in PLT static relocations.
	(elf_i386_vxworks_link_hash_table_create): New function.
	(elf_i386_vxworks_link_output_symbol_hook): New function.
	* elf-vxworks.h: New file.

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

	* section.c (bfd_make_section_anyway_with_flags): New.
	(bfd_make_section_anyway): Call bfd_make_section_anyway_with_flags,
	(bfd_make_section_with_flags): New.
	(bfd_make_section): Call bfd_make_section_with_flags.

	* elf-m10300.c (_bfd_mn10300_elf_create_got_section): Call
	bfd_make_section_with_flags/bfd_make_section_anyway_with_flags
	instead of bfd_make_section/bfd_make_section and don't call
	bfd_set_section_flags.
	(mn10300_elf_check_relocs): Likewise.
	(_bfd_mn10300_elf_create_dynamic_sections): Likewise.
	* elf32-arm.c (create_got_section): Likewise.
	(bfd_elf32_arm_add_glue_sections_to_bfd): Likewise.
	(elf32_arm_check_relocs): Likewise.
	* elf32-cris.c (cris_elf_check_relocs): Likewise.
	* elf32-frv.c (elf32_frv_add_symbol_hook): Likewise.
	(_frv_create_got_section): Likewise.
	(elf32_frvfdpic_create_dynamic_sections): Likewise.
	* elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
	(elf32_hppa_check_relocs): Likewise.
	* elf32-i370.c (i370_elf_create_dynamic_sections): Likewise.
	(i370_elf_check_relocs): Likewise.
	* elf32-i386.c (create_got_section): Likewise.
	(elf_i386_check_relocs): Likewise.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Likewise.
	(create_got_section): Likewise.
	(m32r_elf_create_dynamic_sections): Likewise.
	(m32r_elf_check_relocs): Likewise.
	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
	* elf32-ppc.c (ppc_elf_create_got): Likewise.
	(ppc_elf_create_dynamic_sections): Likewise.
	(ppc_elf_add_symbol_hook): Likewise.
	(ppc_elf_check_relocs): Likewise.
	* elf32-s390.c (create_got_section): Likewise.
	(elf_s390_check_relocs): Likewise.
	* elf32-sh.c (create_got_section): Likewise.
	(sh_elf_create_dynamic_sections): Likewise.
	(sh_elf_check_relocs): Likewise.
	* elf32-vax.c (elf_vax_check_relocs): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
	* elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
	(add_extra_plt_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_add_symbol_hook): Likewise.
	(elf64_alpha_create_got_section): Likewise.
	(elf64_alpha_create_dynamic_sections): Likewise.
	(elf64_alpha_check_relocs): Likewise.
	* elf64-hppa.c (get_reloc_section): Likewise.
	(get_opd): Likewise.
	(get_plt): Likewise.
	(get_dlt): Likewise.
	(get_stub): Likewise.
	(elf64_hppa_create_dynamic_sectionso): Likewise.
	* elf64-mmix.c (mmix_elf_check_common_relocs): Likewise.
	* elf64-ppc.c (create_linkage_sections): Likewise.
	(ppc64_elf_check_relocs): Likewise.
	* elf64-s390.c (create_got_section): Likewise.
	(elf_s390_check_relocs): Likewise.
	* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
	(sh64_elf64_create_dynamic_sections): Likewise.
	* elf64-x86-64.c (create_got_section): Likewise.
	(elf64_x86_64_check_relocs): Likewise.
	* elflink.c (_bfd_elf_create_got_section): Likewise.
	(_bfd_elf_link_create_dynamic_sections): Likewise.
	(elf_link_add_object_symbols): Likewise.
	* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Likewise.
	(elfNN_ia64_create_dynamic_sections): Likewise.
	(get_fptr): Likewise.
	(get_pltoff): Likewise.
	(get_reloc_section): Likewise.
	(elfNN_ia64_object_p): Likewise.
	* elfxx-mips.c (mips_elf_rel_dyn_section): Likewise.
	(mips_elf_create_compact_rel_section): Likewise.
	(mips_elf_create_got_section): Likewise.
	(_bfd_mips_elf_create_dynamic_sections): Likewise.
	* elfxx-sparc.c (create_got_section): Likewise.
	(_bfd_sparc_elf_check_relocs): Likewise.

	* elf.c (_bfd_elf_new_section_hook): Call _bfd_elf_get_sec_type_attr
	on linker created sections.

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

	PR 882
	* elflink.c (_bfd_elf_link_assign_sym_version): Allow version
	script on executable.

2005-05-05  John Levon  <levon@movementarian.org>

	* dwarf2.c (read_abbrevs): If bfd_realloc fails, free currently
	allocated memory before returning.
	(decode_line_info): Likewise.
	(_bfd_dwarf2_cleanup_debug_info): New function:  Frees memory
	allocated by functions in this file.
	* elf-bfd.h (_bfd_dwarf2_cleanup_debug_info): Prototype.
	* elf.c (_bfd_elf_close_and_cleanup): Call
	_bfd_dwarf2_cleanup_debug_info.

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

	* Makefile.am (INCLUDES): Don't -D_GNU_SOURCE here.
	* configure.in: Call AC_GNU_SOURCE here, after AC_PROG_CC.
	* configure, config.in, Makefile.in: Regenerate.
	* sysdep.h (stpcpy): Revert last change.

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

	* sysdep.h (stpcpy): Wrap declaration in parentheses.

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

	* elfxx-ia64.c (ARCH_SIZE): New.
	(LOG_SECTION_ALIGN): Likewise.
	(elfNN_ia64_create_dynamic_sections): Use LOG_SECTION_ALIGN to
	align relocation sections.
	(get_fptr): Likewise.
	(get_reloc_section): Likewise.
	(elfNN_ia64_tprel_base): Likewise.
	(elfNN_ia64_check_relocs): Support 32bit relocations.
	(allocate_global_fptr_got): Likewise.
	(allocate_dynrel_entries): Likewise.
	(set_got_entry): Likewise.
	(set_pltoff_entry): Likewise.
	(elfNN_ia64_relocate_section): Likewise.

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

	* configure.in: Add AC_CHECK_DECLS(stpcpy).
	* configure: Regenerate.
	* config.in: Likewise.

	* sysdep.h (stpcpy): New.

2005-05-04  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	aix386-core.c, aix5ppc-core.c, aout-adobe.c, aout-arm.c,
	aout-cris.c, aout-ns32k.c, aout-sparcle.c, aout-target.h,
	aout-tic30.c, aout0.c, aout32.c, aout64.c, aoutf1.h, aoutx.h,
	archive.c, archive64.c, archures.c, armnetbsd.c, bfd-in.h,
	bfd-in2.h, bfd.c, bfdio.c, bfdwin.c, binary.c, bout.c, cache.c,
	cf-i386lynx.c, cf-m68klynx.c, cf-sparclynx.c, cisco-core.c,
	coff-a29k.c, coff-alpha.c, coff-apollo.c, coff-arm.c, coff-aux.c,
	coff-go32.c, coff-h8300.c, coff-h8500.c, coff-i386.c, coff-i860.c,
	coff-i960.c, coff-ia64.c, coff-m68k.c, coff-m88k.c, coff-maxq.c,
	coff-mcore.c, coff-mips.c, coff-or32.c, coff-pmac.c, coff-ppc.c,
	coff-rs6000.c, coff-sh.c, coff-sparc.c, coff-stgo32.c,
	coff-svm68k.c, coff-tic30.c, coff-tic4x.c, coff-tic54x.c,
	coff-tic80.c, coff-u68k.c, coff-w65.c, coff-we32k.c, coff-z8k.c,
	coff64-rs6000.c, coffcode.h, coffgen.c, cofflink.c, coffswap.h,
	corefile.c, cpu-a29k.c, cpu-alpha.c, cpu-arc.c, cpu-arm.c,
	cpu-avr.c, cpu-cr16c.c, cpu-cris.c, cpu-crx.c, cpu-d10v.c,
	cpu-d30v.c, cpu-dlx.c, cpu-fr30.c, cpu-frv.c, cpu-h8300.c,
	cpu-h8500.c, cpu-hppa.c, cpu-i370.c, cpu-i386.c, cpu-i860.c,
	cpu-i960.c, cpu-ia64-opc.c, cpu-ia64.c, cpu-ip2k.c, cpu-iq2000.c,
	cpu-m10200.c, cpu-m10300.c, cpu-m32r.c, cpu-m68hc11.c,
	cpu-m68hc12.c, cpu-m68k.c, cpu-m88k.c, cpu-maxq.c, cpu-mcore.c,
	cpu-mips.c, cpu-mmix.c, cpu-msp430.c, cpu-ns32k.c, cpu-openrisc.c,
	cpu-or32.c, cpu-pdp11.c, cpu-pj.c, cpu-powerpc.c, cpu-rs6000.c,
	cpu-s390.c, cpu-sh.c, cpu-sparc.c, cpu-tic30.c, cpu-tic4x.c,
	cpu-tic54x.c, cpu-tic80.c, cpu-v850.c, cpu-vax.c, cpu-w65.c,
	cpu-we32k.c, cpu-xstormy16.c, cpu-xtensa.c, cpu-z8k.c, demo64.c,
	dwarf1.c, dwarf2.c, ecoff.c, ecofflink.c, ecoffswap.h,
	efi-app-ia32.c, efi-app-ia64.c, elf-bfd.h, elf-eh-frame.c,
	elf-hppa.h, elf-m10200.c, elf-m10300.c, elf-strtab.c, elf.c,
	elf32-am33lin.c, elf32-arc.c, elf32-arm.c, elf32-avr.c,
	elf32-cr16c.c, elf32-cris.c, elf32-crx.c, elf32-d10v.c,
	elf32-d30v.c, elf32-dlx.c, elf32-fr30.c, elf32-frv.c, elf32-gen.c,
	elf32-h8300.c, elf32-hppa.c, elf32-hppa.h, elf32-i370.c,
	elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
	elf32-iq2000.c, elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c,
	elf32-m68hc1x.c, elf32-m68hc1x.h, elf32-m68k.c, elf32-m88k.c,
	elf32-mcore.c, elf32-mips.c, elf32-msp430.c, elf32-openrisc.c,
	elf32-or32.c, elf32-pj.c, elf32-ppc.c, elf32-ppc.h, elf32-s390.c,
	elf32-sh-symbian.c, elf32-sh.c, elf32-sh64-com.c, elf32-sh64.c,
	elf32-sh64.h, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
	elf32-xstormy16.c, elf32-xtensa.c, elf32.c, elf64-alpha.c,
	elf64-gen.c, elf64-hppa.c, elf64-hppa.h, elf64-mips.c,
	elf64-mmix.c, elf64-ppc.c, elf64-ppc.h, elf64-s390.c,
	elf64-sh64.c, elf64-sparc.c, elf64-x86-64.c, elf64.c, elfcode.h,
	elfcore.h, elflink.c, elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c,
	elfxx-mips.h, elfxx-sparc.c, elfxx-sparc.h, elfxx-target.h,
	epoc-pe-arm.c, epoc-pei-arm.c, format.c, freebsd.h, gen-aout.c,
	genlink.h, hash.c, host-aout.c, hp300bsd.c, hp300hpux.c,
	hppabsd-core.c, hpux-core.c, i386aout.c, i386bsd.c, i386dynix.c,
	i386freebsd.c, i386linux.c, i386lynx.c, i386mach3.c, i386msdos.c,
	i386netbsd.c, i386os9k.c, ieee.c, ihex.c, init.c, irix-core.c,
	libaout.h, libbfd-in.h, libbfd.c, libbfd.h, libcoff-in.h,
	libcoff.h, libecoff.h, libhppa.h, libieee.h, libnlm.h, liboasys.h,
	libpei.h, libxcoff.h, linker.c, lynx-core.c, m68k4knetbsd.c,
	m68klinux.c, m68klynx.c, m68knetbsd.c, m88kmach3.c, m88kopenbsd.c,
	mach-o-target.c, mach-o.c, mach-o.h, merge.c, mipsbsd.c, mmo.c,
	netbsd-core.c, netbsd.h, newsos3.c, nlm-target.h, nlm.c,
	nlm32-alpha.c, nlm32-i386.c, nlm32-ppc.c, nlm32-sparc.c, nlm32.c,
	nlm64.c, nlmcode.h, nlmswap.h, ns32k.h, ns32knetbsd.c, oasys.c,
	opncls.c, osf-core.c, pc532-mach.c, pdp11.c, pe-arm.c, pe-i386.c,
	pe-mcore.c, pe-mips.c, pe-ppc.c, pe-sh.c, peXXigen.c,
	pef-traceback.h, pef.c, pef.h, pei-arm.c, pei-i386.c, pei-mcore.c,
	pei-mips.c, pei-ppc.c, pei-sh.c, peicode.h, ppcboot.c,
	ptrace-core.c, reloc.c, reloc16.c, riscix.c, rs6000-core.c,
	sco5-core.c, section.c, simple.c, som.c, som.h, sparclinux.c,
	sparclynx.c, sparcnetbsd.c, srec.c, stab-syms.c, stabs.c, sunos.c,
	syms.c, sysdep.h, targets.c, tekhex.c, ticoff.h, trad-core.c,
	vax1knetbsd.c, vaxbsd.c, vaxnetbsd.c, versados.c, vms-gsd.c,
	vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h, xcoff-target.h,
	xcofflink.c, xsym.c, xsym.h, xtensa-isa.c, xtensa-modules.c,
	hosts/alphavms.h

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

	* bfd-in.h (_bfd_elf_provide_section_bound_symbols): New.
	* bfd-in2.h: Regenerated.

	* elflink.c (bfd_elf_set_symbol): New.
	(_bfd_elf_provide_symbol): Call it.
	(_bfd_elf_provide_section_bound_symbols): New.

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

	* elflink.c (_bfd_elf_merge_symbol): Only skip weak definitions
	at the end, if a strong definition has already been seen.

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

	* section.c (struct bfd_section): Replace link_order_head and
	link_order_tail with map_head and map_tail union.
	(STD_SECTION): Update.
	(_bfd_strip_section_from_output): Delete.
	* aoutx.h: Update throughout for above changes.
	* coff-ppc.c: Likewise.
	* cofflink.c: Likewise.
	* ecoff.c: Likewise.
	* elf-eh-frame.c: Likewise.
	* elf-m10300.c: Likewise.
	* elf.c: Likewise.
	* elf32-arm.c: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh.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-x86-64.c: Likewise.
	* elflink.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* elfxx-sparc.c: Likewise.
	* linker.c: Likewise.
	* merge.c: Likewise.
	* pdp11.c: Likewise.
	* xcofflink.c: Likewise.
	* elflink.c (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Split
	out from bfd_elf_size_dynamic_sections.
	* bfd-in.h (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Declare.
	* bfd-in2.h: Regenerate.

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

	* section.c (bfd_section_list_remove): Don't clear s->next.
	(bfd_section_list_append): Always init s->prev.
	(bfd_section_list_prepend): Define.
	(bfd_section_list_insert_after): Minor optimization.
	(bfd_section_removed_from_list): Rewrite.
	* elf.c (assign_section_numbers): Simplify list traversal now that
	bfd_section_list_remove doesn't destroy removed section next ptr.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
	* elfxx-ia64.c (elfNN_ia64_object_p): Use bfd_section_list_prepend.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Simplify list traversal.
	* bfd-in2.h: Regenerate.

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

	* bfd.c (bfd): Remove section_tail and add section_last.
	(bfd_preserve): Likewise.
	(bfd_preserve_save): Likewise.
	(bfd_preserve_restore): Likewise.
	* opncls.c (_bfd_new_bfd): Likewise.

	* coffcode.h (coff_compute_section_file_positions): Updated.
	(coff_compute_section_file_positions): Likewise.
	* elf.c (assign_section_numbers): Likewise.
	* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
	* elf64-mmix.c (mmix_elf_final_link): Likewise.
	* elfxx-ia64.c (elfNN_ia64_object_p): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.

	* ecoff.c (bfd_debug_section): Initialize prev.

	* section.c (bfd_section): Add prev.
	(bfd_section_list_remove): Updated.
	(bfd_section_list_append): New.
	(bfd_section_list_insert_after): New.
	(bfd_section_list_insert_before): New.
	(bfd_section_list_insert): Removed.
	(bfd_section_removed_from_list): Updated.
	(STD_SECTION): Initialize prev.
	(bfd_section_init): Updated.
	(bfd_section_list_clear): Updated.

	* bfd-in2.h: Regenerated.

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

	* elf.c (_bfd_elf_new_section_hook): Don't call
	_bfd_elf_get_sec_type_attr on sections from input files.

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

	* merge.c (sec_merge_init): Call bfd_hash_table_init_n with
	hash table size 16699 instead of bfd_hash_table_init.

2005-05-01  Paul Brook  <paul@codesourcery.com>

	* elflink.c (_bfd_elf_merge_symbol): Skip weak definitions if a strong
	definition has already been seen.

2005-05-01  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
	R_ARM_PLT32 the same as R_ARM_PC24.
	(arm_add_to_rel): Ditto.

2005-04-29  Ralf Corsepius <ralf.corsepius@rtems.org>

	* config.bfd: Add h8300*-*-rtemscoff.
	Switch h8300*-*-rtems* to elf.

2005-04-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* aclocal.m4, Makefile.in: Regnerated.

2005-04-28  Paul Brook  <paul@codesourcery.com>

	Merge changes only applied to Makefile.in.
	* Makefile.am (BFD32_BACKENDS): Add elfxx-sparc.lo
	(BFD32_BACKENDS_CFILES): Add elfxx-sparc.c
	(elfxx-sparc.lo): New rule.
	(elf32-sparc.lo): Add elfxx-sparc.h dependency.
	(elf64-sparc.lo): Likewise.

2005-04-28  Julian Brown  <julian@codesourcery.com>

	* elflink.c (_bfd_elf_provide_symbol): Provide symbol for weak
	import.

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

	* elf-bfd.h (bfd_elf_sym_name): Also take "asection *".

	* elf.c (bfd_elf_sym_name): Updated.
	(group_signature): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_edit_opd): Likewise.
	(ppc64_elf_edit_toc): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Likewise.
	* elflink.c (elf_link_input_bfd): Likewise.

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Call
	bfd_elf_sym_name to get local symbol name when reporting errors.

2005-04-27  Nick Clifton  <nickc@redhat.com>

	* elflink.c (elf_link_input_bfd): Handle the case where a badly
	formatted input file results in a reloc which has no associated
	global symbol.

2005-04-26  Jerome Guitton  <guitton@gnat.com>

	* bfd.m4 (BFD_NEED_DECLARATION): Restore.

2005-04-25  David S. Miller  <davem@davemloft.net>

	* elfxx-sparc.c (sparc_elf_append_rela_64): Add BFD64 protection.
	(sparc_elf_r_info_64, _bfd_sparc_elf_finish_dynamic_symbol,
	sparc64_finish_dyn, _bfd_sparc_elf_finish_dynamic_sections):
	Likewise.

2005-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR 858
	* elflink.c (elf_link_input_bfd): Make non-debugging reference
	to discarded section an error.

2005-04-21  Jerome Guitton  <guitton@gnat.com>

	* configure.in: Replace BFD_NEED_DECLARATION checks by the
	corresponding AC_CHECK_DECLS.
	* sysdep.h: Replace NEED_DECLARATION_* checks by the corresponding
	HAVE_DECL_*.
	* bfd.m4 (BFD_NEED_DECLARATION): Remove, obsolete.
	* configure: Regenerate.
	* config.in: Ditto.

2005-04-21  Andreas Schwab  <schwab@suse.de>

	* elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Remove
	unsigned from type of dynamic_interpreter.
	* elfxx-sparc.c (_bfd_sparc_elf_link_hash_table_create): Remove
	casts again.

	* elf.c (assign_section_numbers): Fix comment.

2005-04-21  Jerome Guitton  <guitton@gnat.com>

	* som.c (som_bfd_print_private_bfd_data): Add explicit cast to long
	for struct som_exec_auxhdr fields.

2005-04-21  Nick Clifton  <nickc@redhat.com>

	* aout-adobe.c: Convert to ISO C and fix formatting.
	* aout-arm.c: Convert to ISO C and fix formatting.
	* aout-cris.c: Convert to ISO C and fix formatting.
	* aout-ns32k.c: Convert to ISO C and fix formatting.
	* aout-tic30.c: Convert to ISO C and fix formatting.
	* coffcode.h: Convert to ISO C and fix formatting.
	* coffswap.h: Convert to ISO C and fix formatting.
	* i386aout.c: Convert to ISO C and fix formatting.
	* libaout.h: Convert to ISO C and fix formatting.
	* libcoff-in.h: Convert to ISO C and fix formatting.
	* libcoff.h: Convert to ISO C and fix formatting.
	* libecoff.h: Convert to ISO C and fix formatting.
	* libnlm.h: Convert to ISO C and fix formatting.
	* libpei.h: Convert to ISO C and fix formatting.
	* libxcoff.h: Convert to ISO C and fix formatting.
	* nlm-target.h: Convert to ISO C and fix formatting.
	* nlm.c: Convert to ISO C and fix formatting.
	* nlm32-alpha.c: Convert to ISO C and fix formatting.
	* nlm32-i386.c: Convert to ISO C and fix formatting.
	* nlm32-ppc.c: Convert to ISO C and fix formatting.
	* nlm32-sparc.c: Convert to ISO C and fix formatting.
	* nlmcode.h: Convert to ISO C and fix formatting.
	* nlmswap.h: Convert to ISO C and fix formatting.
	* pe-mips.c: Convert to ISO C and fix formatting.
	* peXXigen.c: Convert to ISO C and fix formatting.
	* peicode.h: Convert to ISO C and fix formatting.
	* vms-gsd.c: Convert to ISO C and fix formatting.
	* vms-hdr.c: Convert to ISO C and fix formatting.
	* vms-misc.c: Convert to ISO C and fix formatting.
	* vms-tir.c: Convert to ISO C and fix formatting.
	* vms.c: Convert to ISO C and fix formatting.
	* vms.h: Convert to ISO C and fix formatting.

	* coffgen.c (coff_print_symbol): Restore correct formatting of
	output.

2005-04-20  David S. Miller  <davem@davemloft.net>

	* elfxx-sparc.c (sparc_elf_r_symndx_64): Fix compiler warning.
	(_bfd_sparc_elf_link_hash_table_create): Likewise.
	(allocate_dynrelocs): Likewise.

2005-04-20  Jerome Guitton  <guitton@gnat.com>

	* configure.in: Fix the check for basename declaration. Add check
	for declarations of ftello, ftello64, fseeko, fseeko64.
	* configure: Regenerate.
	* config.in: Ditto.
	* sysdep.h: If needed, declare ftello, ftello64, fseeko, fseeko64.

2005-04-19  David S. Miller  <davem@davemloft.net>

	* elfxx-sparc.c: New file.
	* elfxx-sparc.h: New file.
	* Makefile.in (BFD32_BACKENDS): Add elfxx-sparc.lo
	(BFD32_BACKENDS_CFILES): Add elfxx-sparc.c
	(elfxx-sparc.lo): New rule.
	(elf32-sparc.lo): Add elfxx-sparc.h dependency.
	(elf64-sparc.lo): Likewise.
	* configure.in (bfd_elf32_sparc_vec): Add elfxx-sparc.lo
	(bfd_elf64_sparc_vec): Likewise.
	* configure: Regenerate.
	* elf32-sparc.c: Remove common code now in elfxx-sparc.c
	* elf64-sparc.c: Likewise, also use elf64_sparc_*() naming
	which is more consistent with elf32-sparc.c

2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfxx-mips.c (struct mips_elf_link_hash_entry): Update comment.
	(mips_elf_create_local_got_entry): Check h->root.forced_local.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Don't bother with
	dynamic relocs in non-SEC_ALLOC sections.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.

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

	* aix5ppc-core.c (xcoff64_core_p): Fix compile time warning
	assigning a value to return_value.

2005-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR 855
	* elf.c (_bfd_elf_copy_private_section_data): Don't copy linker
	created group data.

2005-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR 855
	* elf.c (setup_group): Properly handle zero group count.

2005-04-17  Mark Kettenis  <kettenis@gnu.org>

	* som.c (hppa_som_reloc, som_mkobject, som_is_space)
	(som_is_subspace, compare_subspaces, som_compute_checksum)
	(som_build_and_write_symbol_table, som_slurp_symbol_table): New
	protoypes.
	(hppa_som_reloc, compare_syms, compare_subspaces)
	(som_print_symbol, som_get_section_contents)
	(som_set_section_contents): Remove space after 'void *'.
	(som_bfd_print_private_bfd_data): Use %lx to print longs.
	(som_bfd_merge_private_bfd_data)
	(som_bfd_copy_private_header_data, som_bfd_set_private_flags): New
	defines.

2004-04-15  Julian Brown  <julian@codesourcery.com>

	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (elf32_arm_link_hash_table): New field, 'use_blx'.
	(elf32_arm_link_hash_table_create): Initialise fix_v4bx, use_blx.
	(bfd_elf32_arm_set_target_relocs): Handle use_blx.
	(elf32_arm_final_link_relocate): Use Thumb BLX for R_ARM_THM_PC22
	relocations if requested to.
	(allocate_dynrelocs): Don't count size of omitted Thumb stubs based on
	use_blx rather than symbian_p.
	(elf32_arm_finish_dynamic_symbol): Don't output Thumb PLT stubs if
	use_blx is in effect.
	(elf32_arm_symbian_link_hash_table_create): Enable use_blx by default
	for SymbianOS.

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

	* coffgen.c (coff_print_symbol): Use fprintf_vma to print vma
	values.

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

	PR ld/815
	* elflink.c (elf_smash_syms): Clear undef.next if it's not being
	used as a list pointer.

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

	* Makefile.am (NO_WERROR): Define.
	* warning.m4: New file
	* acinclude.m4: Include warning.m4.
	* configure.in: Invoke AM_BINUTILS_WARNINGS.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

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

	* merge.c (sec_merge_emit): Tidy.  Check for bfd_zmalloc errors.
	Write trailing padding.

	* merge.c (merge_strings): Round up section size for alignment.

2005-04-14  David S. Miller  <davem@davemloft.net>

	Add TLS support for 64-bit Sparc ELF.
	*  elf64-sparc.c (sparc64_elf_dyn_relocs,
	sparc64_elf_link_hash_entry, sparc64_elf_obj_tdata): New structs.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLD_GD, GOT_TLD_IE,
	sparc64_elf_hash_entry, sparc64_elf_tdata,
	sparc64_elf_local_got_tls_type): New defines.
	(sparc64_elf_mkobject): New function.
	(sparc64_elf_link_hash_table): Add members for dynamic linker
	sections PLT, RELPLT, DYNBSS, and RELBSS.  Add tls_ldm_got
	uion to track TLS GOT references.  Add sym_sec to cache
	mappings from local sym to section.
	(link_hash_newfunc): New function.
	(sparc64_elf_bfd_link_hash_table_create): Rename to
	sparc64_elf_link_hash_table_create for consistency.
	Pass link_hash_newfunc to _bfd_elf_link_hash_table_init.
	(sparc64_elf_create_dynamic_sections): Initialize new section
	members of sparc64_elf_link_hash_table.  Only init srelbss
	if not-shared.
	(sparc64_elf_copy_indirect_symbol, sparc64_elf_tls_transition):
	New functions.
	(SPARC_NOP): Define.
	(sparc64_elf_build_plt, sparc64_elf_plt_entry_offset,
	sparc64_elf_plt_ptr_offset): Delete.
	(sparc64_plt_entry_build): New function to build PLT entries
	gradually instread of all at once at the end of linking.
	(sparc64_elf_check_relocs): Delete dynobj, sgot, and srelgot
	local vars.  Get them from sparc64_elf_hash_table instead.
	Check early on if r_symndx is in bounds.  Handle TLS transitions.
	Account for TLS GOT references and DF_STATIC_TLS, as needed.
	For TLS relocs, record the tls_type in either
	sparc64_elf_local_got_tls_type or sparc64_elf_hash_entry as
	appropriate.  For R_SPARC_TLS_{GD,LDM}_CALL, emit a reference
	to the __tls_get_addr symbol.  For PLT relocs, track references
	via h->plt.refcount.  When R_SPARC_{PC10,PC22,PC_HH22,PC_HM10,
	PC_LM22} and h not-NULL, set h->non_got_ref.  For global data
	symbol references, count the number of relocations needed for
	that symbol.  For default switch case, don't error, this lets
	the TLS relocs not explicitly handled by this function get
	accepted.
	(sparc64_elf_gc_mark_hook, sparc64_gc_sweep_hook): New functions.
	(sparc64_elf_adjust_dynamic_symbol): Remove dynobj local var, get
	it from sparc64_elf_hash_table.  Store the real PLT offset
	in h->plt.offset, and build PLT entries one at a time.  Also
	get .dynbss section pointer from htab.
	(allocate_dynrelocs, readonly_dynrelocs,
	sparc64_omit_section_dynsym): New functions.
	(sparc64_elf_omit_section_dynsym): Use these new functions as
	helpers.
	(dtpoff_base, tpoff): New functions.
	(sparc64_elf_relocate_section): Kill dynobj, sgot, and splt
	locals, get them from sparc64_elf_hash_table.  Handle TLS
	relocations and refcounting in main relocation loop.
	(sparc64_elf_finish_dynamic_symbol): Use
	sparc64_elf_link_hash_table.  Build PLT entries as we see
	them.  Handle TLS GOT relocations.
	(sparc64_elf_finish_dynamic_sections): Get sgot and dynobj
	from sparc64_elf_hash_table.  Initialize only PLT header
	not all entries since we not build PLT entries one by one.
	(elf_backend_copy_indirect_symbol, bfd_elf64_mkobject,
	elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook,
	elf_backend_can_gc_sections, elf_backend_can_refcount): Define.

2005-04-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* elflink.c (elf_link_input_bfd): Update check for removed
	sections.

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

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* libcoff.h: Regenerate.

2005-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	* linker.c (_bfd_generic_link_output_symbols): Also check if
	the output section of an input section has been removed from
	the output file.

	* section.c (bfd_section_list_remove): Clear the next field
	of the removed section.
	(bfd_section_removed_from_list): New.
	* bfd-in2.h: Regenerated.

2005-04-11  David S. Miller  <davem@davemloft.net>

	* elf32-sparc.c (elf32_sparc_relocate_section,
	R_SPARC_TLS_LDO_{HIX22,LOX10}): When not shared, transition to
	R_SPARC_TLS_LE_{HIX22,LOX10}.
	(elf32_sparc_relocate_section, R_SPARC_TLS_{LDO,LE}_HIX22): Only
	xor relocation with 0xffffffff if R_SPARC_TLS_LE_HIX22.
	(elf32_sparc_relocate_section, R_SPARC_TLS_{LDO,LE}_LOX10): Only
	or 0x1c00 into relocation if R_SPARC_TLS_LE_HIX22.

2005-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	* coffcode.h (STRING_SIZE_SIZE): Updated to match libcoff-in.h.

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

	* aout-target.h:  Convert to ISO C.
	* aoutf1.h:  Convert to ISO C.
	* aoutx.h:  Convert to ISO C.
	* bout.c:  Convert to ISO C.
	* dwarf1.c:  Convert to ISO C.
	* ecoffswap.h:  Convert to ISO C.
	* freebsd.h:  Convert to ISO C.
	* genlink.h:  Convert to ISO C.
	* ieee.c:  Convert to ISO C.
	* ihex.c:  Convert to ISO C.
	* libcoff-in.h:  Convert to ISO C.
	* mach-o.c:  Convert to ISO C.
	* mach-o.h:  Convert to ISO C.
	* netbsd.h:  Convert to ISO C.
	* ns32k.h:  Convert to ISO C.
	* ns32knetbsd.c:  Convert to ISO C.
	* oasys.c:  Convert to ISO C.
	* pdp11.c:  Convert to ISO C.
	* pef-traceback.h:  Convert to ISO C.
	* pef.c:  Convert to ISO C.
	* pef.h:  Convert to ISO C.
	* riscix.c:  Convert to ISO C.
	* som.c:  Convert to ISO C.
	* som.h:  Convert to ISO C.
	* srec.c:  Convert to ISO C.
	* stabs.c:  Convert to ISO C.
	* sunos.c:  Convert to ISO C.
	* tekhex.c:  Convert to ISO C.
	* versados.c:  Convert to ISO C.
	* version.h:  Convert to ISO C.
	* xcoff-target.h:  Convert to ISO C.
	* xcofflink.c:  Convert to ISO C.
	* xsym.c:  Convert to ISO C.
	* xsym.h:  Convert to ISO C.

2005-04-08  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
	(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
	(ARM2THUMB_PIC_GLUE_SIZE): Define.
	(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
	(elf32_arm_to_thumb_stub): Create PIC stubs.
	(record_arm_to_thumb_glue): Use different stub size for relocatable
	images.

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

	* elf64-ppc.c (dec_dynrel_count): New function split out from
	ppc64_elf_edit_toc, with additional code from ppc64_elf_edit_opd.
	(ppc64_elf_edit_toc, ppc64_elf_edit_opd): Use it.
	(ppc64_elf_tls_optimize): Likewise.

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

	* netbsd-core.c (SPARC_WCOOKIE_OFFSET): Renamed from
	CORE_WCOOKIE_OFFSET.
	(SPARC64_WCOOKIE_OFFSET): New.
	(netbsd_core_file_p): Provide .wcookie section for OpenBSD/sparc64.

2005-04-05  Nick Clifton  <nickc@redhat.com>

	* po/rw.po: New translation: Kinyarwanda
	* configure.in (ALL_LINGUAS): Add rw
	* configure: Regenerate.

2005-04-05  Richard Sandiford  <rsandifo@redhat.com>

	* elfxx-mips.c (MIPS_ELF_OPTIONS_SECTION_NAME_P): New macro.
	(_bfd_mips_elf_section_from_shdr): Use it to check for recognized
	SHT_MIPS_OPTIONS names.  Allow all sections with unrecognised
	section flags.
	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_OPTIONS_SECTION_NAME_P
	to check for SHT_MIPS_OPTIONS sections.
	(_bfd_mips_elf_set_section_contents): Likewise.

2005-04-04  Eric Christopher  <echristo@redhat.com>

	* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents):
	Clean up gp handling code.

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

	* elf.c (bfd_elf_set_group_contents): Ignore linker created
	group section.
	(assign_section_numbers): Accept link_info. Check SHT_GROUP
	sections for relocatable files only. Remove the linker created
	group sections.
	(_bfd_elf_compute_section_file_positions): Pass link_info to
	assign_section_numbers.

	* elfxx-ia64.c (elfNN_ia64_object_p): New.
	(elf_backend_object_p): Defined.

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

	* elf-bfd.h (elf_section_data): Use (sec) instead of sec.

2005-04-03  Fred Fish  <fnf@specifixinc.com>

	* dwarf2.c (struct dwarf2_debug): Add dwarf_ranges_buffer and
	dwarf_ranges_size members.
	(struct comp_unit): Add base_address member.
	(struct funcinfo): Replace low/high members with an arange.
	(arange_add): Replace incoming "unit" parameter with "abfd" and
	"first_arange" pointers.  Reorganize/rewrite function body.
	(decode_line_info): Change arange_add call to pass bfd and arange
	pointers.
	(lookup_address_in_line_info_table): Use arange list instead of
	individual low/high members.  Walk function's arange list to find
	lowest PC in list, to test for overlapping functions.
	(read_debug_ranges): New function, reads the debug_ranges section.
	(lookup_address_in_function_table): Use arange list instead of
	individual low/high members.  Rewrite to find smallest range that
	matches.
	(read_rangelist): Read a given rangelist from debug_ranges.
	(scan_unit_for_functions): Use arange list instead of individual
	low/high members.  Handle a DW_AT_ranges attribute.
	(parse_comp_unit): Use arange list instead of individual low/high
	members.  Save comp unit base address.  Handle a DW_AT_ranges
	attribute.

2005-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (assign_section_numbers): Really use the kept section.

2005-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (_bfd_elf_check_kept_section): New.

	* elf.c (assign_section_numbers): When sh_link points to a
	discarded section, call _bfd_elf_check_kept_section to see if
	the kept section can be used. Otherwise reject sh_link
	pointing to discarded section.

	* elflink.c (_bfd_elf_check_kept_section): New.
	(elf_link_input_bfd): Use it.

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

	* elf64-ppc.c (ppc64_elf_edit_toc): Account for dynamic relocs
	that we no longer need.

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

	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return -1 on errors
	rather than 0.
	(ppc64_elf_check_relocs): Remove unnecessary SEC_ALLOC check.

2005-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (assign_section_numbers): Fix a typo.

2005-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_link_input_bfd): Remove the extra `\n' in
	error message.
	(_bfd_elf_section_already_linked): Likewise.

2005-03-31  Jerome Guitton  <guitton@gnat.com>

	* config.in: Regenerate.

2005-03-31  Jerome Guitton  <guitton@gnat.com>

	* config.in (HAVE_DECL_BASENAME): New configure macro.
	* configure.in: Check for basename.
	* configure: Regenerate.

2005-03-30  Julian Brown  <julian@codesourcery.com>

	* bfd-in.h (bfd_is_arm_mapping_symbol_name): Rename from
	bfd_elf32_is_arm_mapping_symbol_name.
	* bfd-in2.h: Regenerate.
	* cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename from
	bfd_elf32_is_arm_mapping_symbol_name.
	* elf32-arm.c (elf32_arm_is_target_special_symbol): Rename
	bfd_elf32_is_arm_mapping_symbol_name to bfd_is_arm_mapping_symbol_name.
	(arm_elf_find_function): Likewise.
	(elf32_arm_output_symbol_hook): Likewise.

2005-03-30  Julian Brown  <julian@codesourcery.com>

	* bfd-in.h (bfd_elf32_is_arm_mapping_symbol_name): Add prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (elf32_arm_is_target_special_symbol): Rename call to
	bfd_elf32_is_arm_mapping_symbol_name.
	(elf32_arm_output_symbol_hook): Likewise.
	(arm_elf_find_function): Likewise, and include STT_NOTYPE in test for
	mapping symbols.
	(is_arm_mapping_symbol_name): Function moved from here...
	* cpu-arm.c (bfd_elf32_is_arm_mapping_symbol_name): ...to here, renamed
	and made global.

2005-03-29  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* configure.in: Check for ffs decl and alphabetize.
	* config.in: Regenerate.
	* configure: Regenerate.
	* sysdep.h [NEED_DECLARATION_FFS] (ffs): Prototype and alphabetize.

2005-03-29  Fred Fish  <fnf@specifixinc.com>

	* dwarf2.c (struct comp_unit): Fix typo.
	(scan_unit_for_functions): Remove unused local variable "name"
	and dead code that set it.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Phil Blundell  <philb@gnu.org>

	* bfd-in2.h, libbfd.h: Regenerated.
	* reloc.c: Add ARM TLS relocations.
	* elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
	relocations.
	(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
	(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
	(elf32_arm_tls_ie32_howto): New.
	(elf32_arm_howto_from_type): Support TLS relocations.
	(elf32_arm_reloc_map): Likewise.
	(elf32_arm_reloc_type_lookup): Likewise.
	(TCB_SIZE): Define.
	(struct elf32_arm_obj_tdata): New.
	(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
	(elf32_arm_mkobject): New function.
	(struct elf32_arm_relocs_copied): Add pc_count.
	(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
	(GOT_TLS_IE): Define.
	(struct elf32_arm_link_hash_table): Add tls_ldm_got.
	(elf32_arm_link_hash_newfunc): Initialize tls_type.
	(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
	(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
	(dtpoff_base, tpoff): New functions.
	(elf32_arm_final_link_relocate): Handle TLS relocations.
	(IS_ARM_TLS_RELOC): Define.
	(elf32_arm_relocate_section): Warn about TLS mismatches.
	(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
	(elf32_arm_check_relocs): Detect invalid symbol indexes.  Handle
	TLS relocations and pc_count.
	(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
	(allocate_dynrelocs): Handle TLS.  Bind REL32 relocs to local
	calls.
	(elf32_arm_size_dynamic_sections): Handle TLS.
	(elf32_arm_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject): Define.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_check_relocs): Increment count for all
	relocation types.  Don't count relocations which will use a PLT.

2005-03-29  Joel Brobecker  <brobecker@gnat.com>

	* elf.c (elfcore_grok_nto_status): Print tid as long.
	(elfcore_grok_nto_regs): Likewise.

2005-03-29  Joel Brobecker  <brobecker@gnat.com>

	* irix-core.c: Remove some unnecessary prototypes.

2005-03-28  Joel Brobecker  <brobecker@adacore.com>

	* irix-core.c: Convert to ISO C.

2005-03-28  Joel Brobecker  <brobecker@adacore.com>

	* irix-core.c (do_sections): Replace + by | in expression.
	(irix_core_core_file_matches_executable_p): Add ATTRIBUTE_UNUSED
	to unused parameters to avoid a compiler warning.

2005-03-28  Mark Kettenis  <kettenis@gnu.org>

	* netbsd-core.c: Convert to ISO C.  Fix formatting.

2005-03-24  Eric Christopher  <echristo@redhat.com>

	* elfxx-mips.c: Revert previous patch.

2005-03-24  Nick Clifton  <nickc@redhat.com>

	* targets.c (_bfd_target_vector): Only include the
	bfd_elf32_ia64_hpux_big_vec vector when building a 64-bit BFD with
	all targets enabled.

2005-03-24  James E Wilson  <wilson@specifixinc.com>

	* Makefile.am (BFD32_BACKENDS): Delete elf32-ia64.lo.
	(BFD64_BACKENDS): Add elf32-ia64.lo.
	* Makefile.in: Regenerate.

2005-03-23  Eric Christopher  <echristo@redhat.com>

	* elfxx-mips.c (MIPS_ELF_READONLY_SECTION): New.
	(mips_elf_calculate_relocation): Use. Define DF_TEXTREL
	after emitting relocation.
	(_bfd_mips_elf_adjust_dynamic_symbol): Ditto.
	(_bfd_mips_elf_check_relocs): Remove code to set DF_TEXTREL
	and readonly_reloc.

2005-03-23  Mike Frysinger  <vapier@gentoo.org>
	    Nick Clifton  <nickc@redhat.com>

	* config.bfd: Accept any C library to accompany a GNU Linux
	implementation, not just the GNU C library.
	* configure.in: Likewise.
	* configure: Regenerate.

2005-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in.h (_bfd_elf_provide_symbol): New.
	* bfd-in2.h: Regenerated.

	* elf32-ppc.c (set_linker_sym): Moved to elflink.c.
	(ppc_elf_set_sdata_syms): Call _bfd_elf_provide_symbol instead
	of set_linker_sym.

	* elflink.c (_bfd_elf_provide_symbol): New. Moved and renamed
	from elf32-ppc.c.

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

	* hash.c (strtab_hash_newfunc): Fix typo in allocated size.

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

	* xtensa-isa.c (xtensa_opcode_lookup, xtensa_state_lookup,
	xtensa_sysreg_lookup_name, xtensa_interface_lookup,
	xtensa_funcUnit_lookup): Skip bsearch call if count is zero.
	(xtensa_opcode_decode): Rearrange code.

2005-03-22  Nick Clifton  <nickc@redhat.com>

	* binary.c: Convert to ISO C90 formatting.
	* coff-arm.c: Convert to ISO C90 formatting.
	* coffgen.c: Convert to ISO C90 formatting.
	* elf32-gen.c: Convert to ISO C90 formatting.
	* elf64-gen.c: Convert to ISO C90 formatting.
	* hash.c: Convert to ISO C90 formatting.
	* ieee.c: Convert to ISO C90 formatting.

2005-03-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Don't fail for
	unresolved symbols in R_ARM_NONE relocations.

2005-03-22  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Add
	UNRESOLVED_RELOC_P argument.  Set it appropriately.
	(elf32_arm_relocate_section): Update call to
	elf32_arm_final_link_relocate.  Don't clobber RELOCATION; use
	unresolved_reloc instead.

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

	* elflink.c (elf_link_add_object_symbols): Set SEC_EXCLUDE on
	.gnu.warning.* sections.

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

	* elf32-ppc.c (elf_linker_section_pointers_t): Remove
	written_address_p.
	(ppc_elf_create_linker_section): Don't try to reuse existing section.
	(elf_create_pointer_linker_section): Delete info parm.  Don't make
	h dynamic.  Don't set written_address_p.
	(ppc_elf_check_relocs): Adjust ppc_elf_create_linker_section calls.
	(bfd_put_ptr): Delete.
	(elf_finish_pointer_linker_section): Remove output_bfd and info parms.
	Always write section contents.  Assert global sym is def_regular.
	Use offset bottom bit as a written flag.
	(ppc_elf_relocate_section): Adjust elf_finish_pointer_linker_section
	calls.

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

	* elf32-ppc.c (ppc_elf_set_sdata_syms): New function, extracted from..
	(ppc_elf_set_sdata_syms): ..here.  Expand comment.  Set .sbss start
	and end syms.

2005-03-21  Nick Clifton  <nickc@redhat.com>

	* coff-arm.c (coff_link_hash_entry): Only define for non WINCE
	targets.
	(t2a1_bx_pc_insn): Likewise.
	(t2a2_noop_insn): Likewise.
	(t2a3_b_insn): Likewise.
	(t2a1_push_insn): Likewise.
	(t2a2_ldr_insn): Likewise.
	(t2a3_mov_insn): Likewise.
	(t2a4_bx_insn): Likewise.
	(t2a5_pop_insn): Likewise.
	(t2a6_bx_insn): Likewise.
	(coff_arm_relocate_section): Only declare the high_address
	variable for non WINCE targets.

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

	* elf32-ppc.c (ppc_elf_add_symbol_hook): Make htab->sbss
	SEC_LINKER_CREATED.  Attach to dynobj.
	(ppc_elf_size_dynamic_sections): Strip htab->sbss if zero size.

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

	* elf32-ppc.c (struct elf_linker_section): Remove sym_hash and
	sym_offset.  Add name, bss_name, sym_name, sym_val.
	(struct ppc_elf_link_hash_table): Remove sdata and sdata2 pointers.
	Add sdata array of elf_linker_section_t.
	(ppc_elf_link_hash_table_create): Set name, sym_name, and bss_name.
	(enum elf_linker_section_enum): Delete.
	(ppc_elf_create_linker_section): Rewrite.  Don't create syms here.
	(ppc_elf_check_relocs): Delay ppc_elf_create_linker_section until
	the special sections are needed.  Adjust htab->sdata refs.
	Ensure dynobj is set in sreloc code.
	(ppc_elf_size_dynamic_sections): Strip sdata sections.
	(ppc_elf_set_sdata_syms): New function.
	(elf_finish_pointer_linker_section): Use 0x8000 for sym_offset.
	(ppc_elf_relocate_section): Adjust references to htab->sdata.  Use
	sym_val instead of sym_hash.
	* elf32-ppc.h (ppc_elf_set_sdata_syms): Declare.

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

	* elf32-ppc.c (is_ppc_elf_target): Move to linker part of file.
	(ppc_elf_merge_private_bfd_data): Likewise.

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

	* elf32-ppc.c (struct elf_linker_section): Remove rel_section.
	(ppc_elf_create_linker_section): Don't create rel_section.
	(elf_create_pointer_linker_section): Don't size relocs.
	(elf_finish_pointer_linker_section): Remove relative_reloc parm.
	Don't generate relocs.
	(ppc_elf_relocate_section): Adjust calls to
	elf_finish_pointer_linker_section.

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

	* elf32-ppc.c (is_ppc_elf_target): New function.
	(ppc_elf_merge_private_bfd_data): Use it rather than just testing
	for bfd_target_elf_flavour.  Do this test before endian check.
	(ppc_elf_add_symbol_hook): Use is_pcc_elf_target.
	(ppc_elf_size_dynamic_sections): Likewise.

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

	* elf-bfd.h (elf_backend_data): Add int to
	elf_backend_section_from_shdr.
	(bfd_elf_section_data): Update comment for this_idx.
	(_bfd_elf_make_section_from_shdr): Add int.
	* elfxx-mips.h (_bfd_mips_elf_section_from_shdr): Likewise.

	* elf.c (_bfd_elf_make_section_from_shdr): Take section index
	and use it to set this_idx in bfd_elf_section_data.
	(bfd_section_from_shdr): Pass shindex to
	_bfd_elf_make_section_from_shdr.
	(_bfd_elf_section_from_bfd_section): Use this_idx in
	bfd_elf_section_data to find section index.

	* elf32-arm.c (elf32_arm_section_from_shdr): Take section
	index and pass it to _bfd_elf_make_section_from_shdr.
	* elf32-i370.c(i370_elf_section_from_shdr): Likewise.
	* elf32-ppc.c (ppc_elf_section_from_shdr): Likewise.
	* elf32-sh64.c (sh64_backend_section_from_shdr): Likewise.
	* elf32-v850.c (v850_elf_section_from_shdr): Likewise.
	* elf64-alpha.c (elf64_alpha_section_from_shdr): Likewise.
	* elf64-hppa.c (elf64_hppa_section_from_shdr): Likewise.
	* elf64-x86-64.c (elf64_x86_64_section_from_shdr): Likewise.
	* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Likewise.

2005-03-19  Danny Smith <dannysmith@users.sourceforge.net>
	    Ross Ridge  <rridge@csclub.uwaterloo.ca>

	* peicode.h (pe_ILF_build_a_bfd): Strip only one prefix
	character in IMPORT_NAME_UNDECORATE and IMPORT_NAME_NOPREFIX
	cases.  Add comment.

2005-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_mark_used_section): Remove check for special
	sections.

2005-03-18  Andreas Schwab  <schwab@suse.de>

	* elfxx-ia64.c (elfNN_ia64_install_value): Change type of insn
	from bfd_vma to ia64_insn, remove broken cast.

2005-03-18  C Jaiprakash  <cjaiprakash@noida.hcltech.com>

	* elf32-m68k.c (elf_cfv4e_plt0_entry): plt entry for coldfire v4e.
	(elf_m68k_adjust_dynamic_symbol,elf_m68k_finish_dynamic_symbol,
	 elf_m68k_finish_dynamic_sections): Use it.

2005-03-17  Paul Brook <paul@codesourcery.com>
	    Dan Jacobowitz <dan@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_modify_segment_map): New function.
	(elf32_arm_additional_program_headers): Likewise.
	(elf_backend_modify_segment_map): Define.
	(elf_backend_additional_program_headers): Likewise.
	(elf32_arm_symbian_modify_segment_map): Use
	elf32_arm_modify_segment_map.

2005-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_mark_used_section): Check bfd_is_const_section
	for special sections.

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

	* elf-bfd.h (_bfd_elf_link_renumber_dynsyms): Delete.
	* elflink.c (_bfd_elf_link_renumber_dynsyms): Make static, add
	section_sym_count param, and return number of section symbols.
	(bfd_elf_size_dynamic_sections): Clear section symbol area of
	.dynsym contents.  Don't bother calling swap_symbol_out on the
	first all-zero dynsym.
	(elf_mark_used_section): Formatting.  Avoid twiddling flags in
	special sections like bfd_abs_section.
	(bfd_elf_gc_sections): Spelling fix.

2005-03-16  Fred Fish  <fnf@specifixinc.com>

	PR binutils/790
	* dwarf2.c (read_indirect_string): Fix apparent typo, check
	dwarf_str_buffer allocation, not dwarf_abbrev_buffer.

2005-03-16  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_mark_used_section): New.
	(bfd_elf_gc_sections): Call elf_gc_mark_section for
	non-relocatable link if we don't do GC.

2005-03-16  Nick Clifton  <nickc@redhat.com>
	    Ben Elliston  <bje@au.ibm.com>

	* configure.in (werror): New switch: Add -Werror to the
	compiler command line.  Enabled by default.  Disable via
	--disable-werror.
	* configure: Regenerate.

2005-03-16  Nick Clifton  <nickc@redhat.com>

	* ecoff.c: Convert to ISO C90 formatting.

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

	* elf32-ppc.c: Divide file into general and linker specific
	functions.  Sort linker functions into roughly the order in which
	they are called by the ELF linker code.

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

	* elf32-ppc.c (ppc_elf_create_linker_section): Set SEC_LINKER_CREATED
	on section.  Correct comment, and add FIXME.
	(ppc_elf_additional_program_headers): Don't bump header count for
	interp.  Test SEC_ALLOC, not SEC_LOAD, and don't test size.
	(ppc_elf_size_dynamic_sections): Don't strip sdata and sdata2, but
	do allocate memory if they need it.

2005-03-15  Mikkel Krautz  <krautz@gmail.com>

	* config.bfd (x86_64-elf): Add target.

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

	* po/es.po: Commit new Spanish translation.

2005-03-14  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Set symbo name
	for global symbol when reporting overflow.

2005-03-11  Jakub Jelinek  <jakub@redhat.com>

	* libbfd-in.h (_bfd_ar_spacepad): New prototype.
	* libbfd.h: Rebuilt.
	* archive.c (_bfd_ar_spacepad): New function.
	(_bfd_construct_extended_name_table, _bfd_write_archive_contents,
	bsd_write_armap, _bfd_archive_bsd_update_armap_timestamp,
	coff_write_armap): Use it.
	(bfd_ar_hdr_from_filesystem): Likewise.  Fix HP-UX large
	uid/gid support.
	* archive64.c (bfd_elf64_archive_write_armap): Use _bfd_ar_spacepad.

2005-03-10  Mark Kettenis  <kettenis@gnu.org>

	* archive.c (_bfd_look_for_bfd_in_cache): Move declaration of
	has_table to the start of the function.

2005-03-10  Ben Elliston  <bje@au.ibm.com>

	* archive.c: Include hashtab.h.
	(struct ar_cache): Rename `arelt' to `arbfd' and remove `next'.
	(_bfd_look_for_bfd_in_cache): Reimplement using htab_find.
	(hash_file_ptr): New function.
	(eq_file_ptr): Likewise.
	(_bfd_add_bfd_to_archive_cache): Reimplement using a hash table.
	* libbfd-in.h: Include hashtab.h.
	(struct artdata): Change `cache' member type to htab_t.
	* libbfd.h: Rebuild.

2005-03-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.in: Bump version to 2.16.90.
	* configure: Regenerated.

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

	* opncls.c (opncls_bread, opncls_bclose): Fix if pread resp.
	close is a function like macro in system headers.

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

	PR ld/778
	* elf32-hppa.c (elf32_hppa_create_dynamic_sections): Reinstate
	_GLOBAL_OFFSET_TABLE_ as a normal dynamic symbol.

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

	* elf.c (elfcore_grok_win32pstatus): Warning fixes.

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

	* po/bfd.pot: Regenerate.

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

	* elf64-ppc.c (update_plt_info): Don't mark new ABI call syms
	with is_func.
	(func_desc_adjust): Force dot-syms local in executables as well
	as shared libs.

2005-03-04  David Daney  <ddaney@avtrex.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Handle special
	'__gnu_local_gp' symbol used by gas -mno-shared.

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

	* elf-bfd.h (elf_backend_data): Add "const char *" to
	elf_backend_section_from_phdr.

	* elf.c (bfd_section_from_phdr): Pass "proc" to the
	elf_backend_section_from_phdr hook.

2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* elfxx-mips.c (struct mips_got_entry): Add tls_type.
	(struct mips_got_info): Add tls_gotno, tls_assigned_gotno,
	and tls_ldm_offset.
	(struct mips_elf_got_per_bfd_arg): Add global_count.
	(struct mips_elf_count_tls_arg): New.
	(struct mips_elf_hash_sort_data): Update comment for min_got_dynindx.
	(struct mips_elf_link_hash_entry): Add tls_type and tls_got_offset.
	(GOT_NORMAL, GOT_TLS_GD, GOT_TLS_LDM, GOT_TLS_IE)
	(GOT_TLS_OFFSET_DONE, GOT_TLS_DONE): Define.
	(TLS_RELOC_P): Define.
	(TP_OFFSET, DTP_OFFSET): Define.
	(dtprel_base, tprel_base): New functions.
	(mips_elf_link_hash_newfunc): Initialize tls_type.
	(mips_elf_got_entry_hash, mips_elf_got_entry_eq)
	(mips_elf_multi_got_entry_hash, mips_elf_multi_got_entry_eq): Handle
	TLS entries.
	(mips_tls_got_relocs, mips_elf_count_local_tls_relocs)
	(mips_elf_count_global_tls_entries, mips_elf_count_global_tls_relocs)
	(mips_elf_output_dynamic_relocation, mips_elf_initialize_tls_slots)
	(mips_tls_got_index): New functions.
	(mips_elf_local_got_index): Add new R_SYMNDX, H, and R_TYPE
	arguments.  Pass them to mips_elf_create_local_got_entry.  Use
	mips_tls_got_index.
	(mips_elf_global_got_index): Add new R_TYPE and INFO arguments.
	Handle TLS entries.
	(mips_elf_got_page, mips_elf_got16_entry): Update calls to
	mips_elf_create_local_got_entry.
	(mips_elf_create_local_got_entry): Add new R_SYMNDX, H, and R_TYPE
	arguments.  Handle TLS entries.
	(mips_elf_sort_hash_table_f): Add non-TLS assertions.
	(mips_elf_record_local_got_symbol): Add new TLS_FLAG argument.  Handle
	TLS entries.
	(mips_elf_record_global_got_symbol): Likewise.
	(mips_elf_make_got_per_bfd): Initialize new mips_got_info members.
	Count TLS entries.
	(mips_elf_merge_gots): Handle TLS entries when merging.
	(mips_elf_initialize_tls_index): New function.
	(mips_elf_set_global_got_offset): Handle TLS entries.
	(mips_elf_adjust_gp): Handle TLS.
	(mips_elf_multi_got): Remove redundant call to
	mips_elf_resolve_final_got_entries.  Initialize global_count.
	Correct a comment.  Initialize new TLS members of mips_got_info.
	Assign TLS GOT indexes for new GOTs.
	(mips_elf_create_got_section): Initialize new TLS members of
	mips_got_info.
	(mips_elf_calculate_relocation): Handle TLS relocs.
	(_bfd_mips_elf_check_relocs): Likewise.  Update calls to changed
	functions.
	(_bfd_mips_elf_always_size_sections): Handle TLS.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.  Update calls to
	changed functions.
	(_bfd_mips_elf_copy_indirect_symbol): Copy tls_type.
	(_bfd_mips_elf_hide_symbol): Handle TLS.
	* elfn32-mips.c (elf_mips_howto_table_rel, elf_mips_howto_table_rela)
	(mips_reloc_map): Add TLS relocs.
	* elf32-mips.c (elf_mips_howto_table_rel, mips_reloc_map): Likewise.
	* elf64-mips.c (mips_elf64_howto_table_rel)
	(mips_elf64_howto_table_rela, mips_reloc_map): Likewise.
	* reloc.c: Define new MIPS TLS relocations.
	* libbfd.h, bfd-in2.h: Regenerated.

2005-03-02  Jan Beulich  <jbeulich@novell.com>

	* Makefile.am: Add dependency of cache.o on libiberty.h.
	* cache.c: Include libiberty.h.
	(bfd_open_file): Use unlink_if_ordinary instead of unlink.

2005-03-01  Zack Weinberg  <zack@codesourcery.com>

	* elf.c (bfd_section_from_shdr <default case>): Call
	elf_backend_section_from_shdr hook unconditionally, and return
	what it returns.
	(bfd_section_from_phdr): Similarly, for elf_backend_section_from_phdr.
	* elfxx-target.h (elf_backend_section_from_shdr)
	(elf_backend_section_from_phdr): Default to
	_bfd_elf_make_section_from_shdr and _bfd_elf_make_section_from_phdr
	respectively.

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

	* targets.h: Typo fix.
	* bfd-in2.h: Regenerate.

	* bout.c (b_out_write_object_contents): Don't use sizeof on host
	structs to size on-disk structures.
	(b_out_set_section_contents): Size the external struct, not the
	internal one for on-disk size.
	(b_out_sizeof_headers): Likewise.

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

	* elf64-ppc.c (ppc64_elf_size_stubs): Override defined dot-sym
	entry points with the func descriptor as well as undefweak.

2005-02-28  Ross Ridge  <rridge@csclub.uwaterloo.ca>

	* peicode.h (pe_ILF_build_a_bfd): Do not assume that an @ will be
	present when IMPORT_NAME_UNDOECRATE is used.

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

	PR 757
	* elf-bfd.h (_bfd_elf_merge_symbol): Add a pointer to unsigned
	int.

	* elf32-sh-symbian.c (sh_symbian_relocate_section): Pass NULL
	to _bfd_elf_merge_symbol.

	* elflink.c (_bfd_elf_merge_symbol): Use the pointer to
	unsigned int to return the alignment of the old common symbol
	in the dynamic object.
	(_bfd_elf_add_default_symbol): Pass NULL to
	_bfd_elf_merge_symbol.
	(elf_link_add_object_symbols): Pass &old_alignment to
	_bfd_elf_merge_symbol. Get the alignment of the new common
	symbol in the dynamic object.

2005-02-24  Ben Elliston  <bje@au.ibm.com>

	* coffcode.h (coff_sym_filepos): Remove GNU960 conditional code.
	* format.c (bfd_check_format_matches): Likewise.
	* archive.c (BFD_GNU960_ARMAG): Likewise.
	(bfd_generic_archive_p): Likewise.
	(_bfd_write_archive_contents): Likewise.

2005-02-24  H.J. Lu  <hongjiu.lu@intel.com>

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

2005-02-24  Julian Brown  <julian@sirius.codesourcery.com>

	* elflink.c (elf_link_add_object_symbols): Force symbols in discarded
	COMDAT group sections to have default visibility.

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

	* coffcode.h (coff_print_aux): Warning fix.
	* elf-m10300.c (mn10300_elf_relax_section): Use section->id
	instead of section pointer to identify.
	* coff-h8300.c (h8300_reloc16_extra_cases): Likewise.  Allocate
	the correct size buffer for local sym mangling too.
	(h8300_bfd_link_add_symbols): Likewise.
	* elf32-sh-symbian.c (sh_symbian_process_embedded_commands): Fix
	warning.
	* elf32-sh64.c (shmedia_prepare_reloc): Use %B and %p in error message
	* elf32-xtensa.c (literal_value_hash): Warning fix.
	* versados.c (process_otr): Warning fix.
	(versados_canonicalize_reloc): Likewise.
	* vms-gsd.c (_bfd_vms_slurp_gsd): Warning fix.
	* vms.c (fill_section_ptr): Warning fix.

2005-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* coff-tic54x.c (SWAP_OUT_RELOC_EXTRA): Defined.
	* coff-tic80.c (SWAP_OUT_RELOC_EXTRA): Likewise.

2005-02-23  Nick Clifton  <nickc@redhat.com>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Initialise
	the relvaddr field of the Elf32_crinfo structure.

	* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Initialise
	variables that are passed by reference to
	m68hc11_get_relocation_value in case that function does not
	initialise them.

	* elf32-cr16c.c (cr16c_elf_final_link_relocate): Remove duplicated
	return statements and replace with a single return at the end of
	the function.  This helps pacify the flow analysis code in gcc 4.0.

	* elf.c (_bfd_elf_compute_section_file_positions): Initialise
	strtab to avoid compile time warning.

2005-02-23  Ben Elliston  <bje@au.ibm.com>

	* opncls.c (bfd_zalloc): Document this function.

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

	* coffcode.h (sec_to_styp_flags): Replaced SEC_CLINK with
	SEC_TIC54X_CLINK. Replace SEC_BLOCK with SEC_TIC54X_BLOCK.
	Replace SEC_SHARED with SEC_COFF_SHARED.
	(styp_to_sec_flags): Likewise.

	* elfxx-target.h (TARGET_BIG_SYM): Remove SEC_ARCH_BIT_0.
	(TARGET_LITTLE_SYM): Likewise.

	* section.c (SEC_ARCH_BIT_0): Removed.
	(SEC_LINK_DUPLICATES_SAME_CONTENTS): Defined with
	SEC_LINK_DUPLICATES_ONE_ONLY and SEC_LINK_DUPLICATES_SAME_SIZE.
	(SEC_SHARED): Renamed to ...
	(SEC_COFF_SHARED): This.
	(SEC_BLOCK): Renamed to ...
	(SEC_TIC54X_BLOCK): This.
	(SEC_CLINK): Renamed to ...
	(SEC_TIC54X_CLINK): This.
	(SEC_XXX): Rearranged. Move SEC_COFF_SHARED_LIBRARY,
	SEC_COFF_SHARED, SEC_TIC54X_BLOCK and SEC_TIC54X_CLINK to the
	end.
	* bfd-in2.h: Regenerated.

2005-02-21  Fred Fish  <fnf@specifixinc.com>

	* dwarf2.c (find_abstract_instance_name): Call recursively
	to handle a DW_AT_specification.

2005-02-21  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (ecoff_swap_rpdr_out, mips_elf_output_extsym,
	mips_elf_create_dynamic_relocation,
	_bfd_mips_elf_size_dynamic_sections, _bfd_mips_elf_final_link):
	Remove #if 0'd code.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

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

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* coffgen.c (bfd_coff_get_comdat_section): Check that
	coff_section_data isn't NULL.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (bfd_elf_bfd_from_remote_memory): Warning fix.
	* coff-m68k.c (bfd_m68k_coff_create_embedded_relocs): Likewise.
	* coff-rs6000.c (xcoff_write_armap_big): Warning fixes.  Remove
	useless assignments.
	(xcoff_write_archive_contents_big): Likewise.
	(_bfd_xcoff_put_ldsymbol_name): Likewise.
	* coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise.
	* coffgen.c (coff_write_symbols): Make "written" a bfd_vma.
	* cofflink.c (process_embedded_commands): Warning fixes.
	* cpu-arm.c: Delete unnecessary prototypes.  Convert to C90.
	Warning fixes.
	* dwarf2.c: Warning fixes.
	* elf-bfd.h: Likewise.
	* elf-eh-frame.c: Likewise.
	* elf-strtab.c: Likewise.
	* elf.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-sh-symbian.c: Likewise.
	* elf32-sh.c: Delete unnecessary prototypes.  Warning fixes.
	* elf64-sh64.c: Likewise.
	* peicode.h: Likewise.
	* elf64-mmix.c: Warning fixes.
	* elfcode.h: Likewise.
	* elfxx-mips.c: Likewise.
	* libbfd-in.h: Likewise.
	* libbfd.c: Likewise.
	* mach-o.c: Likewise.
	* merge.c: Likewise.
	* mmo.c: Likewise.
	* opncls.c: Likewise.
	* pef.c: Likewise.
	* srec.c: Likewise.
	* vms-hdr.c: Likewise.
	* vms-tir.c: Likewise.
	* xtensa-isa.c: Likewise.
	* xtensa-modules.c: Likewise.
	* xsym.c: Likewise.
	(pstrcmp): Use correct choice of string lengths.  Fix return value.
	(bfd_sym_module_name): Correct string length.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2005-02-17  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (elf32_frv_relocate_section): Remove warning from
	uninitialized check_segment[1] in TLSMOFF case.
	Reported by Alan Modra.
	(elf32_frv_relocate_section): Improve errors and warnings.

2005-02-17  Alan Modra  <amodra@bigpond.net.au>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Fix warning.

2005-02-16  Alan Modra  <amodra@bigpond.net.au>

	* coff-arm.c (coff_arm_is_local_label_name): Warning fix.
	* elf32-frv.c (frvfdpic_relocs_info_hash): Likewise.
	* pef.c (bfd_pef_scan): Don't ignore return value of
	bfd_pef_scan_start_address.
	* mach-o.c (bfd_mach_o_scan): Don't ignore return value of
	bfd_mach_o_scan_start_address.
	* elfxx-ia64.c (elfNN_ia64_relax_brl): Rewrite for 32-bit bfd_vma.
	* elfxx-mips.c: Remove unnecessary prototypes.
	(sort_dynamic_relocs_64): Abort if not BFD64.

2005-02-16  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_edit_toc): Skip toc if size is zero.
	Skip toc reloc adjust if reloc_count is zero.

2005-02-15  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* elf32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
	reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
	R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
	(elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
	(elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
	dst_mask.
	(mips16_gprel_reloc): Remove bit shuffling; call
	_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
	and _bfd_mips16_elf_reloc_shuffle() instead.
	(mips16_reloc_map): New reloc map for MIPS16 relocs.
	(bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
	relocs.
	(mips_elf32_rtype_to_howto): Fetch MIPS16 howtos from
	elf_mips16_howto_table_rel.
	* elf64-mips.c (mips16_elf64_howto_table_rel): New array for
	MIPS16 REL reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16
	relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
	(elf_mips16_jump_howto): Move into mips16_elf64_howto_table_rel.
	(elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
	dst_mask.
	(mips16_elf64_howto_table_rela): New array for MIPS16 RELA
	reloc howtos.  Add R_MIPS16_26, R_MIPS16_GPREL, R_MIPS16_HI16 and
	R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16
	placeholders.
	(mips16_gprel_reloc): Remove bit shuffling; call
	_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
	and _bfd_mips16_elf_reloc_shuffle() instead.
	(mips16_reloc_map): New reloc map for MIPS16 relocs.
	(bfd_elf64_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
	relocs.
	(mips_elf64_rtype_to_howto): Fetch MIPS16 howtos from
	mips16_elf64_howto_table_rela or mips16_elf64_howto_table_rel.
	* elfn32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
	REL reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
	R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
	(elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
	(elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
	dst_mask.
	(mips16_gprel_reloc): Remove bit shuffling; call
	_bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
	and _bfd_mips16_elf_reloc_shuffle() instead.
	(mips16_reloc_map): New reloc map for MIPS16 relocs.
	(bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
	relocs.
	(mips_elf_n32_rtype_to_howto): Fetch MIPS16 howtos from
	elf_mips16_howto_table_rela or elf_mips16_howto_table_rel.
	* elfxx-mips.c (_bfd_mips16_elf_reloc_unshuffle): New function to
	handle bit shuffling for MIPS16 relocs.
	(_bfd_mips16_elf_reloc_shuffle): Likewise.
	(_bfd_mips_elf_lo16_reloc): Use _bfd_mips16_elf_reloc_unshuffle()
	and _bfd_mips16_elf_reloc_shuffle().
	(_bfd_mips_elf_generic_reloc): Likewise.
	(mips_elf_calculate_relocation): Likewise.  Handle R_MIPS16_HI16
	and R_MIPS16_LO16.
	(mips_elf_obtain_contents): Remove bit shuffling.
	(mips_elf_perform_relocation): Likewise; call
	_bfd_mips16_elf_reloc_unshuffle() and _bfd_mips16_elf_reloc_shuffle()
	instead.
	(_bfd_mips_elf_relocate_section): Likewise.  Handle R_MIPS16_HI16
	and R_MIPS16_LO16.
	* elfxx-mips.h (_bfd_mips16_elf_reloc_unshuffle): Declare.
	(_bfd_mips16_elf_reloc_shuffle): Likewise.
	* reloc.c (BFD_RELOC_MIPS16_HI16): New reloc.
	(BFD_RELOC_MIPS16_HI16_S): Likewise.
	(BFD_RELOC_MIPS16_LO16): Likewise.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2005-02-15  Jan Beulich  <jbeulich@novell.com>

	* elfxx-ia64.c (ia64_howto_table): Correct strings for
	R_IA64_DTPMOD64[LM]SB.

2005-02-14  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Allow relax
	backward branch in the same section.
	(elfNN_ia64_relocate_section): Inform users that the input
	section is too big to relax br instruction when overflow
	happens to R_IA64_PCREL21B, R_IA64_PCREL21BI, R_IA64_PCREL21M
	and R_IA64_PCREL21F.

2005-02-14 Orjan Friberg <orjanf@axis.com>

	* elfcore.h (elf_core_file_p): Move the call to
	elf_backend_object_p to allow the correct machine to be set before
	processing the program headers.

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

	PR binutils/716
	* peicode.h (pe_bfd_copy_private_bfd_data): Copy the large address
	aware flag from the input bfd to the output bfd.

2005-02-11  Maciej W. Rozycki  <macro@mips.com>

	* elf32-mips.c (_bfd_mips_elf32_gprel16_reloc): Reject
	R_MIPS_LITERAL relocations for external symbols.
	* elf64-mips.c (mips_elf64_literal_reloc): Likewise.
	* elfn32-mips.c (mips_elf_literal_reloc): Likewise.

2005-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in2.h: Rebuilt.

2005-02-11  Paul Brook  <paul@codesourcery.com>

	* elf-bfd.h (struct elf_link_hash_table): Add
	is_relocatable_executable.
	* elf.c (_bfd_elf_link_hash_table_init): Initialize it.
	* elflink.c (bfd_elf_link_record_dynamic_symbol): Create local dynamic
	symbols in relocatable executables.
	(bfd_elf_record_link_assignment): Create dynamic section symbols in
	relocatable executables.
	(_bfd_elf_link_renumber_dynsyms): Ditto.
	(bfd_elf_final_link): Ditto.
	* elf32-arm.c (elf32_arm_final_link_relocate): Copy absolute
	relocations into relocatable executables.
	(elf32_arm_check_relocs): Crate dynamic sections for relocatable
	executables.  Also copy absolute relocations.
	(elf32_arm_adjust_dynamic_symbol): Don't create copy relocations
	in relocatable executables.
	(allocate_dynrelocs): Copy relocations for relocatable executables.
	Output dynamic symbols for symbols defined in linker scripts.

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

	* libbfd.c (read_signed_leb128): Use an unsigned type for 'shift'
	to avoid a compile time warning.

	* coff-alpha.c (alpha_adjust_reloc_in): Remove redundant test from
	BFD_ASSERT.

	* coff-tic4x.c (coff_rtype_to_howto): Move definition before
	inclusion of coffcode.h so that it is actually picked up.

	* coffcode.h (coff_std_swap_table): Add an unused attribute in
	case it is not used.

	* elf32-ip2k.c (ip2k_call_opcode, IS_CALL_OPCODE): Remove unused
	structure and macro.

	* elf32-iq2000.c (iq2000_reloc_map): Remove unused structure and
	array.

	* elf32-m32r.c (m32r_reloc_map_old): Use #ifdef	USE_M32R_OLD_RELOC
	to protect the declaration of this array.

	* xsym.c (bfd_sym_parse_contained_variables_table_entry_v32):
	Avoid call to memcpy with a size of 0.

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

	* elf64-ppc.c (toc_adjusting_stub_needed): Return true for
	old-style branches to undefined dot-symbols which will be
	satisfied by a plt call.

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

	* elf64-ppc.c (move_plt_plist): New function, extracted from..
	(ppc64_elf_copy_indirect_symbol): ..here.
	(func_desc_adjust): Use move_plt_plist.

2005-02-10  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Handle R_ARM_THM_PC9.

2005-02-10  Paul Brook  <paul@codesourcery.com>

	* elflink.c (bfd_elf_record_link_assignment): Make hidden and internal
	symbols local.
	(elf_link_renumber_hash_table_dynsyms): Ignore local symbols.
	(elf_link_renumber_local_hash_table_dynsyms): New function.
	(_bfd_elf_link_renumber_dynsyms): Number local dynamic symbols.

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

	* bfd-in.h (BFD_LINKER_CREATED): Define.
	* bfd-in2.h: Rebuilt.
	* elflink.c (bfd_elf_size_dynamic_sections): Disregard
	BFD_LINKER_CREATED bfds when determining input bfds without
	.note.GNU-stack section.

2005-02-10  Maciej W. Rozycki  <macro@mips.com>

	* elf64-mips.c (mips16_gprel_reloc): Update a comment.
	* elfn32-mips.c (mips16_gprel_reloc): Keep R_MIPS16_GPREL
	relocations against external symbols unchanged.

2005-02-08  Paul Brook  <paul@codesourcery.com>

	* elflink.c (elf_link_input_bfd): Ignore symbols from null input
	sections.

2005-02-08  Hans-Peter Nilsson  <hp@axis.com>

	* elflink.c (elf_link_add_object_symbols): Don't add "warning: "
	prefix here.

2005-02-07  Maciej W. Rozycki  <macro@mips.com>

	* elf64-mips.c: Fix formatting throughout.

2005-02-07  Maciej W. Rozycki  <macro@mips.com>

	* elfn32-mips.c (elf_mips_howto_table_rela): Fix a comment typo.

2005-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-frv.c (FRVFDPIC_SYM_LOCAL): Remove special handling for
	*ABS*/*UND* sections.
	(elf32_frv_relocate_section): Move zero-addend-required error...
	(_frv_emit_got_relocs_plt_entries): ... here.  Report error for
	missing needed TLS section.

2005-02-07  Hans-Peter Nilsson  <hp@axis.com>

	* aoutx.h (NAME(aout,find_nearest_line)): Correct case for N_SO
	being the last symbol.
	(aout_link_add_symbols): Just return TRUE if a warning
	symbol was last.

2005-02-07  Maciej W. Rozycki  <macro@mips.com>

	* elf32-mips.c (mips_elf_gprel32_reloc): Reject
	R_MIPS_GPREL32 relocations against external symbols.
	* elf64-mips.c (mips_elf64_gprel32_reloc): Replace an incorrect
	comment.

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

	* elf-bfd.h (elf_string_from_elf_strtab): Delete macro.
	* elf.c (bfd_elf_string_from_elf_section): Expand occurrence of
	elf_string_from_elf_strtab.
	(_bfd_elf_setup_group_pointers, bfd_section_from_shdr): Likewise.
	(bfd_section_from_shdr): For SHT_SYMTAB, load SHT_SYMTAB_SHNDX too
	if it exists.  Don't do the reverse for SHT_SYMTAB_SHNDX.  For
	SHT_STRTAB, check whether the strtab is for symtab or dynsymtab by
	looking at cached symtab info first, before iterating over headers.
	For SHT_REL and SHT_RELA, load dynsymtab if needed.
	* elfcode.h (elf_object_p): Don't load section header stringtab
	specially.

2005-02-06  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Disallow R_386_GOTOFF
	against protected function when building shared library.

	PR 584
	* elf64-x86-64.c (is_32bit_relative_branch): New.
	(elf64_x86_64_relocate_section): Alllow R_X86_64_PC32 on a
	protected function symbol when building shared library for
	32bit relative branch instruction.

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

	* elf64-ppc.c (add_symbol_adjust): Don't create fake descriptor
	syms when doing a relocatable link.
	(ppc64_elf_gc_mark_hook): Check that syms are defined before looking
	at u.def.section.
	(ppc64_elf_tls_setup): Likewise.
	(ppc64_elf_edit_opd): Don't use an undefined func desc sym.

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

	* elf64-ppc.c (struct ppc_link_hash_entry): Add "fake".
	(link_hash_newfunc): Clear all locals using memset.
	(make_fdh): Remove flags param.  Always create fake func desc
	weak.  Link the descriptor with the code entry sym.
	(ppc64_elf_archive_symbol_lookup): Don't return fake syms.
	(add_symbol_adjust): Adjust make_fdh call.
	(func_desc_adjust): Likewise.  Twiddle any pre-existing fake
	descriptor to strong undefined if code entry is strong.

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

	* elflink.c (bfd_elf_record_link_assignment): Do "provide" symbol
	lookup here.  Set to new before calling bfd_link_repair_undef_list.
	(elf_smash_syms): Check that u.undef.weak isn't the not_needed bfd.

2005-02-03  Alan Modra  <amodra@bigpond.net.au>

	* linker.c (_bfd_link_hash_newfunc): Set all local fields.

2005-02-03  Alan Modra  <amodra@bigpond.net.au>

	* linker.c (_bfd_generic_link_add_one_symbol): Set u.undef.weak.
	* elflink.c (elf_smash_syms): Restore symbols that were undefweak
	before the as-needed lib was loaded.  Abort on unexpected refs.

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

	* elflink.c (elf_smash_syms): Expand comments.
	(elf_link_add_object_symbols): Only call elf_smash_syms for
	as-needed dynamic objects.

	* elfxx-ia64.c (elfNN_ia64_new_elf_hash_entry): Don't clear
	everything, just the field specific to ia64.
	* elf64-hppa.c (elf64_hppa_new_dyn_hash_entry): Likewise.

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

	* elf64-ppc.c (func_desc_adjust): Move code creating func desc sym to..
	(make_fdh): ..here.  New function.  Don't set BSF_OBJECT for
	undefined syms.
	(struct add_symbol_adjust_data): New.
	(add_symbol_adjust): Make an undefweak func desc for old ABI
	objects to link with --as-needed shared libs.  Return fail status.
	Don't adjust old ABI func entry sym to weak if func desc syms
	isn't defined.
	(ppc64_elf_check_directives): Adjust call to add_symbol_adjust,
	and return status.

2005-02-01  Hans-Peter Nilsson  <hp@axis.com>

	* cpu-cris.c (get_compatible): Rearrange disabled code and comment
	for clarity.

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

	* elf64-ppc.c (ppc64_elf_check_directives): Move undefs list fixup..
	* linker.c (bfd_link_repair_undef_list): ..to new function, but don't
	remove anything but new and undefweak.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Override any
	existing _DYNAMIC.
	(_bfd_elf_create_dynamic_sections): Formatting.
	(bfd_elf_record_link_assignment): Call bfd_link_repair_undef_list.
	(_bfd_elf_merge_symbol): Don't handle as-needed syms here.
	(struct elf_smash_data): New.
	(elf_smash_syms): New function.
	(elf_link_add_object_symbols): Call elf_smash_syms.  Don't add
	unneeded dynamic objects to loaded list.
	(elf_link_output_extsym): Don't handle as-needed here.  Strip
	bfd_link_hash_new symbols.
	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
	delref when dynindx is already -1.
	* elf64-alpha.c (elf64_alpha_output_extsym): Strip bfd_link_hash_new
	symbols.
	* elfxx-mips.c (mips_elf_output_extsym): Likewise.

2005-02-01  Ben Elliston  <bje@au.ibm.com>

	* elfxx-target.h (bfd_elfNN_bfd_discard_group): Redefine.

2005-02-01  Ben Elliston  <bje@au.ibm.com>

	* aout-arm.c, aout-target.h, aoutx.h, archive.c, armnetbsd.c,
	bfd-in.h, bfdio.c, coff-alpha.c, coff-arm.c, coff-h8300.c,
	coff-i860.c, coff-mcore.c, coff-or32.c, coff-ppc.c, coff-sh.c,
	coff-sparc.c, coffcode.h, coffgen.c, cofflink.c, cpu-cris.c,
	cpu-h8500.c, cpu-ns32k.c, ecoff.c, ecofflink.c, elf.c,
	elf32-dlx.c, elf32-fr30.c, elf32-frv.c, elf32-hppa.c,
	elf32-i860.c, elf32-ip2k.c, elf32-m32r.c, elf32-sh.c,
	elf32-v850.c, elf64-mips.c, elf64-sparc.c, elflink.c,
	i386aout.c, i386msdos.c, i386os9k.c, ieee.c, mach-o.c,
	nlm32-sparc.c, oasys.c, opncls.c, pdp11.c, pe-mips.c, peXXigen.c,
	pef.c, peicode.h, reloc.c, riscix.c, section.c, simple.c, som.c,
	sparclynx.c, targets.c, vms-misc.c, vms-tir.c, xsym.c,
	hosts/delta68.h, hosts/vaxbsd.h: Remove #if 0'd code
	throughout. Similarly, collapse #if 1'd code.

2005-02-01  Ben Elliston  <bje@au.ibm.com>

	* elf-bfd.h (bfd_elf_discard_group): Remove.
	* elf.c (bfd_elf_discard_group): Likewise.
	* elfxx-target.h (bfd_elfNN_bfd_discard_group): Remove macro.

2005-01-31  Richard Sandiford  <rsandifo@redhat.com>

	* elf-bfd.h (elf_backend_data): Add elf_backend_eh_frame_address_size.
	(_bfd_elf_eh_frame_address_size): Declare.
	* elfxx-target.h (elf_backend_eh_frame_address_size): Define a default.
	(elfNN_bed): Initialize elf_backend_eh_frame_address_size.
	* elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Declare.
	(elf_backend_eh_frame_address_size): Define.
	* elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): New function.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Get the address
	size from the new backend hook.
	(_bfd_elf_write_section_eh_frame): Likewise.
	(_bfd_elf_eh_frame_address_size): New function.

2005-01-31  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate to track ../gettext.m4.

2005-01-31  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf32_arm_symbian_special_sections): Do not set
	SHF_WRITE for .init_array, .fini_array, and .preinit_array.

2005-01-31  Nick Clifton  <nickc@redhat.com>

	* confg.bfd: Make targets scheduled for obsoletion (m68k-lynxos,
	sparc-lynxos, vax-vms) be obsolete.

2005-01-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf-bfd.h (struct elf_backend_data): Add minpagesize.
	* elf32-arm.c (ELF_MINPAGESIZE): Define.
	* elf32-ppc.c (ELF_MINPAGESIZE): Define.
	* elfcode.h (elf_object_p): Use minpagesize instead of
	maxpagesize.
	* elfxx-target.h (ELF_MINPAGESIZE): Default to ELF_MAXPAGESIZE.
	(elfNN_bed): Include ELF_MINPAGESIZE.

2005-01-28  Julian Brown  <julian@codesourcery.com>

	* bin-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
	* bin-in2.h (bfd_elf32_arm_set_target_relocs): Update prototype.
	* elf32-arm.c (elf32_arm_link_hash_table): Add fix_v4bx flag.
	(bfd_elf32_arm_set_target_relocs): Add formal parameter fix_v4bx for
	passing flag value from ld. Set flag value in global hash table entry.
	(elf32_arm_final_link_relocate): Add code to implement R_ARM_V4BX
	relocation.

2005-01-27  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate to track ../gettext.m4 change.

2005-01-25  Mark Mitchell  <mark@codesourcery.com>

	* elf32-arm.c (elf_backend_default_use_rela_p): Define to zero for
	SymbianOS.

2005-01-25  Alexandre Oliva  <aoliva@redhat.com>

	2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (elf32_frv_relocate_section): Force local binding
	for TLSMOFF.
	* reloc.c: Add R_FRV_TLSMOFF.
	* elf32-frv.c (elf32_frv_howto_table): Likewise.
	(frv_reloc_map, frv_reloc_type_lookup): Map it.
	(elf32_frv_relocate_section): Handle it.
	(elf32_frv_check_relocs): Likewise.
	* libbfd.h, bfd-in2.h: Rebuilt.
	2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash
	when given an undefweak TLS symbol.  Fix constant TLS PLT entries
	such that they return the constant in gr9.
	(_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS
	symbols.
	(_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections.
	too, such that they shrink on relaxation.
	(elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as
	marking the position right past the _GLOBAL_OFFSET_TABLE_ value.
	(_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries
	if we can guarantee the use of 16-bit constants.
	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
	Introduce TLS support for FR-V FDPIC.
	* reloc.c: Add TLS relocations.
	* elf32-frv.c (elf32_frv_howto_table): Add TLS relocations.
	(elf32_frv_rel_tlsdesc_value_howto): New.
	(elf32_frv_rel_tlsoff_howto): New.
	(frv_reloc_map): Add new mappings.
	(struct frvfdpic_elf_link_hash_table): Add pointer to summary
	reloc information.
	(frvfdpic_dynamic_got_plt_info): New.
	(frvfdpic_plt_tls_ret_offset): New.
	(ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier.
	(struct _frvfdpic_dynamic_got_info): Likewise.  Add TLS members.
	(struct _frvfdpic_dynamic_got_plt_info): Likewise.
	(FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute
	section as local.
	(struct frvfdpic_relocs_info): Add TLS fields.
	(frvfdpic_relocs_info_hash): Warning clean up.
	(frvfdpic_relocs_info_find): Initialize tlsplt_entry.
	(frvfdpic_pic_merge_early_relocs_info): Merge TLS fields.
	(FRVFDPIC_TLS_BIAS): Define.
	(tls_biased_base): New.
	(_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS
	relocations.
	(frv_reloc_type_lookup): Likewise.
	(frvfdpic_info_to_howto_rel): Likewise.
	(elf32_frv_relocate_section): Likewise.
	(_frv_create_got_section): Create the PLT section here.
	(elf32_frvfdpic_create_dynamic_sections): Not here.
	(_frvfdpic_count_nontls_entries): Move out of...
	(_frvfdpic_count_got_plt_entries): ... here.
	(_frvfdpic_count_tls_entries): Likewise.  Add TLS support.
	(_frvfdpic_count_relocs_fixups): Likewise.  Add relaxation
	support.
	(_frvfdpic_relax_tls_entries): New.
	(_frvfdpic_compute_got_alloc_data): Add TLS support.
	(_frvfdpic_get_tlsdesc_entry): New.
	(_frvfdpic_assign_got_entries): Add TLS support.
	(_frvfdpic_assign_plt_entries): Likewise.
	(_frvfdpic_reset_got_plt_entries): New.
	(_frvfdpic_size_got_plt): Move out of...
	(elf32_frvfdpic_size_dynamic_sections): ... here.
	(_frvfdpic_relax_got_plt_entries): New.
	(elf32_frvfdpic_relax_section): New.
	(elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check.
	(elf32_frv_check_relocs): Add TLS support.
	(bfd_elf32_bfd_relax_section): Define for FDPIC.
	* libbfd.h, bfd-in2.h: Rebuilt.

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

	* elf.c (_bfd_elf_get_dynamic_reloc_upper_bound): Only include
	loadable reloc sections.
	(_bfd_elf_canonicalize_dynamic_reloc): Likewise.
	(_bfd_elf_get_synthetic_symtab): Return 0 if no dynamic syms.

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

	* elflink.c (elf_link_add_object_symbols): Don't create link dynamic
	sections immediately when linking shared libs.  Instead, wait until
	we know a lib is needed.
	(_bfd_elf_link_create_dynstrtab): Extract from..
	(_bfd_elf_link_create_dynamic_sections_): ..here.
	(elf_add_dt_needed_tag): Call _bfd_elf_link_create_dynstrtab and
	_bfd_elf_link_create_dynamic_sections.  Add abfd param.  Allow
	for non-existent .dynamic.
	(elf_link_output_extsym): Don't complain about undefined symbols
	in as-needed dynamic libs that aren't actually linked.

2005-01-24  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate, ../gettext.m4 was updated.

2005-01-21  Ben Elliston  <bje@au.ibm.com>

	* aout-encap.c: Remove unused file.

2005-01-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR 679
	* elflink.c (_bfd_elf_dynamic_symbol_p): Only protected
	non-function symbols are local.
	(_bfd_elf_symbol_refs_local_p): Likewise.

2005-01-18  Alan Modra  <amodra@bigpond.net.au>

	* bfd.c (bfd_link_just_syms): Add abfd param.
	* bfd-in2.h: Regenerate.

2005-01-17  Richard Sandiford  <rsandifo@redhat.com>

	* elf-eh-frame.c (skip_cfa_op, skip_non_nops): New functions.
	(_bfd_elf_discard_section_eh_frame): Use them to interpret the CFA
	instructions.  If the amount of padding is known, reduce the size
	of the CIE or FDE by that amount.

2005-01-17  Richard Sandiford  <rsandifo@redhat.com>

	* elf-bfd.h (struct cie): Use bfd_vmas for code_align, ra_column and
	augmentation_size.  Use bfd_signed_vmas for data_align.
	* elf-eh-frame.c (read_uleb128, read_sleb128): Delete in favor of...
	(read_byte, skip_leb128, read_uleb128, read_sleb128): ...these new
	functions.  Don't read past the end of the enclosing CIE or FDE.
	(skip_bytes): New utility function.
	(_bfd_elf_discard_section_eh_frame): Use new functions, adding more
	sanity checking.
	(_bfd_elf_write_section_eh_frame): Use new functions.

2005-01-17  Richard Sandiford  <rsandifo@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use an
	assert-style REQUIRE() macro to handle sanity checks.

2005-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2.c (dwarf2_debug): Move info_ptr_unit to ...
	(comp_unit): Here.
	(read_unsigned_leb128): Removed.
	(read_signed_leb128): Removed.
	(find_abstract_instance_name): Updated.
	(parse_comp_unit): Accept info_ptr_unit.
	(_bfd_dwarf2_find_nearest_line): Set info_ptr_unit for each
	comp unit and pass it to parse_comp_unit.

	* elf-eh-frame.c (read_unsigned_leb128): Moved to ...
	(read_signed_leb128): Moved to ...
	* libbfd.c: Here.

	* libbfd-in.h (read_unsigned_leb128): New prototype.
	(read_signed_leb128): Likewise.
	* libbfd.h: Regenerated.

2005-01-17  Andrew Stubbs  <andrew.stubbs@st.com>
	    Nick Clifton   <nickc@redhat.com>

	* cpu-sh.c (bfd_to_arch_table): Change arch_sh1_up to arch_sh_up,
	arch__sh4_nofp_up to arch_sh4_nofpu_up and arch_sh4a_nofp_up to
	arch_sh4a_nofpu_up in order to match the external names and make the
	testsuite's job easier.
	* archuires.c: Rename bfd_mach_sh2a_fake? to more meaningful
	names.
	* bfd-in2.h: Regenerate.

2005-01-15  Andrew Cagney  <cagney@gnu.org>

	* bfd.m4: New file.
	* acinclude.m4: Move BFD_NEED_DECLARATION,
	BFD_HAVE_SYS_PROCFS_TYPE and BFD_HAVE_SYS_PROCFS_TYPE_MEMBER to
	the new file bfd.m4.  Include ../bfd/bfd.m4.
	* configure: Re-generate.

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

	* elf32-ppc.c (ppc_elf_howto_raw): Delete RELAX32* entries.
	(ppc_elf_relax_section): Use PLT variants of RELAX32 relocs for
	reaching PLT.
	(ppc_elf_relocate_section): Handle R_PPC_RELAX32_PLT and
	R_PPC_RELAX32PC_PLT.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Follow indirect and warning
	symbols.
	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-sparc.c (elf32_sparc_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_create_dynamic_sections): Correct
	.dynsbss flags.

2005-01-10  Inderpreet Singh <inderpreetb@noida.hcltech.com>

	* archures.c: Define bfd_mach_maxq10 and bfd_mach_maxq20.
	* bfd-in2.h:  Regenerate.
	* coffcode.h (coff_set_arch_mach_hook, coff_set_flags): Add code
	to support these new machine values.
	* cpu-maxq.c (bfd_maxq10_arch): New architecture definition for
	the maxq10.
	(bfd_maxq_arch): Update values for the maxq20.

2005-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): When linking a
	non-shared object, do not reserve space in .plt and .rela.plt for
	regular symbols neither defined nor referenced in shared objects.

2005-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* elf32-sparc.c (elf32_sparc_link_hash_table_create): Use bfd_zmalloc
	to zero the structure.
	(create_got_section): Use BFD_ASSERT instead of abort.
	* elf64-sparc.c (struct sparc64_elf_link_hash_table): New 'sgot' and
	'srelgot' fields.
	(create_got_section): New function.
	(sparc64_elf_create_dynamic_sections): Likewise.
	(sparc64_elf_check_relocs): Invoke create_got_section instead of
	_bfd_elf_create_got_section.  Use the sgot and srelgot shortcuts.
	(sparc64_elf_size_dynamic_sections): Use the srelgot shortcut.
	(sparc64_elf_relocate_section): Use the sgot and srelgot shortcuts.
	(sparc64_elf_finish_dynamic_symbol): Likewise.
	(sparc64_elf_finish_dynamic_sections): Use the sgot shortcut.
	(elf_backend_create_dynamic_sections): Define to
	sparc64_elf_create_dynamic_sections.

2005-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* elf32-sparc.c (elf32_sparc_omit_section_dynsym): New function.
	(elf_backend_omit_section_dynsym): Define to it.
	* elf64-sparc.c (sparc64_elf_omit_section_dynsym): New function.
	(elf_backend_omit_section_dynsym): Define to it.

2005-01-07  Jakub Jelinek  <jakub@redhat.com>

	* bfd/elf.c (INCLUDE_SECTION_IN_SEGMENT): Don't put empty sections into
	PT_DYNAMIC segment, unless .dynamic.

2005-01-06  Paul Brook  <paul@codesourcery.com>

	* config.bfd: Add entry for arm-*-vxworks and arm-*-windiss.
	* configure.in: Add bfd_elf32_{big,little}arm_vxworks_vec.
	* configure: Regenerate.
	* elf32-arm.c: Add VxWorks target bfd.
	(USE_REL): Remove.
	(elf32_arm_link_hash_table): Add use_rel.
	(elf32_arm_link_hash_table_create, elf32_arm_final_link_relocate,
	elf32_arm_relocate_section): Replace USE_REL with runtime check.
	Correct offset calculation for RELA case.
	(elf_backend_may_use_rel_p, elf_backend_may_use_rela_p,
	elf_backend_default_use_rela_p, elf_backend_rela_normal): Define.
	(elf32_arm_vxworks_link_hash_table_create): New function.
	* targets.c (bfd_elf32_bigarm_vxworks_vec): Add declaration.
	(bfd_elf32_littlearm_vxworks_vec): Ditto.
	(_bfd_target_vector): Add bfd_elf32_{big,little}arm_vxworks_vec.

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

	* elf64-ppc.c (struct ppc_link_hash_table): Add no_multi_toc and
	multi_toc_needed.
	(has_toc_reloc, makes_toc_func_call, call_check_in_progress): Define.
	(ppc64_elf_check_relocs): Update references to has_gp_reloc.
	(ppc64_elf_setup_section_lists): Add no_multi_toc parm, set htab bit.
	(ppc64_elf_next_toc_section): Heed no_multi_toc.
	(ppc64_elf_reinit_toc): Set multi_toc_needed.
	(toc_adjusting_stub_needed): Rewrite.
	(ppc64_elf_next_input_section): Use multi_toc_needed to shortcut
	toc tests.  Adjust for toc_adjusting_stub_needed changes.
	(ppc64_elf_size_stubs): Update references to has_gp_reloc.
	* elf64-ppc.h (ppc64_elf_setup_section_lists): Update prototype.
	* section.c: Expand comment on backend bits.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

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

	* elf64-ppc.c (ppc64_elf_size_stubs): When determining need for
	toc adjusting stub, do not test source section flags.

2005-01-05  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* elf64-sparc.c (sparc64_elf_relocate_section): Ignore overflows
	from STABS debugging sections again.

2005-01-05  Fred Fish  <fnf@specifixinc.com>

	* dwarf2.c (struct dwarf2_debug): Add info_ptr_unit member.
	(find_abstract_instance_name): New function.
	(scan_unit_for_functions): Handle DW_TAG_inlined_subroutine.
	(scan_unit_for_functions): Handle DW_AT_abstract_origin.
	(_bfd_dwarf2_find_nearest_line): Initialize info_ptr_unit.

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:
