2008-12-29  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* coff-z80.c (r_imm32): Fix copy-paste bug that caused z80-objdump to
	issue warnings about stabs debugging symbols rather than to show them.

2008-12-23  Jon Beniston <jon@beniston.com>

	* Makefile.am: Add LM32 object files and dependencies.
	* Makefile.in: Regenerate.
	* archures.c: Add LM32 architechiture info.
	* targets.c: Likewise.
	* reloc.c: Likewise.
	* bfd-in2.h: Regenerate.
	* config.bfd: Add LM32 targets.
	* configure.in: Likewise.
	* configure: Regenerate.
	* cpu-lm32.c: New file.
	* elf32-lm32.c: New file.

2008-12-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/7036
	* elfxx-ia64.c (elfNN_ia64_relax_section): Assume linker will
	always insert 32byte between the .plt and .text sections after
	the the first relaxation pass.

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

	PR 7093
	* elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF
	object files.

2008-12-23  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name
	.eh_frame for __TEXT.__eh_frame so that it is recognized by gdb.
	Use shorter sections name for well known sections.
	(bfd_mach_o_scan_read_dylinker): Only put dylinker name in the
	section content.
	(bfd_mach_o_scan_read_segment): Use shorter sections name for
	well known segments.
	(bfd_mach_o_scan_read_command): Ignore some new commands.
	(bfd_mach_o_openr_next_archived_file): Use more descriptive names
	for members filename.
	(bfd_mach_o_fat_extract): New function to easily extract members
	of a fat binary.
	* mach-o.h (bfd_mach_o_load_command_type): Add new constants.
	(bfd_mach_o_dylinker_command): Fix comment and reindent.
	(bfd_mach_o_fat_extract): New prototype.

2008-12-23  Johan Olmutz Nielsen  <jnielsen@ddci.com>

	* coffcode.h (coff_write_object_contents): Always initialise
	section.s_page.

2008-12-23  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL.
	(elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and
	SYMBOL_REFERENCES_LOCAL.
	(elf_m68k_relocate_section): Likewise.

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

	* elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs
	field.
	(_bfd_elf_make_ifunc_reloc_section): Remove prototype.
	* elf.c (swap_out_syms): Remove STT_IFUNC support.
	(elf_find_function): Likewise.
	* elf32-arm.c (arm_elf_find_function): Likewise.
	(elf32_arm_adjust_dynamic_symbol): Likewise.
	(elf32_arm_swap_symbol_in): Likewise.
	(elf32_arm_is_function_type): Likewise.
	* elf32-i386.c (is_indirect_symbol): Delete.
	(elf_i386_check_relocs): Remove STT_IFUNC support.
	(allocate_dynrelocs): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf64-x86-64.c (is_indirect_symbol): Delete.
	(elf64_x86_64_check_relocs): Remove STT_IFUNC support.
	(allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Likewise.
	* elflink.c (_bfd_elf_adjust_symbol): Likewise.
	(get_ifunc_reloc_section_name): Delete.
	(_bfd_elf_make_ifunc_reloc_section): Delete.
	* syms.c (BSF_INDIRECT_FUNCTION): Delete.
	(bfd_print_symbol_vandf): Remove STT_IFUNC support.
	(bfd_decode_symclass): Likewise.
	* bfd-in2.h: Regenerate.

2008-12-20  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c 	(cris_elf_howto_table): Add entry for R_CRIS_32_IE.
	(cris_reloc_map): Similarly.
	(cris_elf_relocate_section, cris_elf_gc_sweep_hook)
	(cris_elf_check_relocs): Handle R_CRIS_32_IE.
	* reloc.c (bfd_reloc_code_type): Add entry for R_CRIS_32_IE.
	* bfd-in2.h, libbfd.h: Regenerate.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-12-17  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_copy_indirect_symbol): Return without
	action for symbols other than bfd_link_hash_indirect.
	(cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing
	gate h != NULL for h->def_regular test.

2008-12-15  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_copy_indirect_symbol): New function.
	(elf_backend_copy_indirect_symbol): Define to above.

	* elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member
	r_type.  Fix formatting.
	(cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>
	<R_CRIS_32_PCREL>: Also break early if the symbol doesn't get
	emitted as a dynamic one.
	(cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork
	from PCREL relocs code and simplify; don't fall through.
	<R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for
	pcrel only.  For non-local or overridable symbols in a DSO, always
	keep count of relocs, not just when -Bsymbolic.  Don't emit
	message nor mark as TEXTREL here.
	(elf_cris_discard_excess_dso_dynamics): Emit warning and mark as
	TEXTREL here, if there are nondiscarded pcrel relocs.

	* elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize
	using ibfd, not abfd.

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

	PR 7041
	* elf64-ppc.c (func_desc_adjust): Correct logic making fake function
	descriptors.  Similarly correct making function descriptors dynamic.

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

	* elf32-spu.h (struct spu_elf_params): Add num_regions.
	* elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions.

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

	* elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New.
	(spu_elf_setup): Declare.
	(spu_elf_create_sections, spu_elf_size_stubs): Update prototype.
	(spu_elf_build_stubs, spu_elf_check_vma): Likewise.
	* elf32-spu.c (struct spu_link_hash_table): Add "params". Remove
	various other fields now in "params".  Adjust code throughout.
	(struct call_info, struct function_info): Move earlier in file.
	(struct spu_elf_stack_info): Likewise.
	(spu_elf_setup): New function.
	(spu_elf_create_sections): Remove args other than "info".
	(spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise.
	(maybe_needs_stubs): Remove "output_bfd" arg.  Adjust all calls.
	(interesting_section): Similarly with "obfd" arg.
	(needs_ovl_stub): Adjust output_section test.
	(allocate_spuear_stubs): Likewise.
	(OVL_STUB_SIZE): Don't define.
	(ovl_stub_size): New function, use in place of OVL_STUB_SIZE.
	(build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE.
	(spu_elf_auto_overlay): Remove args other than "info".  Make use
	of size returned from spu_elf_load_ovl_mgr.
	(spu_elf_stack_analysis): Remove args other than "info".
	(spu_elf_relocate_section): Tidy setting of "ea".

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

	* elf32-spu.c (find_function_stack_adjust): Don't limit number
	of insns scanned.  Correct sp tests.  Handle "fsmbi" and "andbi".
	(mark_detached_root): New function.
	(build_call_tree): Call it.
	(sort_calls): Don't do void* arithmetic.
	(define_ovtab_symbol): Don't abort on symbols defined in linker scripts.
	(discover_functions): Consider STT_SECTION symbols too.
	(collect_lib_sections): Don't cut short call tree traversal
	when function size is too large.

2008-12-09  Tom Tromey  <tromey@redhat.com>

	* pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc
	4.4.

2008-12-09  Tristan Gingold  <gingold@adacore.com>

	* cpu-avr.c (compatible): Makes avr-6 compatible only with itself.

2008-12-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* elf64-s390.c (elf_s390_check_relocs): Initialize
	htab->elf.dynobj if necessary.

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

	* syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.
	Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE.  Renumber flags
	to remove gaps.
	(bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.
	(bfd_decode_symclass): Likewise.
	* elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into
	STT_IFUNC.
	(elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.
	(_bfd_elf_is_function_type): Likewise.
	* elf32-arm.c (arm_elf_find_function): Likewise.
	(elf32_arm_adjust_dynamic_symbol): Likewise.
	(elf32_arm_swap_symbol_in): Likewise.
	(elf32_arm_additional_program_headers): Likewise.
	* elf32-i386.c (is_indirect_symbol): New function.
	(elf_i386_check_relocs): Also generate dynamic relocs for
	relocations against STT_IFUNC symbols.
	(allocate_dynrelocs): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf64-x86-64.c (is_indirect_symbol): New function.
	(elf64_x86_64_check_relocs): Also generate dynamic relocs for
	relocations against STT_IFUNC symbols.
	(allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into
	BSF_INDIRECT_FUNCTION.
	* elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support
	for STT_IFUNC symbols.
	(get_ifunc_reloc_section_name): New function.
	(_bfd_elf_make_ifunc_reloc_section): New function.
	* elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.
	* bfd-in2.h: Regenerate.

2008-12-02  Tristan Gingold  <gingold@adacore.com>

	* config.bfd: Add x86_64-*-darwin*

2008-11-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hpux-core.c: Don't include sys/file.h.

2008-11-28  Joshua Kinard  <kumba@gentoo.org>

	* aoutx.h (NAME): Add case statements for bfd_mach_mips14000,
	bfd_mach_mips16000.
	* archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000,
	bfd_mach_mips16000.
	* bfd-in2.h: Regenerate.
	* cpu-mips.c: Add enums I_mips14000, I_mips16000.
	(arch_info_struct): Add refs to R14000, R16000.
	* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000,
	bfd_mach_mips16000.
	(mips_mach_extensions): Map R14000, R16000 to R10000.

2008-11-27   M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* Add PIC support for CR16 target.
	* elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
	R_CR16_GLOB_DAT): New macros
	(cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,
	R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
	(cr16_reloc_map): Ditto
	(_bfd_cr16_elf_create_got_section): New function to create GOT section.
	(_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic
	section.
	(_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol
	defined by dynamic object.
	(_bfd_cr16_elf_size_dynamic_sections): New function to find the size of
	dynamic sections.
	(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
	symbols.
	(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
	sections.
	(bfd_cr16_elf32_create_embedded_relocs): New function to create
	embedded relocs in .emreloc section in memory for .data.rel section.
	(_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.
	(cr16_elf_check_relocs): New function for checking reloc types in first
	phase.
	(cr16_elf_final_link_relocate): Update for handling the new reloc types
	R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.
	(elf32_cr16_relax_section): Update relax implementation.
	* reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,
	R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
	* bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared
	* libbfd.h, bfd-in2.h: Regenerate.

2008-11-26  Alan Modra  <amodra@bigpond.net.au>

	PR 7047
	* configure.in: Bump version.
	* configure: Regenerate.
	* elflink.c (_bfd_elf_link_assign_sym_version): Continue matching
	against version nodes when a global match is a wildcard.  Similarly
	continue matching on local wildcard matches, rather than only
	continuing for "*".  Have any global wildcard match override a
	local wildcard match.  Correct logic hiding unversioned symbol.
	(bfd_elf_size_dynamic_sections): Update for changes to struct
	bfd_elf_version_expr.

2008-11-25  Joel Brobecker  <brobecker@adacore.com>

	* configure.in: Deactivate large-file support on native x86-solaris
	as well unless the user explicitly requested it.
	* configure: Regenerate.

2008-11-25  Joseph Myers  <joseph@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Do not turn
	branches to undefine weak symbols into branches to the next
	instruction if creating PLT entries for those symbols.

2008-11-25  Nick Clifton  <nickc@redhat.com>

	* elflink.c (is_reloc_section): New function.  Returns true if the
	given name matches the name of the reloc-containing section
	associated with the given section.
	(get_dynamic_reloc_section_name): New function.  Computes the name
	of the section that contains the dynamic relocs associated with
	the given section.
	(_bfd_elf_get_dynamic_reloc_section): New function.  Returns a
	pointer to the section containing the dynamic relocs associated
	with the given section.
	(_bfd_elf_make_dynamic_reloc_section): New function.  Creates a
	section to contain the dynamic relocs associated with a given
	section.
	* elf-bfd.h: Prototype the new functions.
	* elf-m10300.c (mn10300_elf_check_relocs): Use new functions.
	(mn10300_elf_final_link_relocs): Likewise.
	* elf32-arm.c (reloc_section_p): Delete - replaced by new
	functions.
	(elf32_arm_final_link_relocate): Use new functions.
	(elf32_arm_check_relocs): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	(elf_cris_check_relocs): Likewise.
	* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
	* elf32-i370.c (i370_elf_check_relocs): Likewise.
	(i370_elf_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_check_relocs): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	(m32r_elf_check_relocs): Likewise.
	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
	* elf32_ppc.c (ppc_elf_check_relocs): Likewise.
	(ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_check_relocs): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	(sh_elf_check_relocs): Likewise.
	* elf32-vax.c (elf_vax_check_relocs): Likewise.
	(elf_vax_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
	* elf64-s390.c (elf_s390_check_relocs): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
	* elf32-bfin.c (bfin_check_relocs): Remove redundant local
	variable 'sreloc'.
	(bfin_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_check_relocs): Likewise.

2008-11-23  Hans-Peter Nilsson  <hp@axis.com>

	Implement TLS for CRIS.
	* elf32-cris.c: Include limits.h.
	(TLSHOWTO16): Redefine in terms of and move contents to...
	(TLSHOWTO16X): New macro.
	(TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR)
	(elf_cris_hash_entry): New macros.
	(cris_elf_howto_table): Make R_CRIS_16_DTPREL,
	R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed,
	not unsigned values.
	(cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type,
	not unsigned int.
	(struct elf_cris_link_hash_entry): New members reg_got_refcount,
	tprel_refcount, and dtp_refcount.
	(struct elf_cris_link_hash_table): New member dtpmod_refcount.
	(elf_cris_link_hash_newfunc): Initialize new members.
	(elf_cris_link_hash_table_create): Similar.
	(cris_final_link_relocate, elf_cris_reloc_type_class): Use a
	temporary variable when testing the relocation type.
	(cris_elf_gc_mark_hook): Ditto.  Add default case where needed.
	(cris_elf_gc_sweep_hook): Ditto.  Handle reference-counting for
	the new assembly-generated relocs.  Rewrite refcount handling to
	set temporary variables to pointers to reloc-specific variables
	and entry size and common code for the update.
	(additional_relocation_error_msg_count): New variable.
	(cris_elf_relocate_section): Use a function-local variable srelgot
	for the .rela.got section instead of looking it up for every need.
	Make r_type a enum elf_cris_reloc_type, not int.  Actually set
	symname for non-local symbols.  Handle new assembly-generated
	relocs.  For overflow, emit additional messages for the new 16-bit
	relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT.
	(elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol
	instead of plain casts.  Check new hash entry member
	reg_got_refcount when checking whether to emit a GOT entry.
	(elf_cris_finish_dynamic_sections): Update head comment to warn
	about emitting relocs here.  Use a temporary variable when testing
	the relocation type.
	(elf_cris_discard_excess_program_dynamics)
	(elf_cris_adjust_gotplt_to_got): Handle reference counting change
	regarding h->reg_got_refcount.
	(cris_elf_check_relocs): Rewrite refcount handling to set
	temporary variables and entry size and common code for the update
	for local symbols.  Use new macro elf_cris_hash_entry.  Adjust
	allocation for change in reference counting of GOT entries for
	local symbols.
	(elf_cris_size_dynamic_sections): Adjust calculated size of
	.got.plt and .rela.got if we need a GOT entry for a
	R_CRIS_DTPMOD relocation.
	(elf_cris_got_elt_size): New function.
	(elf_backend_got_elt_size): Define.

2008-11-21  Sterling Augustine  <sterling@tensilica.com>

	* xtensa-isa.c (xtensa_state_is_shared_or): New function.

2008-11-21  Hans-Peter Nilsson  <hp@axis.com>

	* elf-bfd.h (struct elf_backend_data): New member got_elt_size.
	(_bfd_elf_default_got_elt_size): Declare.
	* elflink.c (struct alloc_got_off_arg): Replace member got_elt_size
	by new member info.
	(elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size
	to get the element size instead of using a gofarg entry.
	(bfd_elf_gc_common_finalize_got_offsets): Similar.
	(_bfd_elf_default_got_elt_size): New function.
	* elfxx-target.h: New macro elf_backend_got_elt_size.
	(elfNN_bed): Use it.

2008-11-20  Tristan Gingold  <gingold@adacore.com>

	* bfdwin.c: Fix comment.

2008-11-20  Tristan Gingold  <gingold@adacore.com>

	* bfd.c (is32bit): Use architecture information for non-ELF
	targets.

2008-11-20  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for
	TLS_LD even when symbol is used with other TLS reloc types.
	(ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.
	Leave addend zero on LD DTPMOD dynamic reloc.

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

	* xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,
	EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,
	SCOMPARE1, and THREADPTR registers.
	(NUM_SYSREGS, MAX_USER_REG): Update.
	(states): Change width of INTERRUPT, WindowBase, WindowStart, and
	INTENABLE.  Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,
	EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.
	(NUM_STATES): Update.
	(enum xtensa_state_id): Add entries for new states.
	(enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm
	fields, along with functions to extract and set them.
	(regfiles): Change number of AR registers to 32.
	(Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,
	Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.
	(operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,
	xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to
	encode and decode them.
	(enum xtensa_operand_id): Add entries for new operands.
	(Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and
	EPC7 states.
	(Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and
	EPS6, respectively.
	(iclasses): Add entries for rur_threadptr, wur_threadptr,
	xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,
	xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,
	xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,
	xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,
	xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,
	xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,
	xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,
	xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,
	xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,
	xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,
	xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,
	xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,
	xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,
	xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,
	xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,
	xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along
	with corresponding argument and state argument arrays.  Change
	number of state arguments for xt_iclass_rfi.  Add arguments for
	xt_iclass_rfdo.
	(enum xtensa_iclass_id): Add entries for new iclasses.
	(opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,
	RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,
	RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,
	RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,
	RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,
	WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,
	MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,
	WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,
	S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,
	REMU, REMS, and MULL opcodes, along with the corresponding functions
	to encode them.
	(enum xtensa_opcode_id): Add entries for new opcodes.
	(Slot_inst_decode): Handle new opcodes.
	(Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for
	xt_wbr15_imm and xt_wbr18_imm fields.
	(Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.
	(Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.
	(xtensa_modules): Update number of fields, operands, iclasses and
	opcodes.

2008-11-19  Nix  <nix@esperi.org.uk>

	* elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error.

2008-11-19  Nick Clifton  <nickc@redhat.com>

	PR 7027
	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
	against local symbols in 64-bit binaries as if they were WDISP30
	relocs.
	(_bfd_sparc_elf_relocate_section): Likewise.

2008-11-18  Catherine Moore  <clm@codesourcery.com>

	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
	half-precision attributes.
	(elf32_arm_copy_one_eabi_other_attribute): New.
	(elf32_arm_copy_other_attribute_list): New.

2008-11-18  Nick Clifton  <nickc@redhat.com>

	* dwarf2.c (read_section): Fix formatting.
	(read_n_bytes): Remove unhelpful comment.
	(read_indirect_string): Pass symbol table to read_section in case
	the .debug_str section needs relocating.

	PR 7037
	* elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of
	the reloc descriptions.

2008-11-14  Eric B. Weddington  <eric.weddington@atmel.com>

	PR 7022
	* elf32-avr.c (bfd_elf_avr_final_write_processing):
	Add missing break statements.

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

	* xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros.
	(xtensa_field_id, xtensa_regfile_id, xtensa_operand_id)
	(xtensa_iclass_id, xtensa_opcode_id): New enums.
	Replace hardcoded constants throughout this file with enum values.

2008-11-14  Nathan Sidwell  <nathan@codesourcery.com>

	* elf.c (assign_file_positions_for_load_sections): Use header_size
	to avoid moving the load address of file headers.
	(assign_file_positions_for_load_sections): Set header_size for
	segments containing the file header.

2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG,
	BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr.
	Generate bfdver.h.
	* vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca.
	* hosts/alphavms.h: Defines macros to bypass i18n.
	* makefile.vms (OBJS): Update file list.
	(DEFS): Remove VMS_DEBUG, const, add DEBUGDIR.
	(CFLAGS): Update flags.
	* bfdio.c (real_fopen): Add code specific to VMS: extract attributes
	from modes.

2008-11-13  Joel Brobecker  <brobecker@adacore.com>

	* configure.in: Deactivate large-file support on native 32bit
	sparc-solaris unless the user explicitly requested it.
	* configure: Regenerate.

2008-11-13  Hans-Peter Nilsson  <hp@axis.com>

	PR ld/7028
	* elf.c (assign_file_positions_for_load_sections): Allocate phrds
	with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use
	the possibly-preset header-size, not the computed one.

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

	PR 7023
	* elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.

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

	* elf.c (assign_file_positions_for_non_load_sections): Consolidate
	PT_GNU_RELRO handling.

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

	PR 7012
	* dwarf2.c (find_line): Don't keep stale pointers into realloc'd
	memory.  Return on errors.  Fix memory leak.
	(_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.

2008-11-10  Andreas Schwab  <schwab@suse.de>

	PR 7011
	* elf.c (assign_file_positions_for_non_load_sections): Handle
	PT_GNU_RELRO specially.

2008-11-06  Joel Sherrill <joel.sherrill@oarcorp.com>

	* config.bfd: Add m32c-*-rtems* and m32r-*-rtems*.

2008-11-06  Tom Tromey  <tromey@redhat.com>

	* configure, config.in: Rebuild.
	* configure.in: Check for fileno.
	* bfdio.c (close_on_exec): New function.
	(real_fopen): Use it.
	(FD_CLOEXEC): New define.

2008-11-06  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
	(BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,
	BFD_MACH_O_SYM_NDESC): New macros.
	(bfd_mach_o_i386_thread_flavour): Define according to the latest
	definition from system header.
	(bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,
	BFD_MACH_O_LC_CODE_SIGNATURE.
	(BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,
	BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,
	BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
	BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
	BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.
	(bfd_mach_o_segment_command): Add room for a nul terminator in
	segname field.
	(BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,
	BFD_MACH_O_PROT_EXECUTE): Add.
	(INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.
	(INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.
	(bfd_mach_o_uuid_command): Add the structure.
	(bfd_mach_o_load_command): Add uuid field.
	(bfd_get_mach_o_data): New macro.
	* mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which
	replaces the macro.
	(SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,
	S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,
	S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed
	and moved to mach-o.h.
	(N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,
	N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.
	(bfd_mach_o_print_symbol): Print much more details.
	(bfd_mach_o_make_bfd_section): Add prot argument, use canonical
	dwarf name for dwarf sections.  Precisely set section flags.
	(bfd_mach_o_scan_read_section_32): Add prot argument.
	(bfd_mach_o_scan_read_section_64): Ditto.
	(bfd_mach_o_scan_read_section): Ditto.
	(bfd_mach_o_scan_read_symtab_symbol): Set section for debugging
	stabs, set BSF_GLOBAL and LOCAL flags correctly.  Fix section
	for N_SECT symbols.
	(bfd_mach_o_i386_flavour_string): Reindent and adjust for new
	names.
	(bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there
	are symbols.
	(bfd_mach_o_scan_read_uuid): New function.
	(bfd_mach_o_scan_read_segment): Add a trailing nul.  Segments
	flags are now simply HAS_CONTENTS.  Pass protection to
	bfd_mach_o_scan_read_section.
	(bfd_mach_o_scan_read_command): Decode UUID command.
	(bfd_mach_o_flatten_sections): Add comments.  Fix flavour names.
	(bfd_mach_o_scan): Set flags according to file type.
	(mach_o_fat_archentry): Remove abfd field.
	(bfd_mach_o_archive_p): Remove initialization of abfd field.
	(bfd_mach_o_openr_next_archived_file): Find previous archive
	by position and not by bfd (as former bfds may have been freed).
	Give architecture name to archived file.
	* mach-o-target.c (TARGET_NAME): Use generic archive for non fat
	targets.

2008-10-30  Jay Krell  <jay.krell@cornell.edu>

	* cache.c (cache_bread): Cast void * pointer before performing
	arithmetic on it.

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

	* elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from
	ppc64_elf_check_directives.
	* elf32-sh-symbian.c (sh_symbian_process_directives): Combine..
	(sh_symbian_check_directives): ..this
	(bfd_elf32_sh_symbian_process_directives) ..and this function.

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

	* elflink.c (bfd_elf_final_link): Move code reading relocs to..
	* elf32-spu.c (spu_elf_count_relocs): ..here.  Adjust params.
	* elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs
	params.

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

	* elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val
	where Elf_Internal_Dyn holds an address.

2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>

	* elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
	Tag_GNU_Power_ABI_Struct_Return.

2008-10-09  Kai Tietz  <kai.tietz@onevision.com>

	* cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma
	sized addresses instead of long sized.

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

	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to
	read plt relocs if no dynamic syms.

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

	* configure.in (ALL_LINGUAS): Add "id".
	* configure: Regenerate.
	* po/id.po: New Indonesian translation.

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

	* elf.c (assign_file_positions_for_load_sections): When checking
	a segment for contents, don't assume that a non-TLS nobits section
	must only be followed by nobits sections.

2008-10-04  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.
	(cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD,
	R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL,
	R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL,
	R_CRIS_16_GOT_TPREL,  R_CRIS_32_TPREL,  R_CRIS_16_TPREL.
	(cris_reloc_map): Similarly.
	* reloc.c (bfd_reloc_code_type): Add entries for
	BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD,
	BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP,
	BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL,
	BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL,
	BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL,
	BFD_RELOC_CRIS_16_TPREL.
	* libbfd.h, bfd-in2.h: Regenerate.

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

	PR 6931
	* elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
	the signature symbol is global.
	* elflink.c (elf_link_input_bfd): Ensure group signature symbol
	is output when ld -r.  Set group sh_info when local.
	* linker.c (default_indirect_link_order): Handle group sections
	specially.

2008-09-30  Wesley W. Terpstra  <wesley@terpstra.ca>
	    Nick Clifton  <nickc@redhat.com>

	* coffgen.c (coff_write_symbols): Check to see if a symbol's flags
	do not match it class and if necessary update the class.
	(null_error_handler): New function.  Suppresses the generation of
	bfd error messages.
	* coff64-rs6000.c (bfd_xcoff_backend_data): Update comment.

2008-09-30  Alan Modra  <amodra@bigpond.net.au>

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

2008-09-30  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (elf_link_add_object_symbols): Don't ignore returned
	value of check_directives.

2008-09-29  Peter O'Gorman  <pogma@thewrittenword.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate for new libtool.
	* aclocal.m4: Ditto.
	* Makefile.in: Ditto.
	* doc/Makefile.in: Ditto.

2008-09-29  Alan Modra  <amodra@bigpond.net.au>

	PR 6789
	* elf.c (assign_file_positions_for_load_sections): Call
	_bfd_elf_map_sections_to_segments, not elf_modify_segment_map.
	(get_program_header_size): Protect against NULL info.
	(_bfd_elf_map_sections_to_segments): Likewise.
	* elf32-spu.c (spu_elf_additional_program_headers): Likewise.

2008-09-29  Nick Clifton  <nickc@redhat.com>

	* po/vi.po: Updated Vietnamese translation.

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

	* elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
	(bfd_section_from_shdr): Don't change SHT_GROUP section name.
	* elflink.c (section_signature): New function.
	(_bfd_elf_section_already_linked): Use it.

2008-09-19  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks
	_GLOBAL_OFFSET_TABLE_ in .got.plt section.  Add BFD_ASSERTs.

2008-09-17  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative
	refcount.

2008-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR 6893 - Do not consider FDEs for discarded sections as invalid.
	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS.
	Consider FDEs with cleared relocations as valid and ignorable.

2008-09-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/6877
	* elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to
	override the function in a shared library.

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

	PR 6844
	* elf32-ppc.c (SYM_VAL): Define.  Use throughout to find symbol vma.
	(ppc_elf_relocate_section): Correct GOT offset calculation.
	(ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO.
	(ppc_elf_finish_dynamic_sections): Likewise.  Error if
	htab->elf.hgot symbol is not defined in htab->got section.

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

	PR 6888
	* elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section
	on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21,
	R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs.

2008-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix loading large elf64 binaries on 32bit hosts.
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

2008-09-08  Tom Tromey  <tromey@redhat.com>

	* elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as
	unused.

2008-09-08  H.J. Lu  <hongjiu.lu@intel.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	PR ld/3191
	* dwarf2.c (struct adjusted_section): Renamed from struct
	loadable_section.
	(struct dwarf2_debug): Adjust for renaming.  Add version field.
	(read_attribute_value): Correctly handle DW_FORM_ref_addr for
	DWARF3.
	(find_abstract_instance_name): Pass a pointer to
	attribute instead of offset.  For DW_FORM_ref_addr, get the
	entry at the offset from the .debug_info section.
	(scan_unit_for_symbols): Update.
	(parse_comp_unit): Allow DWARF3.  Save the version.
	(unset_sections): Update for renaming.
	(place_sections): Likewise.  Set new VMAs for DWARF sections
	also.

2008-09-08  Tristan Gingold  <gingold@adacore.com>

	* configure.in: Update version to 2.19.50
	* configure: Regenerated.

2008-09-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2.c: Change leading whitespace to tabs.

2008-09-05  Tristan Gingold  <gingold@adacore.com>

	Add MacOSX 64 bits support.
	* mach-o.h (bfd_mach_o_ppc_thread_flavour): Add
	BFD_MACH_O_PPC_THREAD_STATE_64.
	(bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64,
	BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64,
	BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE,
	BFD_MACH_O_x86_EXCEPTION_STATE.
	(bfd_mach_o_load_command_type): Add
	BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64,
	BFD_MACH_O_LC_UUID.
	(BFD_MACH_O_CPU_IS64BIT): Added.
	(bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64,
	BFD_MACH_O_CPU_TYPE_X86_64.
	(bfd_mach_o_header): Add version field.
	(bfd_mach_o_section) Add reserved3 field.
	(bfd_mach_o_segment_command): Add initprot and maxprot fields.

	* mach-o.c (N_TEXT, N_DATA, N_BSS): Added.
	(bfd_mach_o_version): New function.
	(bfd_mach_o_valid): Handle 64bits cpus.
	(bfd_mach_o_write_header): handler 64bits headers.
	(bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64):
	New functions (from bfd_mach_o_scan_write_section) to handle both
	flavors.
	(bfd_mach_o_scan_write_segment): Parameter wide added to support
	both flavors.
	(bfd_mach_o_write_contents): Support both flavors.
	(bfd_mach_o_read_header): Ditto.
	(bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64):
	New functions (from bfd_mach_o_scan_read_section) to support both
	flavors.
	(bfd_mach_o_scan_read_symtab_symbol): Support both flavors.
	(bfd_mach_o_scan_read_symtab): Ditto.
	(bfd_mach_o_scan_read_segment): Parameter wide added to support
	both flavors.
	(bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64):
	New functions to call bfd_mach_o_scan_read_segment.
	(bfd_mach_o_flatten_sections): Support both flavors.
	(bfd_mach_o_scan_start_address): Ditto.
	(bfd_mach_o_scan): Ditto.
	(bfd_mach_o_lookup_section): Ditto.

2008-08-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64,
	R_PARISC_SEGREL32 and R_PARISC_SEGREL64.
	* som.c (som_fixup_formats): Add R_DATA_GPREL fixup.
	(som_hppa_howto_table): Likewise.
	(hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL
	final type.
	(som_write_fixups): Handle R_DATA_GPREL.

2008-08-26  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.c: Fix up comment describing Thumb to ARM interworking
	stub.

2008-08-25  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define.
	(elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch.
	(arm_type_of_stub): Handle armv4t short branches. Update
	prototype.
	(arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch.
	(arm_build_one_stub): Likewise.
	(arm_size_one_stub): Likewise.
	(elf32_arm_size_stubs): Use new arm_type_of_stub prototype.
	(arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch.

2008-08-24  Andreas Schwab  <schwab@suse.de>

	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper
	extension when calculating difference of offsets.

2008-08-24  Alan Modra  <amodra@bigpond.net.au>

	* configure.in: Update a number of obsolete autoconf macros.
	* aclocal.m4: Regenerate.

2008-08-23  Andreas Schwab  <schwab@suse.de>

	* opncls.c (find_separate_debug_file): Use the canonical
	absolute name of the bfd object for finding the debug file in
	the global debugfile directory.

2008-08-22  Jakub Jelinek  <jakub@redhat.com>

	Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations.
	* elflink.c (elf_link_add_object_symbols): Make debug symbols local
	now only for non-RELOCATABLE targets.

2008-08-20  Bob Wilson  <bob.wilson@acm.org>

	* elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA.
	* elf32-xtensa.c (elf_howto_table): Add TLS relocations.
	(elf_xtensa_reloc_type_lookup): Likewise.
	(TCB_SIZE): Define.
	(elf_xtensa_link_hash_entry): New.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define.
	(elf_xtensa_hash_entry): Define.
	(elf_xtensa_obj_tdata): New.
	(elf_xtensa_tdata): Define.
	(elf_xtensa_local_got_tls_type): Define.
	(elf_xtensa_local_tlsfunc_refcounts): Define.
	(is_xtensa_elf): Define.
	(elf_xtensa_mkobject): New.
	(elf_xtensa_link_hash_table): Add tlsbase field.
	(elf_xtensa_link_hash_newfunc): New.
	(elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc.
	Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field.
	(elf_xtensa_copy_indirect_symbol): New.
	(elf_xtensa_check_relocs): Rewrite to handle TLS relocations.
	(elf_xtensa_gc_sweep_hook): Likewise.
	(elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for
	TLSDESC_FN relocations when an IE reference is seen.
	(elf_xtensa_allocate_local_got_size): Likewise.
	(elf_xtensa_always_size_sections): New.
	(dtpoff_base, tpoff): New.
	(elf_xtensa_do_reloc): Handle TLS relocations.
	(replace_tls_insn): New.
	(IS_XTENSA_TLS_RELOC): Define.
	(elf_xtensa_relocate_section): Handle TLS relocations.
	(get_indirect_call_dest_reg): New.
	(bfd_elf32_mkobject): Define.
	(elf_backend_always_size_sections): New.
	(elf_backend_copy_indirect_symbol): New.
	* reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG)
	(BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF)
	(BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG)
	(BFD_RELOC_XTENSA_TLS_CALL): New.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16
	stub information.

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

	* elf32-arm.c: Tidy up the code.
	(bfd_elf32_arm_allocate_interworking_sections): Move common code
	into...
	(arm_allocate_glue_section_space): ... New function.
	(bfd_elf32_arm_add_glue_sections_to_bfd): Move common code
	into...
	(arm_make_glue_section): ... New function.

	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation
	where the sym_hashes are not available.

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

	* bfd.c (struct _bfd): Correct outsymbols comment.
	* bfd-in2.h: Regenerate.
	* linker.c (bfd_generic_link_read_symbols): Renamed from..
	(generic_link_read_symbols): ..this, and made global.

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

	PR 6526
	* configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2008-08-14  Jaka Močnik  <jaka@xlab.si>

	* coffgen.c (coff_find_nearest_line): Correct cached line index.

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

	* elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
	!dynamic_sections_created.  Don't make symbols with got
	references dynamic if !dynamic_sections_created.
	* elf64-ppc.c (allocate_dynrelocs): Likewise.  Alloc dynamic
	relocs on undefined symbols.
	(ppc64_elf_relocate_section): Allow dynamic relocs on
	undefined symbols.

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

	* elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
	needs r2 valid, not just those to external syms.

2008-08-09  Pedro Alves  <pedro@codesourcery.com>

	* archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat
	st_mtime to long before comparison.

2008-08-08  Anatoly Sokolov  <aesok@post.ru>

	* archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35,
	bfd_mach_avr51): New.
	* bfd-in2.h: Regenerate.
	* cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51
	architectures. Change comments to match architecture comments in GCC.
	(compatible): Add test for new AVR architectures.
	* elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize
	bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51.
	(elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
	E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51.


2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with...
	(elf_mips_copy_howto): ...this howto.  Clear the size fields.
	(mips_vxworks_jump_slot_howto_rela): Replace with...
	(elf_mips_jump_slot_howto): ...this howto.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
	(elf_backend_plt_readonly): Define.
	(elf_backend_plt_sym_val): Define for non-VxWorks targets.
	(mips_vxworks_bfd_reloc_type_lookup): Delete.
	(mips_vxworks_bfd_reloc_name_lookup): Likewise.
	(mips_vxworks_rtype_to_howto): Likewise.
	(elf_backend_want_dynbss): Don't define for VxWorks.
	(elf_backend_plt_readonly): Likewise.
	(bfd_elf32_bfd_reloc_type_lookup): Likewise.
	(bfd_elf32_bfd_reloc_name_lookup): Likewise.
	(elf_backend_mips_rtype_to_howto): Likewise.
	(elf_backend_adjust_dynamic_symbol): Likewise.
	(elf_backend_got_symbol_offset): Don't define.
	* elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and
	R_MIPS_JUMP_SLOT.
	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
	(elf_backend_plt_sym_val): Define.
	* elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
	(bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
	(elf_backend_plt_sym_val): Define.
	* elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete.
	(_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs)
	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare.
	* elfxx-mips.c (mips_elf_la25_stub): New structure.
	(LA25_LUI, LA25_J, LA25_ADDIU): New macros.
	(mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs"
	and "has_nonpic_branches" fields.  Remove "is_relocation_target" and
	"is_branch_target".
	(mips_elf_link_hash_table): Add blank lines.  Add
	"use_plts_and_copy_relocs", "reserved_gotno", "strampoline",
	"la25_stubs" and "add_stub_section" fields.
	(mips_htab_traverse_info): New structure.
	(PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros.
	(MIPS_RESERVED_GOTNO): Delete.
	(mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry)
	(mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables.
	(mips_elf_link_hash_newfunc): Update after the changes to
	mips_elf_link_hash_entry.
	(mips_elf_check_mips16_stubs): Replace the DATA parameter with
	an INFO parameter.  Don't look through warnings symbols here;
	do it in mips_elf_check_symbols instead.
	(mips_elf_create_stub_symbol): New function.
	(mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions.
	(_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise.
	(mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise.
	(mips_elf_add_la25_stub, mips_elf_check_symbols): New functions.
	(mips_elf_gotplt_index): Check for VxWorks.
	(mips_elf_output_dynamic_relocation): Take the relocation index
	as an extra parameter.  Do not increment reloc_count here.
	(mips_elf_initialize_tls_slots): Update the calls to
	mips_elf_output_dynamic_relocation accordingly.
	(mips_elf_multi_got): Use htab->reserved_gotno instead of
	MIPS_RESERVED_GOTNO.
	(mips_elf_create_got_section): Don't allocate reserved GOT
	entries here.  Unconditionally create .got.plt, but don't
	set its alignment here.
	(mips_elf_relocation_needs_la25_stub): New function.
	(mips_elf_calculate_relocation): Redirect branches and jumps to
	a non-PIC stub if one exists.  Check !h->has_static_relocs instead
	of !htab->is_vxworks when deciding whether to create dynamic
	relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64.
	(_bfd_mips_elf_create_dynamic_sections): Unconditionally call
	_bfd_elf_create_dynamic_sections.  Unconditionally set up
	htab->splt and htab->sdynbss.  Set htab->srelplt to ".rel.plt"
	if !htab->is_vxworks.  Add non-VxWorks values of
	htab->plt_header_size and htab->plt_entry_size.
	(_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
	non-branch static relocations.  Set has_nonpic_branches when an la25
	stub might be required.  Set can_make_dynamic_p to TRUE if R_MIPS_32,
	R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic,
	rather than duplicating the condition.  Do not make them dynamic
	for read-only sections in non-PIC executable objects.
	Do not protect this code with dynobj == NULL || htab->sgot == NULL;
	handle each group of cases separately.  Add a default case that
	sets has_static_relocs for non-GOT relocations that cannot be
	made dynamic.  Don't set is_relocation_target and is_branch_target.
	Reject non-PIC static relocations in shared objects.
	(_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into...
	(_bfd_mips_elf_adjust_dynamic_symbol): ...here, using
	htab->use_plts_and_copy_relocs instead of htab->is_vxworks
	to select PLT and copy-reloc handling.  Set the alignment of
	.plt and .got.plt when allocating the first entry.  Generalize
	code to handle REL as well as RELA sections and 64-bit as well as
	32-bit GOT entries.  Complain if we find a static-only reloc
	against an externally-defined symbol and if we cannot create
	dynamic relocations for it.  Allocate copy relocs using
	mips_elf_allocate_dynamic_relocations on non-VxWorks targets.
	Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs.
	Skip reserved .got.plt entries.
	(_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols
	instead of mips_elf_check_mips16_stubs to process each symbol.
	Do the traversal for relocatable objects too.
	(mips_elf_lay_out_got): Use htab->reserved_gotno instead of
	MIPS_RESERVED_GOTNO.
	(_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it
	is empty.  Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling
	to non-VxWorks targets.  Only add DT_REL{,A}, DT_REL{,A}SZ and
	DT_REL{,A}ENT if .rel.dyn is nonempty.  Create a symbol for the
	PLT.  Allocate a nop at the end of the PLT.  Allocate DT_MIPS_PLTGOT.
	(mips_elf_create_la25_stub_info): New function.
	(_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries
	and copy relocs where necessary.  Check pointer_equality_needed.
	(mips_finish_exec_plt): New function.
	(_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT
	to the beginning of htab->sgot.  Use htab->reserved_gotno instead
	of MIPS_RESERVED_GOTNO.  Assert htab->use_plts_and_copy_relocs
	instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL.
	Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets.
	Use mips_finish_exec_plt to create non-VxWorks PLT headers.  Set
	DT_MIPS_PLTGOT.
	(_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs
	from the indirect symbol to the direct symbol.  Also copy
	has_nonpic_branches for indirect symbols.
	(_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and
	DT_MIPS_RWPLT.
	(_bfd_mips_elf_link_hash_table_create): Initialize the new
	mips_elf_link_hash_table fields.
	(_bfd_mips_vxworks_link_hash_table_create): Set
	use_plts_and_copy_relocs to TRUE.  Use TRUE rather than 1
	when setting is_vxworks.
	(_bfd_mips_elf_use_plts_and_copy_relocs): New function.
	(_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for
	each la25_stub.
	(_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects
	as PIC.  Generalize message about linking PIC and non-PIC.
	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New
	functions.
	* reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT.
	* bfd-in2.h: Regenerated.

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

	* elf.c (bfd_elf_get_elf_syms): Don't leak memory on error.
	* elflink.c (_bfd_elf_link_read_relocs): bfd_release on error.
	(elf_link_add_object_symbols): Don't leak memory on error.
	(bfd_elf_size_dynsym_hash_dynstr): Likewise.
	(elf_fixup_link_order): Free sections.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.
	* elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.
	(elfNN_bed): Use it.
	* elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p
	instead of default_use_rela_p to choose between ".rel.plt" and
	".rela.plt".
	* elflink.c (_bfd_elf_create_dynamic_sections): Use
	rela_plts_and_copies_p instead of default_use_rela_p to choose
	between ".rel.plt" and ".rela.plt", and between ".rel.bss" and
	".rela.bss".

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.
	* elf32-mips.c (bfd_elf32_mkobject): Define.
	* elf64-mips.c (bfd_elf64_mkobject): Likewise.
	* elfn32-mips.c (bfd_elf32_mkobject): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.
	* elfxx-mips.c (is_mips_elf): New macro.
	(_bfd_mips_elf_mkobject): New function.
	(_bfd_mips_elf_final_link): Use is_mips_elf.
	(_bfd_mips_elf_merge_private_bfd_data): Likewise.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a
	global GOT entry when deferring allocation of dynamic relocations.
	(allocate_dynrelocs): When allocating deferred dynamic relocations,
	also do the deferred allocation of a GOT entry.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.
	(mips_elf_got_section): Delete.
	(mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide
	how many reloc-only entries there are.
	(mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as
	well as g->global_gotno.
	(mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.
	(mips_elf_multi_got): Likewise.  Use gg->reloc_only_gotno
	rather than gg->assigned_gotno to store the number of
	reloc-only GOT entries.
	(mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.
	Initialize reloc_only_gotno.
	(mips_elf_calculate_relocation): Check htab->got_info instead of
	dynobj when deciding whether to call mips_elf_adjust_gp,
	(_bfd_mips_elf_create_dynamic_sections): Adjust the call
	to mips_elf_create_got_section.
	(mips_elf_record_relocs): Likewise.  Remove redundant
	"dynobj == NULL" code.  Do not use mips_elf_create_got_section
	or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32
	and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.
	(_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead
	of mips_elf_got_section.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	Move the initial assignment of G to the block that uses it;
	it is used for an unrelated purpose later.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (count_section_dynsyms): Move before the new first use.
	(mips_elf_sort_hash_table): Take the output bfd as a parameter.
	Remove the MAX_LOCAL parameter.  Exit early if there are no
	dynamic symbols, if there is no dynobj, or if there is no
	GOT section.  Use count_section_dynsyms instead of MAX_LOCAL.
	Assert == rather than <= when checking hsd.max_unref_got_dynindx.
	Also assert that g->global_gotno is right.
	(mips_elf_count_forced_local_got_symbols): Rename to...
	(mips_elf_count_got_symbols): ...and count global GOT entries too.
	Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol
	to GGA_NONE.
	(mips_elf_multi_got): Don't sort the symbol table.
	(mips_elf_lay_out_got): Likewise.  Use mips_elf_count_got_symbols
	to count the number of global GOT entries.
	(_bfd_mips_elf_final_link): Unconditionally call
	mips_elf_sort_hash_table.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.
	(mips_elf_link_hash_entry): Add a "global_got_area" field.
	(mips_elf_link_hash_newfunc): Initialize it.
	(mips_elf_sort_hash_table_f): Use h->global_got_area instead of
	h->root.got.offset.  Do not handle forced_local symbols specially.
	(mips_elf_record_global_got_symbol): Set h->global_got_area
	instead of h->root.got.offset.
	(mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE
	for indirect and warning symbols.
	(mips_elf_count_forced_local_got_symbols): Change the argument
	from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".
	Use and set h->global_got_area instead of h->root.got.offset.
	Set it to GGA_NONE for all forced-local symbols.
	(mips_elf_set_global_got_offset): Set h->global_got_area
	instead of h->root.got.offset.  Use g->global_got_area instead
	of a combination of dynindx, forced_local and tls_type.
	(mips_elf_multi_got): Remove disabled code.  Pass GGA_* values to
	mips_elf_set_global_got_offset.
	(mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead
	of elf_link_hash_traverse.
	(_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's
	global_got_area to the direct symbol if the latter's value is higher.
	Set the indirect symbol's area to GGA_NONE.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf32-mips.c (elf_backend_hide_symbol): Delete.
	* elfn32-mips.c (elf_backend_hide_symbol): Likewise.
	* elf64-mips.c (elf_backend_hide_symbol): Likewise.
	* elfxx-mips.h (elf_backend_hide_symbol): Likewise.
	* elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"
	and add "needs_lazy_stub".
	(mips_elf_link_hash_newfunc): Update accordingly.
	(mips_elf_link_hash_table): Remove "computed_got_sizes" and
	add "lazy_stub_count".
	(_bfd_mips_elf_link_hash_table_create): Update accordingly.
	(mips_elf_output_extsym): Use hd->needs_lazy_stub to detect
	cases where a lazy stub is being used.
	(mips_elf_sort_hash_table_f): Use h->root.forced_local instead
	of h->forced_local.
	(mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol
	instead of _bfd_mips_elf_hide_symbol.  Do not increment local_gotno
	here.
	(mips_elf_allocate_dynamic_relocations): Move before new first use.
	(mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.
	(mips_elf_resolve_final_got_entries): Move earlier in file.  Make at
	most two passes over the hash table.  Use mips_elf_check_recreate_got
	to see if there are any indirect or warning entries and
	mips_elf_recreate_got to create a new GOT without them.
	Return a boolean success value.
	(mips_elf_count_forced_local_got_entries): New function.
	(mips_elf_make_got_per_bfd): Check h->root.forced_local instead of
	h->forced_local.
	(mips_elf_set_global_got_offset): Likewise.
	(mips_elf_set_no_stub): Replace with...
	(mips_elf_forbid_lazy_stubs): ...this new function.
	(mips_elf_resolve_final_got_entry): Delete.
	(mips_elf_multi_got): Fix formatting.  Use mips_elf_forbid_lazy_stubs
	instead of mips_elf_set_no_stub.  Move the code that sets
	global offsets and allocates dynamic relocations from the main
	_bfd_mips_elf_size_dynamic_sections loop to here.
	(_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in
	.MIPS.stubs here; just set hmips->needs_lazy_stub and increment
	htab->lazy_stub_count.
	(_bfd_mips_elf_always_size_sections): Move the stub-estimation
	code to mips_elf_estimate_stub_size and the GOT-sizing code to
	mips_elf_lay_out_got.  Do not call these functions here.
	(mips_elf_estimate_stub_size): New function, split
	out from _bfd_mips_elf_always_size_sections.  Call
	mips_elf_resolve_final_got_entries earlier.  Count the number
	of forced-local entries.  Do not add stub sizes to loadable_size;
	after this patch, the stub sizes are already included in the main
	estimate.  Allocate dynamic relocations here rather than in the
	main _bfd_mips_elf_size_dynamic_sections loop.
	(mips_elf_estimate_stub_size): New function, split out from
	_bfd_mips_elf_always_size_sections.
	(mips_elf_allocate_lazy_stub): New function.
	(mips_elf_lay_out_lazy_stubs): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,
	mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs.  Do not handle
	the allocation of sreldyn specially.
	(_bfd_mips_elf_hide_symbol): Delete.

2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning
	symbols.

2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean
	fields to the end of the structure and make them single-bit
	bitfields.
	(mips_elf_link_hash_newfunc): Make the initialization statements
	follow the new field order.

2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.
	(mips_elf_link_hash_table): Add "sgot" and "got_info" fields.
	(_bfd_mips_elf_link_hash_table_create): Initialize them.
	(mips_elf_got_section): Always apply the !maybe_excluded behavior.
	(mips_elf_got_info): Delete.
	(mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.
	Adjust the call to mips_elf_got_section.
	(mips_elf_local_got_index): Don't call mips_elf_got_info.
	Update the call to mips_elf_create_local_got_entry.
	Use htab->got_info.
	(mips_elf_global_got_index): Don't call mips_elf_got_info;
	use htab->got_info and htab->sgot instead.
	(mips_elf_got_page): Don't call mips_elf_got_info.  Update the
	call to mips_elf_create_local_got_entry.
	(mips_elf_got16_entry): Likewise.
	(mips_elf_got_offset_from_index): Replace with DYNOBJ parameter
	with an INFO parameter.  Don't call mips_elf_got_info; use htab->sgot
	and htab->got_info instead.
	(mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.
	Use htab->sgot and htab->got_info.
	(mips_elf_sort_hash_table): Remove the DYNOBJ local variable.
	Don't call mips_elf_got_info; use htab->got_info instead.
	(mips_elf_record_global_got_symbol): Turn G from a paramter to
	a local variable and read it from htab->got_info.
	(mips_elf_record_local_got_symbol): Replace the G parameter with
	an INFO parameter.  Make G a local variable and read it from
	htab->got_info instead.
	(mips_elf_record_got_page_entry): Likewise.
	(mips_elf_multi_got): Remove the G parameter and make it a local
	variable instead.  Read it from htab->got_info.
	(mips_elf_create_got_section): Cache the GOT section in htab->sgot.
	Store the GOT information in htab->got_info.
	(mips_elf_calculate_relocation): Don't call mips_elf_got_section
	and mips_elf_got_info; use htab->sgot and htab->got_info instead.
	Adjust the calls to mips_elf_got_offset_from_index and
	mips_elf_adjust_gp.
	(_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.
	Adjust the calls to mips_elf_record_local_got_symbol,
	mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.
	Use htab->sgot.
	(_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.
	Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.
	Update the call to mips_elf_multi_got.
	(_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;
	use htab->got_info instead.
	(_bfd_mips_elf_finish_dynamic_symbol): Update the call to
	mips_elf_got_section.  Get the got_info from the hash table
	rather than the GOT section.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;
	get the got_info from the hash table instead.  Remove the GOT
	local variable.
	(_bfd_mips_elf_final_link): Likewise.  Also remove the DYNOBJ
	local variable.

2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.
	(_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs
	section.  Don't check whether the section already exists.
	(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.  Don't add the
	dummy stub to an empty section.
	(_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.

2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.
	* libbfd.h, bfd-in2.h: Regenerate.
	* elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(mips16_reloc_map): Add mappings.
	* elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(mips16_elf64_howto_table_rela): Likewise.
	(mips16_reloc_map): Add mappings.
	* elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(elf_mips16_howto_table_rela): Likewise.
	(mips16_reloc_map): Add mappings.
	* elfxx-mips.c (mips_elf_create_shadow_symbol): New function.
	(section_allows_mips16_refs_p): Likewise.
	(mips16_stub_symndx): Likewise.
	(mips_elf_check_mips16_stubs): Treat the data argument as a
	bfd_link_info.  Mark every dynamic symbol as needing MIPS16 stubs
	and create a "shadow" symbol for the original MIPS16 definition.
	(mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)
	(lo16_reloc_p, mips16_call_reloc_p): New functions.
	(_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize
	relocation checks.
	(_bfd_mips16_elf_reloc_shuffle): Likewise.
	(_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.
	(mips_elf_got16_entry): Add comment.
	(mips_elf_calculate_relocation): Use hi16_reloc_p,
	lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p
	to generalize relocation checks.  Use section_allows_mips16_refs_p
	instead of mips16_stub_section_p.   Handle R_MIPS16_CALL16 and
	R_MIPS16_GOT16, allowing the former to refer directly to a
	MIPS16 function if its stub is not needed.
	(mips16_stub_section_p): Delete.
	(_bfd_mips_elf_symbol_processing): Convert odd-valued function
	symbols into even MIPS16 symbols.
	(mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize
	a relocation check.
	(_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"
	earlier in the function.  Use mips16_stub_symndx to identify
	the target function.  Avoid out-of-bounds accesses when the
	stub has no relocations; report an error instead.  Use
	section_allows_mips16_refs_p instead of mips16_stub_section_p.
	Use mips16_call_reloc_p and got16_reloc_p to generalize relocation
	checks.  Handle R_MIPS16_CALL16 and R_MIPS16_GOT16.  Don't create
	dynamic relocations for absolute references to __gnu_local_gp.
	(_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as
	the argument to mips_elf_check_mips16_stubs.  Generalize comment.
	(_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p
	to generalize relocation checks.
	(_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function
	symbol has a non-MIPS16 stub, redirect the symbol to the stub.
	Fix an overly long line.  Don't give dynamic symbols type STO_MIPS16.
	(_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and
	R_MIPS16_GOT16.

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

	* elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.
	(ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.

2008-08-05  Alan Modra  <amodra@bigpond.net.au>
	    Jaka Močnik <jaka@xlab.si>

	* coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first
	so that we don't inadvertently free it.  Use bfd_alloc for sort
	arrays, and memcpy sorted line table.

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

	* elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible
	if --fixed-space request is too large.

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

	* Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

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

	* elf32-spu.c (mark_overlay_section): Move code calculating
	max_overlay_size to correct block.
	(spu_elf_auto_overlay): Don't use %x in einfo error message.

2008-08-01  Alan Modra  <amodra@bigpond.net.au>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elfcore.h (elf_core_file_p): Ensure we have a backend match
	with the correct arch size before rejecting the generic fallback.
	* elfcode.h (elf_object_p): Likewise.  Ensure arch size matches
	before accepting a target.

2008-08-01  Alan Modra  <amodra@bigpond.net.au>

	PR 6774
	* elf.c (rewrite_elf_program_header): Don't wrap p_paddr to
	include file or program headers.

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

	* coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c,
	elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c,
	elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c,
	ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings.

2008-07-28  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating
	relocations for undefined weak symbols with non-default visibility.
	(_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for
	global symbols in shared libraries.
	(allocate_dynrelocs): New function.
	(_bfd_mips_elf_adjust_dynamic_symbol): Do not handle
	possibly_dynamic_relocs here.
	(_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs.

2008-07-28  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-i386.c (struct elf_i386_link_hash_table): Added field
	tls_module_base.
	(elf_i386_link_hash_table_create): Initialize it.
	(elf_i386_always_size_sections): Set it.
	(set_tls_module_base): New.
	(elf_i386_relocate_sections): Call it.
	* elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added
	field tls_module_base.
	(elf64_x86_64_link_hash_table_create): Initialize it.
	(elf64_x86_64_always_size_sections): Set it.
	(set_tls_module_base): New.
	(elf64_x86_64_relocate_sections): Call it.
	Reported by Cary Coutant <ccoutant@google.com>

2008-07-28  Ineiev  <ineiev@yahoo.co.uk>

	* elf32-arm.c (arm_map_one_stub): Declare variables at beginning
	of block.
	* elf32-avr.c (get_local_syms): Likewise.

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

	PR 6769
	* bfd-in.h (BFD_VMA_FMT): Define.
	(printf_vma, sprintf_vma): Use the above.
	(_bfd_int64_low, _bfd_int64_high): Delete.
	* bfd-in2.h: Regenerate.

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

	* elf.c (_bfd_elf_make_section_from_shdr): Ignore return from
	elf_parse_notes.  Use bfd_malloc_and_get_section.
	(elf_parse_notes): Validate note namesz and descsz.

2008-07-26  Michael Eager <eager@eagercon.com>

	* elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility
	between single-float, double-float, and soft-float.

2008-07-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-mips.c (elf_backend_write_section): Define.

2008-07-24  Nick Clifton  <nickc@redhat.com>

	* elf.c (_bfd_elf_map_sections_to_segments): Catch off by one
	error assigning sections to segments.

2008-07-22  Nick Clifton  <nickc@redhat.com>

	* elf.c (_bfd_elf_map_sections_to_segments): Allow sections in
	adjoining pages to be included in the same segment.

2008-07-22  Simon Baldwin  <simonb@google.com>

	* elflink.c (elf_link_output_extsym): Set st_size to zero for
	symbols from dynamic libraries.

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

	PR ld/4424
	* elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible
	to check if 2 inputs are compatible.

2008-07-21  Sterling Augustine  <sterling@tensilica.com>

	* elf.c (assign_file_positions_for_load_sections): Print vma in
	error message about overlapping section vmas.

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

	PR ld/6747
	* elf32-frv.c (elf32_frv_relocate_section): Revert the change
	for PR ld/6446 checked in by accident on May 21, 2008.

2008-07-21  Nick Clifton  <nickc@redhat.com>

	* coff-sh.c (bfd_pe_print_pdata): Define to NULL for non
	COFF_WITH_PE based SH ports.
	* libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype.
	* arm-wince-pe.c (bfd_pe_print_pdata): Use
	_bfd_pe_print_ce_compressed_pdata.
	(slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move
	to...
	* peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to
	_bfd_XX_print_ce_compressed_pdata.

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

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
	unwanted zero terminators.

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

	* elf32-spu.c (spu_elf_relocate_section): Expand
	RELOC_FOR_GLOBAL_SYMBOL.  Don't warn about undefined symbols for
	R_SPU_PPU32 and R_SPU_PPU64 relocations.

2008-07-21  Luis Machado  <luisgpm@br.ibm.com>

	* elf-bfd.h: Declare elfcore_write_ppc_vsx.
	* elf.c (elfcore_grok_ppc_vsx): New function.
	(elfcore_write_ppc_vsx): New function
	(elfcore_grok_note): Handle VSX notes.
	(elfcore_write_register_note): Handle VSX notes.

2008-07-18  Joseph Myers  <joseph@codesourcery.com>

	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (struct elf_arm_obj_tdata): Add field
	no_wchar_size_warning.
	(bfd_elf32_arm_set_target_relocs): Add new parameter
	no_wchar_warn.
	(elf32_arm_merge_eabi_attributes): Give a warning, not an error,
	for conflicting wchar_t attributes.  Do not warn if
	--no-wchar-size-warning.  Make diagnostic text more specific.

2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/6748
	* elf32-arm.c (elf32_arm_link_hash_table_create): Initialize
	new fields added for ARM long call support.

2008-07-18  Danny Backx  <dannybackx@users.sourceforge.net>

	* pe-arm-wince.c (pe_print_compressed_pdata): Define new function to
	print compressed pdata structure as described on MSDN. This only
	applies to a limited set of architectures (ARM, SH4).
	(slurp_symtab, my_symbol_for_address): Define static helper
	functions for pe_print_compressed_pdata.
	* coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.
	(bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.
	* bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on
	bfd_coff_backend_data, call the function if non-null.
	* pei-mcore.c: Add target dependent initialisation for
	bfd_coff_backend_data.
	* coff-sh.c: Likewise.
	* coff64-rs6000.c: Likewise.
	* coff-rs6000.c: Likewise.
	* libcoff-in.h: Likewise.
	* cf-i386lynx.c: Likewise.
	* coff-alpha.c: Likewise.
	* coff-apollo.c: Likewise.
	* coff-arm.c: Likewise.
	* coff-aux.c: Likewise.
	* coff-h8300.c: Likewise.
	* coff-h8500.c: Likewise.
	* coff-i386.c: Likewise.
	* coff-i860.c: Likewise.
	* coff-i960.c: Likewise.
	* coff-ia64.c: Likewise.
	* coff-m68k.c: Likewise.
	* coff-m88k.c: Likewise.
	* coff-maxq.c: Likewise.
	* coff-mips.c: Likewise.
	* coff-or32.c: Likewise.
	* coff-sparc.c: Likewise.
	* coff-tic30.c: Likewise.
	* coff-tic4x.c: Likewise.
	* coff-tic54x.c: Likewise.
	* coff-tic80.c: Likewise.
	* coff-w65.c: Likewise.
	* coff-we32k.c: Likewise.
	* coff-x86_64.c: Likewise.
	* coff-z80.c: Likewise.
	* coff-z8k.c: Likewise.
	* pe-mcore.c: Likewise.
	* pe-mips.c: Likewise.
	* pe-ppc.c: Likewise.
	* peXXigen.c: Likewise.
	* pei-ppc.c: Likewise.
	* libcoff.h: Regenerate.

2008-07-16  Bernd Schmidt  <bernd.schmidt@analog.com>

	* elf32-bfin.c (bfin_check_relocs, bfin_relocate_section,
	bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook,
	ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE,
	struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code
	separate from non-FD-PIC.

2008-07-14  DJ Delorie  <dj@redhat.com>

	* elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow
	checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16
	relocs.
	(mn10300_elf_relax_section): Correct jump offset check when target
	is in a different section.

2008-07-15  Jie Zhang  <jie.zhang@analog.com>

	* elf32-bfin.c (elf32_bfin_special_sections[]): New.
	(elf_backend_special_sections): Define.

2008-07-13  Craig Silverstein  <csilvers@google.com>

	PR binutils/6743
	* dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory.
	(find_line): Use info_ptr_memory instead of sec_info_ptr.
	(_bfd_dwarf2_cleanup_debug_info): Likewise.

2008-07-12  Jie Zhang  <jie.zhang@analog.com>

	Revert
	2008-07-12  Jie Zhang  <jie.zhang@analog.com>
	* elf.c (_bfd_elf_map_sections_to_segments): Don't put
	executable sections into the same segment with other
	read only sections if --sep-code.
	* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
	(elf32_bfin_data_in_l1): New variable.
	(elf32_bfin_final_write_processing): New.
	(elf32_bfin_special_sections[]): New.
	(elf_backend_final_write_processing): Define.
	(elf_backend_special_sections): Define.

2008-07-12  Jie Zhang  <jie.zhang@analog.com>

	* elf.c (_bfd_elf_map_sections_to_segments): Don't put
	executable sections into the same segment with other
	read only sections if --sep-code.
	* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
	(elf32_bfin_data_in_l1): New variable.
	(elf32_bfin_final_write_processing): New.
	(elf32_bfin_special_sections[]): New.
	(elf_backend_final_write_processing): Define.
	(elf_backend_special_sections): Define.

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

	* dwarf2.c (read_section): Take pointer to bfd_size_type instead
	of unsigned long as last parameter.
	(struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,
	dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of
	unsigned long.

2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0
	for all relocation types.  Allow any type of relocation to refer to
	__gnu_local_gp.

2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.
	(mips_elf_calculate_relocation): Likewise.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.

2008-07-10  Andreas Schwab  <schwab@suse.de>

	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing
	paren.

2008-07-09  Craig Silverstein  <csilvers@google.com>

	* Makefile.am (BFD32_LIBS): Add compress.lo.
	(BFD32_LIBS_CFILES): Add compress.c.
	(BFD_H_FILES): Likewise.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* config.in: Add HAVE_ZLIB_H
	* configure.in: Add test for libz and zlib.h
	* configure: Regenerate.
	* dwarf2.c (read_section): New function.
	(read_indirect_string): Call new function read_section.
	(read_abbrevs): Likewise.
	(decode_line_info): Likewise.
	(read_debug_ranges): Likewise.
	(find_line): Call new function read_section when just one
	.zdebug_info section is found, otherwise read and compress
	multiple sections.
	(_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.
	* elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.
	(special_sections_z): New struct.
	(special_sections): Refer to special_sections_z.
	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize
	sections named .zdebug_*.
	(_bfd_mips_elf_fake_sections): Likewise.
	* compress.c: New file.
	(bfd_uncompress_section_contents): New function.

2008-07-07  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in
	the presence of a PLT.

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

	* bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.

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

	* elf32-ppc.c (is_pic_glink_stub): New function.
	(ppc_elf_get_synthetic_symtab): Don't generate symbols when
	multiple shared/pie stubs per plt entry.

2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf.c (_bfd_elf_get_synthetic_symtab): Increment p by
	bed->s->int_rels_per_ext_rel.

2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* syms.c (BSF_SYNTHETIC): New flag.
	* elf.c (_bfd_elf_get_synthetic_symtab): Set it.
	* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
	* bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
	for synthetic symbols.
	* bfd-in2.h: Regenerate.

2008-06-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
	Expand comments.
	(arm_map_one_stub): Use | 1 when setting the low bit.

2008-06-29  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
	addend on _GLOBAL_OFFSET_TABLE_.

2008-06-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (STUB_ENTRY_NAME): Define.
	(arm_thumb_thumb_long_branch_stub): Use bx instead of b.n.
	(arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of
	R_ARM_ABS32.
	(struct elf32_arm_stub_hash_entry): Add output_name.
	(arm_build_one_stub): Move offsets into the offset argument
	of _bfd_final_link_relocate.  Correct offset for
	arm_thumb_arm_v4t_stub_long_branch.
	(elf32_arm_size_stubs): Set stub_entry->output_name.
	(elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym.
	Update all callers.
	(elf32_arm_output_stub_sym): New.
	(arm_map_one_stub): Correct formatting.  Use elf32_arm_output_stub_sym.

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

	* elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for
	non-branch insns.

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

	* elf32-spu.c (build_stub): Allow wraparound on stub branches.
	(allocate_spuear_stubs, build_spuear_stubs): Return value from
	count_stub/build_stub.
	(spu_elf_build_stubs): Correct location of stub reloc error message.

2008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD.

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

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

	* elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space.
	(spu_elf_check_vma): Add extra_stack_space param, copy to htab.
	(spu_elf_auto_overlay): Use it.
	(RECURSE_UNMARK): Define as 0.
	(unmark_overlay_section): Heed RECURSE_UNMARK.
	* elf32-spu.h (spu_elf_check_vma): Update prototype.

2008-06-12  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD.

2008-06-09  Paul Brook  <paul@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared
	libraries.

2008-06-09  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_stub_is_thumb): Define.
	(elf32_arm_final_link_relocate): Handle near mode switching stubs.

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

	* elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp
	to stack calculation.

2008-06-06  Paul Brook  <paul@codesourcery.com>

	bfd/
	* elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.

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

	* elf32-spu.c (spu_elf_auto_overlay): Relax requirement that
	file names be unique.  Specify archive:path in overlay script.

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

	PR ld/6590
	* elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets.

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

	* elf.c (ignore_section_sym): Don't test section sym value here.
	(elf_map_symbols): Instead check zero value here as was done prior
	to 2006-05-26 change.

2008-06-04  Nick Clifton  <nickc@redhat.com>

	PR ld/6019
	* elf32-avr.c (elf32_avr_relax_section): Handle the case where
	there are no local symbols.

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

	* elf32-spu.c (get_sym_h): Don't attempt to read global syms.
	(process_stubs): Likewise.
	(discover_functions): Don't used cached symbols.
	(maybe_insert_function): Correct condition under which function
	array is realloc'd.
	(mark_functions_via_relocs): Delete unused variable.

2008-05-30  Frediano Ziglio  <frediano.ziglio@vodafone.com>
	    Nick Clifton  <nickc@redhat.com>

	PR ld/6511
	* elf64-hppa.c (allocate_global_data_opd): Default to using the
	dynamic symbol table for local function names in shared libraries.

2008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf.c (assign_file_positions_for_load_sections): Adjust pre-section
	gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.

2008-05-28  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_object_p): New function.
	(elf_backend_object_p): Define.
	(build_stub): Correct second word of 8 byte overlay stubs.
	(spu_elf_relocate_section): Formatting.

2008-05-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>

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

2008-05-22  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.
	(elf32_arm_stub_add_mapping_symbol): Remove.
	(elf32_arm_add_stub): Don't generate mapping symbols. Change
	prototype.
	(elf32_arm_size_stubs): Use new elf32_arm_add_stub
	prototype. Don't generate thumb to arm glue for calls.
	(arm_map_one_stub): Define.
	(elf32_arm_output_arch_local_syms): Generate mapping symbols for
	long calls stubs.

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

	* elf32-arm.c (group_sections): Reformat comments.

	PR ld/6446
	* elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by
	default (for FDPIC). Clear it if any inter-segment relocations
	are found.

	* elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return
	from elf_link_hash_lookup.

2008-05-21  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Add multi-GOT support for m68k.
	* elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
	glist): New fields.
	(struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
	struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
	struct elf_m68k_multi_got): New data structures.
	(struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
	allow_multigot_p, multi_got_): New fields.
	(elf_m68k_multi_got): New macro.
	(elf_m68k_link_hash_newfunc): Initialize new fields of
	struct elf_m68k_link_hash_entry.
	(elf_m68k_link_hash_table_create): Initialize new fields of
	struct elf_m68k_link_hash_table.
	(elf_m68k_link_hash_table_free): New static function implementing hook.
	(elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
	static functions for struct elf_m68k_got.
	(elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
	elf_m68k_got_entry_eq): New static functions for
	struct elf_m68k_got_entry.
	(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
	ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
	(enum elf_m68k_get_entry_howto): New enum.
	(elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
	elf_m68k_remove_got_entry_type): New static functions for
	struct elf_m68k_got_entry.
	(elf_m68k_add_entry_to_got): New static function.
	(elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
	elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
	functions for struct elf_m68k_bfd2got_entry.
	(struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
	elf_m68k_can_merge_gots): New traversal.
	(struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
	elf_m68k_merge_gots): Ditto.
	(struct elf_m68k_finalize_got_offsets_arg,
	elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
	(struct elf_m68k_partition_multi_got_arg,
	elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
	elf_m68k_partition_multi_got): Ditto.
	(elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
	functions.
	(elf_m68k_copy_indirect_symbol): New static function implementing
	a hook.
	(elf_m68k_check_relocs): Update to add entries to multi-GOT.
	(elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
	(elf_m68k_always_size_sections): Assign BFDs to GOTs.
	(elf_m68k_relocate_section): Update to properly handle GOT relocations.
	(elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
	of a global symbol.
	(bfd_elf_m68k_set_target_options): New function.
	(bfd_elf32_bfd_link_hash_table_free): Define hook.
	(bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
	to skip generic calculation of GOT offsets.
	(elf_backend_copy_indirect_symbol): Define hook.
	* bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
	* bfd-in2.h: Regenerate.

2008-05-21  André Johansen  <andrejoh@gmail.com>

	PR 868
	* dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
	for filenames in function tables and variable tables.

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

	PR 2995, PR 6473
	* elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to
	vma when all p_paddr fields are zero and there is more than
	one PT_LOAD header.

2008-05-15  Christophe Lyon  <christophe.lyon@st.com>

	Add long call support for ARM.
	* elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
	(THM2_MAX_BWD_BRANCH_OFFSET): Define.
	(ARM_MAX_FWD_BRANCH_OFFSET): Define.
	(ARM_MAX_BWD_BRANCH_OFFSET): Define.
	(THM_MAX_FWD_BRANCH_OFFSET): Define.
	(THM_MAX_BWD_BRANCH_OFFSET): Define.
	(arm_long_branch_stub): Define.
	(arm_pic_long_branch_stub): Define.
	(arm_thumb_v4t_long_branch_stub): Define.
	(arm_thumb_thumb_long_branch_stub): Define.
	(arm_thumb_arm_v4t_long_branch_stub): Define.
	(STUB_SUFFIX): Define.
	(elf32_arm_stub_type): Define.
	(elf32_arm_stub_hash_entry): Define.
	(elf32_arm_link_hash_entry): Add stub_cache field.
	(arm_stub_hash_lookup): Define.
	(elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
	add_stub_section, layout_sections_again, stub_group, bfd_count,
	top_index, input_list fields.
	(elf32_arm_link_hash_newfunc): Init new field.
	(stub_hash_newfunc): New function.
	(elf32_arm_link_hash_table_create): Init stub_hash_table.
	(elf32_arm_hash_table_free): New function.
	(arm_type_of_stub): New function.
	(elf32_arm_stub_name): New function.
	(elf32_arm_get_stub_entry): New function.
	(elf32_arm_stub_add_mapping_symbol): New function.
	(elf32_arm_add_stub): New function.
	(arm_build_one_stub): New function.
	(arm_size_one_stub): New function.
	(elf32_arm_setup_section_lists): New function.
	(elf32_arm_next_input_section): New function.
	(group_sections): New function.
	(elf32_arm_size_stubs): New function.
	(elf32_arm_build_stubs): New function.
	(bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
	(bfd_elf32_arm_process_before_allocation): No longer handle
	R_ARM_CALL and R_ARM_THM_CALL.
	(using_thumb_only): New function.
	(elf32_arm_final_link_relocate): Redirect calls to stub if range
	exceeds encoding capabilities.
	(bfd_elf32_bfd_link_hash_table_free): Define.
	* bfd-in.h (R_ARM_max): Fix value to 130.
	(elf32_arm_setup_section_lists): Protype.
	(elf32_arm_next_input_section): Protype.
	(elf32_arm_size_stubs): Protype.
	(elf32_arm_build_stubs): Protype.
	* bfd-in2.h: Regenerate.

2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.

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

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

2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (section_covers_vma): New function.
	(ppc_elf_get_synthetic_symtab): New function.
	(bfd_elf32_get_synthetic_symtab): Define.
	* elf64-ppc.c (section_covers_vma): New function.
	(ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
	table entries, and __glink_PLTresolve on resolver stub.
	(ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.

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

	PR 6443
	* elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
	(must_be_dyn_reloc): New function.
	(ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
	in pies.
	(ppc_elf_tls_optimize): Optimise pies.
	(ppc_elf_relocate_section): Use a section symbol rather than no
	symbol if possible for LD->IE TLS sequence, but don't error if
	we must use no symbol.
	* elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
	(must_be_dyn_reloc): Likewise.
	(ppc64_elf_check_relocs): Likewise.
	(ppc64_elf_tls_optimize): Likewise.
	(ppc64_elf_relocate_section): Likewise.

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

	* elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.

2008-05-10  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* elfcore.h (elf_core_file_p): Warn about core truncation.

2008-05-07  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (xtensa_property_section_name): New.
	(xtensa_make_property_section): New.
	(xtensa_get_property_section): Make static.  Do not create a new
	section if it does not exist.

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

	* elf32-spu.c (spu_elf_special_sections): Add "._ea".
	(spu_elf_relocate_section): Handle relocations against symbols
	defined in ._ea specially.

2008-05-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
	ARRAY_SIZE.
	(elf32_arm_symbian_plt_sym_val): New.
	(elf_backend_plt_sym_val): Define.

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

	PR 2995, PR 6473
	* elf.c (rewrite_elf_program_header): Rather than clearing
	p_paddr_valid at end, don't set it in the first place.  Delete
	comment no longer relevant.  When not p_paddr_valid, don't set
	paddr from vaddr, and don't set p_vaddr_offset.

2008-05-01  Cary Coutant  <ccoutant@google.com>

	* elf.c (bfd_elf_get_str_section): Fix memory leak caused by
	corrupt string table.

2008-05-01  Joel Brobecker  <brobecker@adacore.com>

	* cache.c (cache_bread_1): Renames cache_bread.
	(cache_bread): New function.

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

	PR 2995, PR 6473
	* elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
	(assign_file_positions_for_load_sections): Combine nested "if".
	(copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
	when all header p_paddr fields are zero.

2008-04-30  Edmar Wienskoski  <edmar@freescale.com>

	* cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.

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

	* elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
	(_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
	even if they are not loaded.
	* elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
	first.

2008-04-25  Jay Foad  <jay.foad@gmail.com>

	* reloc16.c (bfd_coff_reloc16_get_value): Add support for
	undefined weak symbols.

2008-04-25  Nick Clifton  <nickc@redhat.com>

	* po/vi.po: Updated Vietnamese translation.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-04-21  Cary Coutant  <ccoutant@google.com>

	* archive.c (_bfd_write_archive_contents): Fix incorrect use of
	ARFMAG.

2008-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
	set the value of undefined symbols in shared objects.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
	undefined symbols unless pointer equality is needed.

2008-04-18  Dennis Roberts  <dennis.roberts@sunquestinfo.com>

	* aix5ppc-core.c: Define macros for the default architecture and
	machine for matching core files.
	(xcoff64_core_p): Set the architecture and machine to the default
	values defined in the macros mentioned above.
	* rs6000-core.c: Define macros to determine whether or not the
	core file header uses the core_dumpxx header format.
	(rs6000coff_core_p): Don't match core files that use the
	core_dumpxx header format.

2008-04-16  Pedro Alves  <pedro@codesourcery.com>

	* config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.

2008-04-16  David S. Miller  <davem@davemloft.net>

	* reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
	BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
	BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
	* libbfd.h: Regnerate.
	* bfd-in2.h: Regenerate.
	* elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
	GOTDATA relocations.
	(sparc_reloc_map): Likewise.
	(_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
	R_SPARC_GOT*.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
	R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
	R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
	Simply ignore R_SPARC_GOTDATA_OP relocations.

2008-04-14  Aurelien Jarno  <aurelien@aurel32.net>

	* configure.in: Link with the PIC version of libiberty on
	Linux/MIPS hosts.
	* configure: Regenerate.

2008-04-14  Edmar Wienskoski  <edmar@freescale.com>

	* archures.c: Add bfd_mach_ppc_e500mc.
	* bfd-in2.h: Regenerate.

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

	* elf32-spu.c (spu_elf_build_stubs): Correct error message.
	(mark_functions_via_relocs): Remove premature init of symtab_hdr.
	(collect_overlays): Commment typo fix.

2008-04-08  Kees Cook  <kees@canonical.com>

	* elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
	in EXEC_P bfds.

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

	* elf32-spu.c: Include libiberty.h.
	(struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
	non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
	spu_elf_relink, auto_overlay fields.
	(AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
	(needs_ovl_stub): Flip test so that call to non-function warning
	is emitted during relocate_section rather than earlier.
	(spu_elf_check_vma): Stash --auto-overlay parameters, and clear
	auto_overlay if no section exceeds local store.
	(struct call_info): Add count, max_depth, is_pasted fields.
	(struct function_info): Add rodata, last_caller, call_count,
	depth, new visit flags.
	(insert_callee): Increment call count.
	(copy_callee): New function.
	(mark_functions_via_relocs): Investigate all reloc types to count
	possible function pointer stubs for --auto-overlay.  Track
	last_caller and increment function call_count.
	(pasted_function): Insert a "call" into call info for pasted section.
	(remove_cycles): Track max depth of calls.  Don't emit call graph
	pruning warning for --auto-overlay.
	(build_call_tree): Don't transfer_calls for --auto-overlay.
	Adjust remove_cycles call.
	(sort_calls, sort_lib, sort_bfds): New functions.
	(struct _mos_param, struct _uos_param, struct _cl_param): New.
	(mark_overlay_section, unmark_overlay_section): New functions.
	(collect_lib_sectios, auto_ovl_lib_functions): New functions.
	(collect_overlays, find_pasted_call): New functions.
	(sum_stack): Deal with is_pasted "calls".  Exit before printing
	when --auto-overlay.
	(spu_elf_auto_overlay): New function.
	(spu_elf_final_link): Call spu_elf_auto_overlay.
	* elf32-spu.h (spu_elf_check_vma): Update prototype.

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

	* elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
	is defined in overlay section before creating a stub.
	(build_spuear_stubs): Likewise.
	(spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.

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

	* elf32-spu.c (insert_callee): Reorder call list so most recent
	call is always first.
	(interesting_section): Move.
	(mark_functions_via_relocs): Fold interesting_section and
	reloc_count tests in callers to here.  Simplify output section
	owner test.
	(discover_functions): Set "gaps" when no symbols and some
	"interesting_section".  Run pasted_function loop for no symbol
	bfds.
	(for_each_node, transfer_calls): New functions.
	(mark_non_root): Adjust to suit for_each_node.
	(call_graph_traverse): Likewise.  Fix memory leak.  Rename to..
	(remove_cycles): ..this.
	(build_call_tree): Use for_each_node and transfer_calls.
	(struct _sum_stack_param): New.
	(sum_stack): Adjust to suit for_each_node.  Return error on
	malloc failure.  Move code to print root node cumulative stack from..
	(spu_elf_stack_analysis): ..here.  Use for_each_node.

2008-03-31  Cary Coutant  <ccoutant@google.com>

	PR 6006
	* archive.c (_bfd_slurp_extended_name_table): Change
	ARFMAG[0] to ARFMAG[1].
	(_bfd_construct_extended_name_table): Likewise.

2008-03-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
	(_bfd_mips_elf_check_relocs): Update comments.  Always call
	mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.

2008-03-27  Cary Coutant  <ccoutant@google.com>

	Add support for thin archives.
	* archive.c (_bfd_find_nested_archive): New function.
	(get_extended_arelt_filename): Add origin parameter.
	(_bfd_generic_read_ar_hdr_mag): Deal with extended name
	combined with a file offset.
	(append_relative_path): New function.
	(_bfd_get_elt_at_filepos): Deal with external members and
	nested archives.
	(bfd_generic_openr_next_archived_file): Thin archives.
	(bfd_generic_archive_p): Recognize new magic string.
	(adjust_relative_path): New function.
	(_bfd_construct_extended_name_table): Construct extended
	names for thin archive members.
	(_bfd_write_archive_contents): Emit new magic string, skip
	copying files for thin archives.
	* bfd-in.h (bfd_is_thin_archive): New macro.
	* bfd.c (struct bfd): New fields for thin archives.
	* libbfd-in.h (struct areltdata): New field for thin archives.
	* opncls.c (bfd_close): Delete BFDs for nested archives.

2008-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
	_bfd_final_link_relocate that also handles R_pcrel24 relocs.
	(bfinfdpic_relocate_section, bfin_relocate_section): Use it.

2008-03-25  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
	in vxworks tls_vars sections.
	(allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
	* elf32-i386.c (allocate_dynrelocs,
	elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
	* elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
	ppc_elf_relocate_section): Likewise.
	* elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
	sh_elf_relocate_section): Likewise.
	* elfxx-sparc.c (allocate_dynrelocs,
	_bfd_sparc_elf_size_dynamic_sections,
	_bfd_sparc_elf_relocate_section): Likewise.

2008-03-21  Adam Nemet  <anemet@caviumnetworks.com>

	* elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
	print the values from the dynamic section.

2008-03-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
	(_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.

2008-03-20  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
	(spu_elf_find_overlays, spu_elf_size_stubs): Likewise
	(process_stubs, discover_functions, build_call_tree): Likewise.
	(spu_elf_stack_analysis): Likewise.
	(spu_elf_check_vma): Likewise.  Move.
	(struct call_info): Make "is_tail" a bitfield.
	(insert_callee): Clear fun->start and set fun->is_func if we find
	a non-tail call.
	* elf32-spu.h (spu_elf_create_sections): Update prototype.
	(spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.

2008-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* Makefile.in: Likewise.

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

	PR ld/5789
	PR ld/5943
	* elf32-i386.c  (elf_i386_relocate_section): Issue an error
	for R_386_GOTOFF relocaton against undefined hidden/internal
	symbols when building a shared object.

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
	error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
	relocaton against undefined hidden/internal symbols when
	building a shared object.
	(elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
	is referenced locally, but isn't defined in a regular file.

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

	* bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
	HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
	BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
	HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
	* bfd.c: Here.

	* bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
	mtime_set, no_export, output_has_begun and has_armap to bit
	field.

	* bfd-in2.h: Regenerated.

2008-03-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* cache.c (close_one): Remove mtime hack.

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

	PR ld/5913
	* elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
	(elfNN_ia64_dtprel_base): Likewise.
	(elfNN_ia64_relocate_section): Go to missing_tls_sec if
	tls_sec is NULL before calling elfNN_ia64_tprel_base or
	elfNN_ia64_dtprel_base.  Report unsupported TLS relocations.

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

	* elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
	common code to..
	(maybe_needs_stub): ..here, a new function that also omits stubs
	for .eh_frame, and..
	(needs_ovl_stub): ..here.  Create stubs for labels in code section
	referenced by switch jump table.
	(spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
	(enum _insn_type): Delete.
	(enum _stub_type): New.
	(count_stub, build_stub): Adjust.
	(allocate_spuear_stubs, build_spuear_stubs): Adjust.

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

	* elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
	(_bfd_elf_assign_file_position_for_section): Simplify align.
	(_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
	for sh_addralign.
	(elf_fake_sections, swap_out_syms): Likewise.
	* elflink.c (bfd_elf_final_link): Likewise.

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

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

2008-03-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Jie Zhang <jie.zhang@analog.com>
	* elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
	gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
	gotoff, call and sym not bitfields.
	(bfinfdpic_gc_sweep_hook): New function; update the relocation
	information for the relocations of the section being removed.
	(bfinfdpic_check_relocs): Accumulate the number of relocations
	which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
	fdgoffhilo, gotoff, call and sym fields.
	(elf_backend_gc_sweep_hook): Redefine for FD-PIC.

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

	PR 5900
	* elf-bfd.h: Include elf/internal.h after elf/external.h.
	* elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
	(elf_swap_symbol_out): Adjust SHN_XINDEX test.
	(elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
	seen in external structs.
	(valid_section_index_p): Delete.
	(elf_object_p): Don't increment section numbers over reserved range.
	Simplify test for valid sh_link, sh_info and e_shstrndx fields.
	(elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
	seen in external structs.  Don't increment section numbers over
	reserved range.
	* elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
	(bfd_section_from_shdr): Likewise.
	(group_signature): Range check before accessing elf_elfsections.
	(_bfd_elf_setup_sections): Likewise.
	(bfd_section_from_shdr): Likewise.
	(bfd_section_from_shdr): Don't increment section number over
	reserved sections.
	(assign_file_positions_for_non_load_sections): Likewise.
	(assign_file_positions_except_relocs): Likewise.
	(_bfd_elf_write_object_contents): Likewise.
	(assign_section_numbers): Likewise.  Adjust for changed SHN_*.
	(prep_headers): Delete unused variable.
	* elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
	for changed SHN_* values.
	(check_dynsym, elf_link_input_bfd): Likewise.
	(bfd_elf_final_link): Likewise.  Don't skip over reserved section
	range.
	(elf_fixup_link_order): Check that sh_link field is valid.
	* elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
	* elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
	accesssing elf_elfsections.
	* elf32-avr.c (elf32_avr_size_stubs): Likewise.
	* elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
	SHN_* defines.  Test for SHN_BAD return from
	_bfd_elf_section_from_bfd_section

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

	* elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
	* elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
	SHN_BAD on error.
	(_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
	_bfd_elf_section_from_bfd_section, not -1.
	(swap_out_syms): Likewise.
	* elflink.c (elf_link_add_object_symbols): Likewise.
	(bfd_elf_get_bfd_needed_list): Likewise.
	(bfd_elf_match_symbols_in_sections): Likewise.
	(elf_link_add_object_symbols): Don't bother testing for symbols
	using normal sections before calling bfd_section_from_elf_index.
	(elf_link_input_bfd, bfd_elf_final_link): Likewise.
	(bfd_elf_reloc_symbol_deleted_p): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Likewise.
	* elf32-spu.c (get_sym_h): Likewise.
	* elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
	* elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.

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

	* elf32-spu.c (spu_elf_relocate_section): Test identical conditions
	to those in process_stubs for overlay symbols.

2008-03-09  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
	Tag_VFP_arch values.

2008-03-08  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (insert_thumb_branch): Rewrite.
	(elf32_thumb_to_arm_stub): Use new insert_thumb_branch.

2008-03-07  Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
	MOVT relocations.
	(elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
	extension.
	(elf32_arm_relocate_section): Handle MOVW and MOVT
	relocations.  Improve safety check for other weird relocations.
	(elf32_arm_check_relocs): Only set h->needs_plt for branch/call
	relocations.

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

	* xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
	only compute its value once.

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

	* elf32-spu.c (struct got_entry): Add "addend" field.
	(count_stub, build_stub): Use a new stub if relocation addend
	differs from existing stubs for this symbol.
	(process_stubs): Deal with addends.
	(spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.

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

	PR ld/5789
	* elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
	for hidden and local symbols.

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

	* elf32-ppc.c (allocate_dynrelocs): Discard relocs on
	undefined symbols with internal or hidden visibility.
	(ppc_elf_relocate_section): Likewise.  Use SYMBOL_CALLS_LOCAL
	rather than SYMBOL_REFERENCES_LOCAL on branches.  Don't
	return immediately on dynamic reloc error.

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

	* elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
	if emitrelocations.
	(get_relocs): New function, split out from..
	(ppc_build_one_stub): ..here.  Add relocs on plt_branch stubs if
	emitrelocations.  Remove indx temp.
	(ppc_size_one_stub): Count new stub relocs.
	(ppc64_elf_size_stubs): Count new glink reloc.
	(ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
	(ppc64_elf_finish_dynamic_sections): Output glink relocs.
	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
	glink code.

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

	* elf32-spu.c (mark_functions_via_relocs): Don't assume that
	the "->start" pointer reaches to function origin, so that we
	can handle functions split over more than two sections.
	(build_call_tree): Likewise.
	(pasted_function): Don't attempt to set fun->start back to the
	function origin, just go back one section.

2008-02-27  Catherine Moore  <clm@codesourcery.com>

	* elf.c ( _bfd_elf_print_private_bfd_data): Call
	elf_backend_get_target_dtag if defined.
	* elf32-mips.c (elf_backend_get_target_dtag): Define.
	* elf64-mips.c: Likewise.
	* elfn32-mips.c: Likewise.
	* elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
	* elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
	* elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
	* elfxx-target.h (elf_backend_get_target_dtag): Add default.
	(elf_backend_data): Add elf_backend_get_target_dtag.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
	for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
	and assume branch relocs are not dynamic when non-shared.
	(readonly_dynrelocs): New function, split out from..
	(maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
	(ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
	clear non_got_ref..
	(allocate_dynrelocs): ..and don't set u.def for undefined weak.
	Do allow dynamic relocs on undefined symbols.
	(ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
	(ppc_elf_relocate_section): Mirror dynamic reloc changes in
	check_relocs.
	(ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
	plt symbols needing pointer_equality_needed.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.

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

	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
	pointer_equality_needed.
	(ppc_elf_check_relocs): Split out non-branch relocs from others
	that might emit dynamic relocs.  Set pointer_equality_needed
	for their symbols.  Don't set non_got_ref on branch reloc symbols.
	(ppc_elf_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.
	(ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
	Error if pointer_equality_needed on weak plt symbol.

2008-02-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5788
	* elflink.c (elf_create_symbuf): Correct buffer size and
	position.

2008-02-22  Nick Clifton  <nickc@redhat.com>

	PR 868
	* dwarf2.c: Revert previous patch.  All of the allocate memory is
	on an obstack which will be freed at some other time.

2008-02-20  Nick Clifton  <nickc@redhat.com>

	PR 868
	* libbfd.c (bfd_realloc_or_free): New function.  Performs like
	bfd_realloc, but if the (re)allocation fails, the pointer is
	freed.
	* libbfd-in.h: Prototype.
	* libbfd.h: Regenerate.
	* bfdio.c (bfd_bwrite): Use the new function.
	(bfd_seek): Likewise.
	* bfdwin.c:(bfd_get_file_window): Likewise.
	* elf-strtab.c (_bfd_elf_strtab_add): Likewise.
	* elf32-ppc.c (ppc_elf_relax_section): Likewise.
	* elf32-xtensa.c (vsprintf_msg): Likewise.
	* mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
	* stabs.c (_bfd_link_seciton_stabs): Likewise.
	* vms-misc.c (_bfd_vms_get_record): Likewise.
	* vms-tir.c (check_section): Likewise.
	* vms.c (vms_new_section_hook): Likewise.
	* elf32-arm.c (elf32_arm_section_map_add): Check that the
	allocation of sec_data->map succeeded before using it.
	* elflink.c (elf_link_output_sym): Do not overwrite finfo->
	symshndxbuf until it is known that the reallocation succeeded.

2008-02-20  Diogo de Carvalho Kraemer  <diogo@kraemer.eng.br>
	    Nick Clifton  <nickc@redhat.com>

	PR 868
	* dwarf2.c (read_abbrevs): Free the abbreviation table if we run
	out of memory.
	(decode_line_info): Free the line_info_table before returning a
	failure result.
	(_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
	Free the line table.  Free the function table.  Free the variable
	table.

2008-02-17  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (swap_out_syms): Avoid preprocessing directive within
	macro arg.

2008-02-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf.c (assign_file_positions_for_load_sections): Set the type of
	PT_NOTE sections to SHT_NOTE.

2008-02-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* simple.c (bfd_simple_get_relocated_section_contents): Set
	link_info.output_bfd.

2008-02-16  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf2.c (find_line): Don't trust debug information after an
	unparseable compilation unit.

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

	PR 5765
	* section.c (SEC_LINK_DUPLICATES): Correct.  Renumber following flags.
	* bfd-in2.h: Regenerate.

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

	* elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
	* elf.c (bfd_elf_allocate_object): Don't check for already allocated
	tdata.
	* elf32-hppa.c (elf32_hppa_mkobject): New function.
	(bfd_elf32_mkobject): Define.
	* elf32-ppc.c (is_ppc_elf_target): Delete.  Replace all uses with..
	(is_ppc_elf): ..this new macro.
	* elf64-ppc.c (is_ppc64_elf_target): Delete.  Replace all uses with..
	(is_ppc64_elf): ..this new macro.

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

	* elflink.c: Replace all accesses to hash->creator field with
	output_bfd->xvec.
	* cofflink.c: Likewise.
	* coff-h8300.c: Likewise.
	* ecoff.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elfxx-mips.c: Likewise.
	* i386linux.c: Likewise.
	* m68klinux.c: Likewise.
	* sparclinux.c: Likewise.
	* sunos.c: Likewise.
	* xcofflink.c: Likewise.
	* linker.c: Likewise.
	(_bfd_link_hash_table_init): Don't store creator.

2008-02-14  Peter Jones  <pjones@redhat.com>

	* efi-rtdrv-ia32.c: New file.
	* efi-bsdrv-ia32.c: New file.
	* efi-rtdrv-ia64.c: New file.
	* efi-bsdrv-ia64.c: New file.
	* efi-rtdrv-x86_64.c: New file.
	* efi-bsdrv-x86_64.c: New file.
	* peicode.h (pe_bfd_object_p): Add support for boot service and
	runtime service drivers.
	* libpei.h: Add macros for EFI formats, and rename the efi application
	format macros to disambiguate.
	* targets.c: Add bfd_target _vec externs.
	(_bfd_tar): Add EFI _vec entries.
	* config.bfd: Add EFI vectors into the selection routines.
	* configure.in: add EFI _vec entries.
	* configure: Regenerate.
	* Makefile.am: Add EFI files.
	* Makefile.in: Regenerate.

2008-02-14  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf1.c (struct dwarf1_debug): Add syms member.
	(alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
	(parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
	section contents, check for out of memory.

	* dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
	(parse_die): Change data pointers to bfd_byte.
	(parse_line_table, parse_functions_in_unit): Likewise.

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

	* elflink.c (compute_bucket_count): Warning fixes.

2008-02-12  DJ Delorie  <dj@redhat.com>

	* elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
	relocation pointing to local symbol in merged section.

	* elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
	(iq2000_elf_relocate_section): Call it.

2008-02-12  Nick Clifton  <nickc@redhat.com>

	PR ld/5692
	* elf-bfd.h (enum elf_object_id): New enum, used to identify
	target specific extensions to the elf_obj_tdata structure.
	(struct elf_obj_tdata): New field 'object_id'.
	(elf_object_id, elf_program_header_size, elf_symtab_hdr): New
	macros for accessing fields in the elf_obj_tdata structure.
	(bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
	(bfd_elf_allocate_object): New function.
	* elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
	and implement by calling bfd_elf_allocate_object.
	(bfd_elf_allocate_object): New function: Allocates an
	elf_obj_tdata structure, possibly with a target specific
	extension.
	* elfxx-target.h (bfd_elfNN_mkobject): Use
	bfd_elf_make_generic_object as the default value.
	* elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
	for consistency with other, similar structures.
	(is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
	ELF bfd.
	(elf32_arm_mkobject): Call bfd_elf_allocate_object.
	(bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
	the bfd being processed.
	(bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
	(bfd_elf32_arm_set_target_relocs): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_copy_private_bfd_data): Likewise.
	(bfd_elf32_arm_merge_eabi_attributes): Likewise.
	(bfd_elf32_arm_merge_private_bfd_data): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_gc_mark_extra_sections): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	(bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
	(bfd_elf32_arm_init_maps): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_relocate_section): Likewise.
	(bfd_elf32_arm_gc_sweep_hook): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	* elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
	(is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
	ELF bfd.
	(elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
	being processed.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_check_relocs): Use elf_symtab_hdr.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
	(elf_create_pointer_linker_section): Use is_ppc_elf_target to
	verify that the bfd before accessing target specific fields.
	(ppc_elf_check_relocs): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	(elf_create_pointer_linker_section): Use elf_symtab_hdr.
	(ppc_elf_check_relocs): Likewise.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_tls_optimize): Likewise.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf64-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
	ELF bfd.
	(sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
	bfd being processed.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_copy_private_data): Likewise.
	(sh_elf_relax_section): Use elf_symtab_hdr.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	(sh_elf_gc_sweep_hook): Likewise.
	(sh_elf_check_relocs): Likewise.
	* elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
	(is_alpha_elf): New macro.  Checks a BFD to make sure that is an
	Alpha ELF bfd.
	(elf64_alpha_create_got_section): Use is_alpha_elf macro to check
	the bfd being processed.
	(elf64_alpha_create_dynamic_section): Likewise.
	(elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_size_got_sections): Likewise.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	(elf64_alpha_final_link): Likewise.
	(elf64_alpha_check_relocs): Use elf_symtab_hdr.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section_r): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
	(ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
	being processed.
	(opd_entry_value): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	(ppc64_elf_check_relocs): Use elf_symtab_hdr.
	(opd_entry_value): Likewise.
	(ppc64_elf_gc_sweep_hook): Likewise.
	(get_sym_h): Likewise.
	(ppc64_elf_edit_opd): Likewise.
	(ppc64_elf_tls_optimize): Likewise.
	(ppc64_elf_edit_toc): Likewise.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(toc_adjusting_stub_needed): Likewise.
	(ppc64_elf_size_stubs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf32-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	* elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
	(is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
	x86_64 ELF bfd.
	(elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
	being processed.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_check_relocs): Use elf_symtab_hdr.
	(elf64_x86_64_gc_sweep_hook): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
	ELF bfd.
	(_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
	bfd being processed.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_relocate_section): Likewise.

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

	PR 5303, 5755
	* arange-set.c: Delete.
	* arange-set.h: Delete.
	* dwarf2.c: Revert 2007-09-21 changes.
	* Makefile.am: Likewise.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2008-02-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
	if necessary.
	(elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
	mismatches are detected.

	* elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
	emit invalid relocs or rofixup entries for deleted .eh_frame entries.

2008-02-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* cache.c (cache_bread): Set bfd_error_file_truncated if EOF
	was reached.
	* srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.

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

	* elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
	of _ovly_buf_table size.
	(spu_elf_build_stubs): Use low bit of .size as "present" bit.
	Adjust initialisations relating to _ovly_buf_table.

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

	* elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
	relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
	relocations against dynamic symbols.
	(elf_xtensa_finish_dynamic_sections): Do not fail if there is no
	.xt.lit section.

2008-02-04  Kai Tietz  <kai.tietz@onevision.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR 5715
	* warning.m4: Enable -Wno-format by default when using gcc on
	mingw.
	* configure: Regenerated.

2008-02-04  Adam Nemet  <anemet@caviumnetworks.com>

	* archures.c: Update copyright.
	(bfd_mach_mips_octeon): New macro.
	* bfd-in2.h: Regenerate.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
	(mips_set_isa_flags): Likewise.
	(mips_mach_extensions): Add Octeon.
	* cpu-mips.c: Update copyright.
	(I_mipsocteon): New enum constant.
	(arch_info_struct): Add Octeon.

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

	* elf32-spu.c (spu_elf_relocate_section): Correct return type.
	Return error status on unexpected relocation errors.

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

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
	on non-ELF input.
	* elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
	processing on non-ELF input.

2008-01-31  Marc Gauthier  <marc@tensilica.com>

	* config.bfd (xtensa*-*-*): Recognize processor variants.

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

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Check the return value of
	get_elf_backend_data.

2008-01-28  Fabian Groffen  <grobian@gentoo.org>

	* config.bfd (x86_64-*-solaris2): Add support for this target.

2008-01-28  Alan Modra  <amodra@bigpond.net.au>

	Rewrite SPU overlay handling code.  Put overlay calls stubs in the
	overlays where possible.  Use a faster call stub, or optionally at
	compile time, a more compact stub.  Double size of _ovly_buf_table
	so that low bit of _ovly_table.buf can be used as a "present" bit.
	Reserve an extra _ovly_table entry for index zero.
	* elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
	add new ones.
	(struct got_entry): New.
	(struct spu_stub_hash_entry): Delete.
	(stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
	(spu_elf_link_hash_table_create): Adjust for struct changes.
	(spu_stub_name): Delete.
	(spu_elf_find_overlays): Don't track sections from overlay regions.
	Instead set ovl_buf number in spu elf section data.  Error if
	overlays in one region don't start at the same address.  Adjust
	for struct _spu_elf_section_data changes.
	(SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
	(OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
	(needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
	(enum _insn_type): New.
	(count_stub, build_stub): New functions.
	(allocate_spuear_stubs): Use count_stub.
	(build_spuear_stubs): Use build_stub.
	(populate_stubs, sort_stubs): Delete.
	(process_stubs): New function.
	(write_one_stub): Delete.
	(spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
	(alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
	(maybe_insert_function, check_function_ranges): Likewise.
	(find_function, pasted_function, build_call_tree): Likewise.
	(spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
	(spu_elf_modify_program_headers): Likewise.
	(interesting_section): Detect stub sections differently.  Delete
	htab param, adjust all callers.
	(spu_elf_relocate_section): Rewrite stub handling.
	(spu_elf_output_symbol_hook): Likewise.
	(bfd_elf32_bfd_link_hash_table_free): Delete.
	* elf32-spu.h (struct _spu_elf_section_data): Move input-only and
	output-only fields into a union.  Add ovl_buf.
	(spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.

2008-01-25  Kai Tietz  <kai.tietz@onevision.com>

	* bfd-in.h: Add mingw I64 support.
	* bfd-in2.h: Regenerated.
	* bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	PR 4453
	* format.c (bfd_check_format_matches): Don't accept archives as
	fully matching unless they have a map.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_link_output_relocs): Correct error return.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* ecoff.c (_bfd_ecoff_archive_p): Delete.
	* libecoff.h (_bfd_ecoff_archive_p): Delete.
	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
	(ecoff_biglittle_vec): Likewise.

2008-01-19  Alan Modra  <amodra@bigpond.net.au>

	PR 5646
	* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
	non-NULL before dereferencing.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	PR 5604
	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
	names from others.
	(_bfd_elf_gc_keep): Declare.
	* elfxx-target.h (elf_backend_gc_keep): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_gc_keep): New function.
	(bfd_elf_gc_sections): Call gc_keep.
	* elf64-ppc.c (elf_backend_gc_keep): Define.
	(struct _ppc64_elf_section_data): Move .opd related fields to
	a struct so they don't occupy the same storage.  Adjust accesses
	throughout file.
	(ppc64_elf_gc_keep): New function, split out from..
	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
	to mark .opd section, just set gc_mark.
	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
	unless we are changing .opd.  Test non-NULL opd->adjust at all
	accesses throughout file.
	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (BFD_HOST_LONG_LONG): Delete.
	* bfd-in2.h: Regenerate.

2008-01-11  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
	relocatable.
	* 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-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
	or executable output with relocations.

2008-01-09  Nick Clifton  <nickc@redhat.com>

	PR gas/5552
	* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
	to FALSE for all relocs.

2008-01-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR ld/5526
	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
	(eh_frame_sec_info): Add a cies field.
	(eh_frame_hdr_info): Add a merge_cies field.
	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
	union.
	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
	of hdr_info->cies.
	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
	cie structures in all cases and use it instead of extended_cies.
	If merging, store the cie array in sec_info->cies and point each
	CIE's eh_fde_cie at the associated element.  Do not try to
	calculate the value of the personality routine here; record the
	offset of the relocation instead.  Do not merge CIEs here.
	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
	(find_merged_cie): New function.
	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.

2008-01-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/5535
	* vms.c (vms_close_and_cleanup): Check for the presence of a
	vms_private_data_struct before examining any of its fields.

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

	PR ld/5522
	* elflink.c (elf_link_input_bfd): Don't write out a section if
	its output section is marked with SEC_NEVER_LOAD.

For older changes see ChangeLog-2007

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
