2009-12-31  Cary Coutant  <ccoutant@google.com>

	* dwarf2.c (struct line_sequence): New struct.
	(struct line_info_table): Add num_sequences, remove last_line,
	add sequences.
	(add_line_info): Add new sequences as necessary.
	(compare_sequences): New function.
	(sort_line_sequences): New function.
	(decode_line_info): Initialize new fields in line table.
	Call sort_line_sequences.
	(lookup_address_in_line_info_table): Binary search for proper
	sequence.

2009-12-28  Daniel Gutson  <dgutson@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): limits
	fixed.

2009-12-28  Daniel Gutson  <dgutson@codesourcery.com>

	* elf-attrs.c (_bfd_elf_merge_object_attributes): Error
	message rephrased.

2009-12-21  Alan Modra  <amodra@gmail.com>

	* elf64-ppc.c: Delete my email address.

2009-12-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf.c (elfcore_grok_s390_high_gprs): New function.
	(elfcore_grok_note): Handle NT_S390_HIGH_GPRS notes.
	(elfcore_write_s390_high_gprs): New function.
	(elfcore_write_register_note): Call it.

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

	PR ld/11088
	* elf32-ppc.c (update_plt_info): Clear sec here when addend is
	less than 32768..
	(ppc_elf_check_relocs): ..rather than doing so here.  Ignore new
	relax relocs.
	(ppc_elf_gc_sweep_hook): Don't segfault when symbol hiding has
	removed plt_entry records.
	(ppc_elf_tls_setup): Handle PIE calls to __tls_get_addr correctly.
	(ppc_elf_tls_optimize): Likewise.  Also dec __tls_get_addr refcount
	when optimizing code using new tlsgd and tlsld marker relocs.
	(ppc_elf_relax_section): Differentiate relaxed PLTREL24 relocs
	from ADDR24 relocs using plt or glink.  Don't clear the addend
	for R_PPC_RELAX_PLTREL24.
	(ppc_elf_relocate_section): Correctly handle addends on relaxed
	PLTREL24 relocs.

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

	PR ld/11088
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Don't abort if symbol
	hiding has nulled out plt.plist.

2009-12-15  H.J. Lu  <hongjiu.lu@intel.com>

	* opncls.c (bfd_opnr_iovec): Replace _XXX with XXX_P in
	parameters.

	* tekhex.c (pass_over): Replace eof with is_eof.

2009-12-15  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h (bfd_mach_o_uuid_command): Remove section field.
	* mach-o.c (bfd_mach_o_scan_read_uuid): Do not create a section
	from this command.

2009-12-15  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (struct mach_o_section_name_xlat): Add flags field.
	(dwarf_section_names_xlat): Add section flags.
	(text_section_names_xlat): Ditto.
	(data_section_names_xlat): Ditto.
	(bfd_mach_o_convert_section_name_to_bfd): Now return name and section
	flags by reference.
	(bfd_mach_o_make_bfd_section): Use section flags when know, otherwise
	try to guess.

2009-12-14  Doug Kwan  <dougkwan@google.com>

	* opncls.c (bfd_opnr_iovec): Rename parameters to avoid shawdowed
	variable warnings.
	* bfd-in2.h: Regnenerate.

2009-12-12  Nick Clifton  <nickc@redhat.com>

	* coff-arm.c (coff_arm_rtype_to_howto): Fix shadowed variable
	warning.

2009-12-11  Tristan Gingold  <gingold@adacore.com>

	* som.c (bfd_som_set_subsection_attributes)
	(bfd_section_from_som_symbol, som_reloc_queue_fix): Fix shadowed
	variable warnings.
	* cache.c (close_one): Likewise.

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

	* warning.m4 (GCC_WARN_CFLAGS): Add -Wshadow.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* aout-arm.c: Fix shadowed variable warnings.
	* aout-tic30.c: Likewise.
	* aoutx.h: Likewise.
	* archive.c: Likewise.
	* coff-alpha.c: Likewise.
	* coff-i386.c: Likewise.
	* coff-x86_64.c: Likewise.
	* coffgen.c: Likewise.
	* dwarf2.c: Likewise.
	* ecoff.c: Likewise.
	* elf-eh-frame.c: Likewise.
	* elf-m10300.c: Likewise.
	* elf.c: Likewise.
	* elf32-arm.c: Likewise.
	* elf32-avr.c: Likewise.
	* elf32-bfin.c: Likewise.
	* elf32-cr16.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-lm32.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-microblaze.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-rx.c: Likewise.
	* elf32-score.c: Likewise.
	* elf32-score7.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-spu.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elflink.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* elfxx-sparc.c: Likewise.
	* hash.c: Likewise.
	* ieee.c: Likewise.
	* libbfd.c: Likewise.
	* mach-o.c: Likewise.
	* merge.c: Likewise.
	* nlm32-sparc.c: Likewise.
	* oasys.c: Likewise.
	* opncls.c: Likewise.
	* pdp11.c: Likewise.
	* peXXigen.c: Likewise.
	* pef.c: Likewise.
	* versados.c: Likewise.
	* vms-gsd.c: Likewise.
	* vms-hdr.c: Likewise.
	* vms-tir.c: Likewise.
	* vms.c: Likewise.
	* xcofflink.c: Likewise.
	* xsym.c: Likewise.
	* xtensa-isa.c: Likewise.

2009-12-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Correct handling
	of undefined symbols.

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

	* elf32-arm.c (elf32_arm_next_input_section): Skip sections without
	SEC_CODE.

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

	* elf.c (write_zeros): New function.
	(assign_file_positions_for_load_sections): Allocate file space for
	NOBITS sections that are followed by PROGBITS sections in a segment.

2009-12-03  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_make_bfd_section): Force debug flags for
	all sections of the __DWARF segment.

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

	PR ld/11047
	* elf32-ppc.c (ppc_elf_relocate_section): Delete __tls_get_addr
	symbol reference from relocs belonging to calls that are
	optimized away.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.

2009-12-02  Jerker Bäck  <jerker.back@gmail.com>

	PR binutils/11017
	* coff-i386.h (COFF_PAGE_SIZE): Definition moved to coff/i386.h

2009-11-30  Joseph Myers  <joseph@codesourcery.com>

	* configure: Regenerate.

2009-11-26  Per Øyvind Karlsen <peroyvind@mandriva.org>

	* plugin.c (bfd_plugin_bfd_copy_link_hash_symbol_type): Define.

2009-11-24  Joel Brobecker  <brobecker@adacore.com>

	* acinclude.m4: Add include of ../config/zlib.m4.
	* configure.in: AM_ZLIB to check for zlib support.
	* configure: Regenerate.

2009-11-23  Paul Brook  <paul@codesourcery.com>

	* libbfd-in.h (_bfd_generic_copy_link_hash_symbol_type): Add
	prototype.
	* elf-bfd.h (_bfd_elf_copy_link_hash_symbol_type): Add prototype.
	* linker.c (_bfd_generic_copy_link_hash_symbol_type): New function.
	* elflink.c (_bfd_elf_copy_link_hash_symbol_type): New function.
	* targets.c (BFD_JUMP_TABLE_LINK, struct bfd_target): Add
	_copy_link_hash_symbol_type.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Add
	_bfd_generic_copy_link_hash_symbol_type.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add
	_bfd_generic_copy_link_hash_symbol_type.
	* aout-adobe.c (aout_32_bfd_copy_link_hash_symbol_type): Define.
	* aout-target.h (MY_bfd_copy_link_hash_symbol_type): Define.
	* aout-tic30.c (MY_bfd_copy_link_hash_symbol_type): Define.
	* binary.c (binary_bfd_copy_link_hash_symbol_type): Define.
	* bout.c (b_out_bfd_copy_link_hash_symbol_type): Define.
	* coffcode.h (coff_bfd_copy_link_hash_symbol_type): Define.
	* elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): Define.
	* i386msdos.c (msdos_bfd_copy_link_hash_symbol_type): Define.
	* i386os9k.c (os9k_bfd_copy_link_hash_symbol_type): Define.
	* ieee.c (ieee_bfd_copy_link_hash_symbol_type): Define.
	* ihex.c (ihex_bfd_copy_link_hash_symbol_type): Define.
	* libecoff.h (_bfd_ecoff_bfd_copy_link_hash_symbol_type): Define.
	* mach-o.c (bfd_mach_o_bfd_copy_link_hash_symbol_type): Define.
	* mmo.c (mmo_bfd_copy_link_hash_symbol_type): Define.
	* nlm-target.h (nlm_bfd_copy_link_hash_symbol_type): Define.
	* oasys.c (oasys_bfd_copy_link_hash_symbol_type): Define.
	* pef.c (bfd_pef_bfd_copy_link_hash_symbol_type): Define.
	* ppcboot.c (ppcboot_bfd_copy_link_hash_symbol_type): Define.
	* som.c (som_bfd_copy_link_hash_symbol_type): Define.
	* srec.c (srec_bfd_copy_link_hash_symbol_type): Define.
	* tekhex.c (tekhex_bfd_copy_link_hash_symbol_type): Define.
	* versados.c (versados_bfd_copy_link_hash_symbol_type): Define.
	* vms.c (vms_bfd_copy_link_hash_symbol_type): Define.
	* xsym.c (bfd_sym_bfd_copy_link_hash_symbol_type): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2009-11-19  Tristan Gingold  <gingold@adacore.com>

	* coff-rs6000.c (rs6000coff_vec): Use generic routines instead of
	hard-coded casts.
	(pmac_xcoff_vec): Ditto.
	* coff64-rs6000.c (rs6000coff64_vec): Ditto.
	(aix5coff64_vec): Ditto.

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

	* bfd-in.h (_bfd_elf_ppc_at_tls_transform): Declare.
	* bfd-in2.h: Regenerate.
	* elf64-ppc.c (ppc64_elf_relocate_section): Move code for R_PPC64_TLS
	insn optimisation to..
	* elf32-ppc.c (_bfd_elf_ppc_at_tls_transform): ..here.  New function.
	(ppc_elf_relocate_section): Use it.

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

	* targets.c: Don't include alloca-conf.h.
	(bfd_get_target_info): Don't use alloca.

2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10955
	* elfxx-ia64.c (elfNN_ia64_update_short_info): Also skip ABS
	sections.

2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10955
	* elfxx-ia64.c (elfNN_ia64_link_hash_table): Update comments.
	(elfNN_ia64_update_short_info): Remove "->output_section" from
	ia64_info->max_short_sec and ia64_info->min_short_sec.
	(elfNN_ia64_choose_gp): Likewise.
	(elfNN_ia64_relax_section): Pass tsec->output_section to
	elfNN_ia64_update_short_info.

2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10955
	* elfxx-ia64.c (elfNN_ia64_link_hash_table): Add max_short_sec,
	max_short_offset, min_short_sec and min_short_offset.
	(elfNN_ia64_update_short_info): New.
	(elfNN_ia64_relax_section): Update max_short_sec,
	max_short_offset, min_short_sec and min_short_offset.
	(elfNN_ia64_choose_gp): Use min_short_sec/max_short_sec if
	they are set.

2009-11-17  Paul Brook  <paul@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (using_thumb_only, arch_has_arm_nop,
	arch_has_thumb2_nop): Handle TAG_CPU_ARCH_V7E_M.
	(tag_cpu_arch_combine): Ditto. Correct MAX_TAG_CPU_ARCH test.

2009-11-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (struct spu_link_hash_table): Remove overlay_fixed,
	reserved, and extra_stack_space members.
	(spu_elf_auto_overlay): Use auto_overlay_fixed, auto_overlay_reserved,
	and extra_stack_space members of htab->params instead.

2009-11-17  Tristan Gingold  <gingold@adacore.com>

	* targets.c: Include alloca-conf.h

2009-11-16  Kai Tietz  <kai.tietz@onevision.com>

	* targets.c (bfd_get_target_info): New function.
	(_bfd_find_arch_match): New function.
	* bfd-in2.h: Regenerated.

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

	* po/ru.po: Updates Russian translation.

2009-11-11  Nick Clifton  <nickc@redhat.com>

	* po/id.po: Updated Indonesian translation.

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

	* configure.in: Call ACX_LARGEFILE.  Stop calling AC_PLUGINS,
	AC_SYS_LARGEFILE and checking the Solaris largefile exception.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2009-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10911
	* elflink.c (elf_link_output_extsym): Don't return on
	STT_GNU_IFUNC symbol when stripping.

2009-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf32-hppa.c (elf32_hppa_final_link): Don't sort unwind information
	in a relocatable link.
	* elf64-hppa.c (elf_hppa_final_link): Likewise.

2009-11-05  Nick Clifton  <nickc@redhat.com>

	* elflink.c (elf_link_add_object_symbols): Improve error
	message generated when a symbol is left unresolved because a
	--no-add-needed command line option has prevented the
	inclusion of the DSO defining it.

2009-11-03  Alan Modra  <amodra@bigpond.net.au>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (mark_functions_via_relocs): Handle non-branch relocs
	(jump tables or other references to code labels) as well.

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

	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle VFPv4
	attributes.

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

	* elflink.c (elf_link_add_object_symbols): Don't force debug
	symbols local.

2009-10-29  Johan Kristell  <johankri@axis.com>

	* elf32-cris.c (cris_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.

2009-10-27  Kai Tietz  <kai.tietz@onevision.com>

	* peXXigen.c (bfdver.h): Add include.
	(LINKER_VERSION): Do calculation based on BFD_VERSION.

2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_relocate_section): Correct assertion.

2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_plt_entry): Fix formatting.

2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_relocate_section): Fix a typo.

2009-10-23  Kai Tietz  <kai.tietz@onevision.com>

	* coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset
	of R_AMD64_PCRLONG_<X> relocations from addend.

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

	* plugin.c: Produce empty object if not BFD_SUPPORTS_PLUGINS.

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

	PR binutils/10802
	* opncls.c (_maybe_make_executable): Make DYNAMIC files executable.

2009-10-19  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_DTPREL>:
	Don't subtract the size of the TLS block for non-shared objects
	from the relocation.

2009-10-17  Arnold Metselaar  <arnold.metselaar@planet.nl>

	* coff-z80.c (z80coff_vec): Allow sections to be of type
	SEC_CODE or SEC_DATA

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

	PR binutils/10785
	* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Don't bfd_alloc
	bim and bim->buffer.  bfd_malloc instead.
	* peicode.h (pe_ILF_build_a_bfd): Similarly.
	(ILF_DATA_SIZE): Don't include bim.
	* opncls.c (bfd_close): Test bim->buffer non-NULL before freeing.

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

	* aoutx.h (aout_link_check_ar_symbols): Typo fix.

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

	PR binutils/10763
	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Declare plt
	earlier.

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

	* elflink.c (_bfd_elf_merge_symbol): Revert previous patch.

2009-10-12  Roland McGrath  <roland@frob.com>

	* elflink.c (elf_link_add_object_symbols, _bfd_elf_merge_symbol):
	Fix %s that should be %B in several message formats.

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

	* cofflink.c (_bfd_coff_link_input_bfd): Skip section symbols for
	excluded output sections.

2009-10-09  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_read_command): Handle BFD_MACH_O_LC_RPATH.
	(bfd_mach_o_bfd_print_private_bfd_data): Ditto.

2009-10-09  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Rename to
	bfd_mach_o_read_symtab_symbols.
	(bfd_mach_o_scan_write_thread): Rename to bfd_mach_o_write_thread.
	(bfd_mach_o_scan_write_relocs): Rename to bfd_mach_o_write_relocs.
	(bfd_mach_o_scan_write_section_32): Rename to
	bfd_mach_o_write_section_32.
	(bfd_mach_o_scan_write_section_64): Rename to
	bfd_mach_o_write_section_64.
	(bfd_mach_o_scan_write_segment_32): Rename to
	bfd_mach_o_write_segment_32.
	(bfd_mach_o_scan_write_segment_64): Rename to
	bfd_mach_o_write_segment_64.
	(bfd_mach_o_scan_write_symtab): Rename to bfd_mach_o_write_symtab.
	(bfd_mach_o_scan_read_section_32): Rename to
	bfd_mach_o_read_section_32.
	(bfd_mach_o_scan_read_section_64): Rename to
	bfd_mach_o_read_section_64.
	(bfd_mach_o_scan_read_section): Rename to bfd_mach_o_read_section.
	(bfd_mach_o_scan_read_symtab_strtab): Rename to
	bfd_mach_o_read_symtab_strtab.
	(bfd_mach_o_scan_read_symtab_symbol): Rename to
	bfd_mach_o_read_symtab_symbol.
	(bfd_mach_o_scan_read_dysymtab_symbol): Rename to
	bfd_mach_o_read_dysymtab_symbol.
	(bfd_mach_o_scan_read_dylinker): Rename to bfd_mach_o_read_dylinker.
	(bfd_mach_o_scan_read_dylib): Rename to bfd_mach_o_read_dylib.
	(bfd_mach_o_scan_read_prebound_dylib): Rename to
	bfd_mach_o_read_prebound_dylib.
	(bfd_mach_o_scan_read_thread): Rename to bfd_mach_o_read_thread.
	(bfd_mach_o_scan_read_dysymtab): Rename to bfd_mach_o_read_dysymtab.
	(bfd_mach_o_scan_read_symtab): Rename to bfd_mach_o_read_symtab.
	(bfd_mach_o_scan_read_uuid): Rename to bfd_mach_o_read_uuid.
	(bfd_mach_o_scan_read_linkedit): Rename to bfd_mach_o_read_linkedit.
	(bfd_mach_o_scan_read_str): Rename to bfd_mach_o_read_str.
	(bfd_mach_o_scan_read_dyld_info): Rename to bfd_mach_o_read_dyld_info.
	(bfd_mach_o_scan_read_segment): Rename to bfd_mach_o_read_segment.
	(bfd_mach_o_scan_read_segment_32): Rename to
	bfd_mach_o_read_segment_32.
	(bfd_mach_o_scan_read_segment_64): Rename to
	bfd_mach_o_read_segment_64.
	(bfd_mach_o_scan_read_command): Rename to bfd_mach_o_read_command.
	* mach-o.h (bfd_mach_o_scan_read_dysymtab_symbol): Rename to
	bfd_mach_o_read_dysymtab_symbol.

2009-10-09  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_section_get_entry_size): Moved.
	(bfd_mach_o_section_get_nbr_indirect): Ditto.
	(bfd_mach_o_get_synthetic_symtab): New function.
	(bfd_mach_o_print_private_header): Print the number of commands
	in decimal.
	* mach-o.h (bfd_mach_o_get_synthetic_symtab): Add prototype.
	* mach-o-target.c: Do not defined bfd_mach_o_get_synthetic_symtab.

2009-10-08  Tristan Gingold  <gingold@adacore.com>

	* config.bfd: Add bfd_mach_o_i386_vec in x86_64-darwin targ_selvecs.

2009-10-06  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in2.h: Regenerated.

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

	* aout-cris.c (N_SHARED_LIB): Don't define.
	* hp300bsd.c (N_SHARED_LIB): Don't define.
	* i386bsd.c (N_SHARED_LIB): Don't define.
	* i386linux.c (N_SHARED_LIB): Don't define.
	* i386lynx.c (N_SHARED_LIB): Don't define.
	* m68klinux.c (N_SHARED_LIB): Don't define.
	* m88kmach3.c (N_SHARED_LIB): Don't define.
	* mipsbsd.c (N_SHARED_LIB): Don't define.
	* newsos3.c (N_SHARED_LIB): Don't define.
	* pc532-mach.c (N_SHARED_LIB): Don't define.
	* pdp11.c (N_SHARED_LIB): Don't define.
	* sparclinux.c (N_SHARED_LIB): Don't define.
	* vaxbsd.c (N_SHARED_LIB): Don't define.

2009-10-01  Dave Korn  <dave.korn.cygwin@gmail.com>

	* cofflink.c (_bfd_coff_generic_relocate_section): Look for the aux
	symbol for a weak undef in the auxbfd, not the input bfd.

2009-10-01  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (spu_elf_auto_overlay): Insert icache linker script
	after .toe instead of before .text section.  Set the LMA of all
	overlay sections to their icache IA address.
	(spu_elf_find_overlays): Determine icache set id without reference
	to the LMA.

2009-09-30  Tristan Gingold  <gingold@adacore.com>

	* configure.com: Use hosts/alphavms.h on both alpha and ia64 VMS.

2009-09-29  H.J. Lu  <hongjiu.lu@intel.com>

	* elf64-x86-64.c (elf64_x86_64_append_rela): New.
	(elf64_x86_64_relocate_section): Use it.
	(elf64_x86_64_finish_dynamic_symbol): Likewise.

2009-09-29  DJ Delorie  <dj@redhat.com>

	* Makefile.am (ALL_MACHINES): Add cpu-rx.lo.
	(ALL_MACHINES_CFILES): Add cpu-rx.c.
	(BFD32_BACKENDS): Add elf32-rx.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-rx.c.
	* archures.c (bfd_architecture): Add bfd_arch_rx and bfd_mach_rx.
	Export bfd_rx_arch.
	(bfd_archures_list): Add bfd_rx_arch.
	* config.bfd: Add entry for rx-*-elf.
	* configure.in: Add entries for bfd_elf32_rx_le_vec and
	bfd_elf32_rx_be_vec.
	* reloc.c: Add RX relocations.
	* targets.c: Add RX target vectors.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* libbfd.h: Regenerate.
	* cpu-rx.c: New file.
	* elf32-rx.c: New file.

2009-09-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* elf32-cr16.c (elf32_cr16_relocate_section): Removed
	info->relocatable to fix the ld/testsuites/ld-elf/linkonce1 test case.

2009-09-28  Nick Clifton  <nickc@redhat.com>

	PR 10478: Accepting Solaris binaries.
	* elf.c (bfd_section_from_shdr): Allow SHN_BEFORE and SHN_AFTER
	section link values in x86 binaries.
	* elfcode.h (elf_object_p): Likewise.

2009-09-28  Philippe De Muyter  <phdm@macqel.be>

	* elf32-m68k.c (elf_m68k_final_write_processing): New function.
	(elf_backend_final_write_processing): Macro defined as above function.

2009-09-25  Martin Thuresson  <martint@google.com>

	Update sources to make alpha and arm targets compile cleanly with
	-Wc++-compat:
	* ecoff.c: Add casts.
	* ecofflink.c: Add casts.
	* elf64-alpha.c: Add casts.
	(struct alpha_elf_got_entry, struct alpha_elf_reloc_entry): Move
	to top level.
	(SKIP_HOWTO): Use enum name.
	* elf32-arm.c: Add casts.
	(elf32_arm_vxworks_bed): Update code to avoid multiple
	declarations.
	(struct map_stub): Move to top level.

2009-09-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10630
	* elflink.c (elf_link_output_extsym): Turn off visibility on
	local symbol.
	(bfd_elf_final_link): Turn off visibility on dynamic local
	symbol.

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

	PR binutils/10654
	* dwarf2.c (lookup_address_in_line_info_table): Remove workaround
	for invalid location lists generated by gcc-2.95 and Intel 6.0 C++.
	Remove "function" parm, adjust caller.

2009-09-23  Matt Rice  <ratmice@gmail.com>

	* bfd-in.h (bfd_elf_size_dynamic_sections): Add audit and depaudit
	arguments.
	* elflink.c (bfd_elf_size_dynamic_sections): Generate DT_AUDIT,
	DT_DEPAUDIT from audit/depaudit arguments.
	(elf_finalize_dynstr): Finalize DT_AUDIT and DT_DEPAUDIT strtab entries.
	(elf_link_add_object_symbols): Set dt_audit target data when finding a
	DT_AUDIT.
	* bfd-in2.h: Regenerate.
	* bfd-elf.h: Add dt_audit to elf_obj_tdata, and elf_dt_audit macro.

2009-09-23  Jie Zhang  <jie.zhang@analog.com>

	* elf32-bfin.c (_bfinfdpic_size_got_plt): Make sure empty
	.rel.plt and .plt sections are removed.
	(elf32_bfinfdpic_size_dynamic_sections): Remove empty .dynbss
	section.  Remove the duplicated removing of empty .rel.plt
	section.

2009-09-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Extend previous
	patch to handle the new personality relaxation.

2009-09-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf-eh-frame.c (make_pc_relative): New function.
	(_bfd_elf_write_section_eh_frame): Use it.

2009-09-21  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (TLS_GET_ADDR_GLINK_SIZE): Define.
	(ADD_3_12_2, BEQLR, CMPWI_11_0, LWZ_11_3, LWZ_12_3): Define.
	(MR_0_3, MR_3_0): Define.
	(struct ppc_elf_link_hash_table): Add no_tls_get_addr_opt.
	(ppc_elf_select_plt_layout): Save emit_stub_syms param earlier.
	(ppc_elf_tls_setup): Add no_tls_get_addr_opt param and save to hash
	table.  Check for presense of __tls_get_addr_opt
	(allocate_dynrelocs): Increase glink entry size for __tls_get_addr.
	(ppc_elf_size_dynamic_sections): Add DT_PPC_TLS_OPT tag.
	(write_glink_stub): Add param p.
	(ppc_elf_relocate_section): Adjust write_glink_stub call.
	(ppc_elf_finish_dynamic_symbol): Emit special glink call stub for
	__tls_get_addr.
	* elf32-ppc.h (ppc_elf_tls_setup): Update prototype.
	* elf64-ppc.c (struct ppc_link_hash_table): Add no_tls_get_addr_opt.
	(ppc64_elf_tls_setup): Add no_tls_get_addr_opt param and save to hash
	table.  Check for presense of __tls_get_addr_opt.
	(ppc64_elf_size_dynamic_sections): Add DT_PPC64_TLS_OPT tag.
	(LD_R11_0R3, LD_R12_0R3, MR_R0_R3, CMPDI_R11_0, ADD_R3_R12_R13,
	BEQLR, MR_R3_R0, MFLR_R11, STD_R11_0R1, BCTRL, LD_R11_0R1,
	LD_R2_0R1, MTLR_R11): Define.
	(build_tls_get_addr_stub): New function.
	(ppc_build_one_stub): Call it.
	(ppc_size_one_stub): Add extra size for __tls_get_addr stub.
	(ppc64_elf_relocate_section): Don't change nop to ld 2,40(1) for
	__tls_get_addr plt call.
	* elf64-ppc.h (ppc64_elf_tls_setup): Update prototype.

2009-09-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* elf-bfd.h (eh_cie_fde): Add personality_offset and
	make_per_encoding_relative to the CIE structure.  Add a padding field.
	* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Use 0x70
	rather than 0xf0 when masking out the base address encoding
	Record the offset of personality data from the start of the CIE.
	Remove a repeated elf_backend_can_make_relative_eh_frame check.
	(find_merged_cie): Take an info argument.  If the personality
	binds locally, try converting an absolute personality into
	a local one.
	(_bfd_elf_discard_section_eh_frame): Use 0x70 rather than 0xf0
	when masking out the base address encoding.  Update the call to
	find_merged_cie.
	(_bfd_elf_eh_frame_section_offset): Discard relocations against
	the personality data if we are converting into PC-relative form.
	(_bfd_elf_write_section_eh_frame): Use 0x70 rather than 0xf0
	when masking out the base address encoding.  Handle
	make_per_encoding_relative.

2009-09-18  Alan Modra  <amodra@bigpond.net.au>

	PR ld/10406
	* elf32-ppc.c (ppc_elf_howto_raw): Make R_PPC_EMB_SDAI16 and
	R_PPC_EMB_SDA2I16 complain_overflow_signed.
	(create_sdata_sym): Pass info rather than htab.
	Update all callers.  Ensure symbols are hidden.
	(ppc_elf_check_relocs): Allow SDAREL16 when shared.
	(ppc_elf_size_dynamic_sections): When shared, equate _SDA_BASE_ to
	_GLOBAL_OFFSET_TABLE_.
	(elf_finish_pointer_linker_section): Don't assume that sdata base
	symbol is always at 0x8000 offset.  Don't subtract the addend here.
	(is_static_defined): New function.
	(ppc_elf_relocate_section): Verify symbol base used in SDA relocs
	is statically defined.  Clear addend for EMB_SDAI16 and EMB_SDA2I16
	relocs.  Downgrade error on unexpected section for EMB_SDA2REL
	reloc symbols to a warning.

2009-09-18  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.
	* po/vi.po: Updated Vietnamese translation.

2009-09-18  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (follow_link, elf_follow_link, ppc_follow_link): New
	functions.  Use throughout.
	(ppc64_elf_copy_indirect_symbol): Set direct symbol "oh" field
	from indirect symbol.
	(lookup_fdh): Rename from get_fdh.  Follow indirect sym links.
	(add_symbol_adjust): Simplify.
	(defined_code_entry, defined_func_desc): New functions.
	(ppc64_elf_gc_keep): Follow indirect sym links.  Use defined_code_entry.
	(ppc64_elf_gc_mark_dynamic_ref): Use defined_func_desc and
	defined_code_entry to follow indirect sym links.
	(ppc64_elf_gc_mark_hook, func_desc_adjust): Likewise.
	(ppc_type_of_stub): Follow indirect sym links.
	(toc_adjusting_stub_needed): Likewise.
	(ppc_build_one_stub): Likewise.  Make undefined dot-symbols weak
	rather than defining them at stub.
	(ppc64_elf_relocate_section): Rewrite call test to avoid multiple
	assignments in test.

2009-09-16  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h (bfd_mach_o_filetype): Add new constants from darwin10.
	Reindent.
	* mach-o.c (bfd_mach_o_cpu_name): Reindent.
	(bfd_mach_o_filetype_name): Complete with new constants.  Reindent.
	(bfd_mach_o_print_private_header): Use fputs instead of fprintf
	when possible to avoid warnings.
	(bfd_mach_o_print_section_map): Ditto.
	(bfd_mach_o_section_get_entry_size): New function.
	(bfd_mach_o_section_get_nbr_indirect): Simplify using the newly
	added function.
	(bfd_mach_o_print_dysymtab): Print address of indirect symbols.

2009-09-14  Nick Clifton  <nickc@redhat.com>

	* po/fi.po: Updated Finnish translation.

2009-09-11  Nick Clifton  <nickc@redhat.com>

	* po/bfd.pot: Updated by the Translation project.

2009-09-11  Philippe De Muyter  <phdm@macqel.be>

	* binary.c (binary_object_p): Remove bfd_external_binary_architecture
	hack.  objcopy `-B' (`--binary-architecture') option is now handled
	in a generic way.

2009-09-11  Nick Clifton  <nickc@redhat.com>

	* rs6000-core.c (read_hdr): Fix typo in recent C++ compatibility
	changes.

2009-09-11  Jie Zhang  <jie.zhang@analog.com>

	* elf32-bfin.c (bfinfdpic_relocs_info_find): Just return
	NULL if `ht' is NULL.

2009-09-09  Martin Thuresson  <martin@mtme.org>

	Update sources to compile cleanly with -Wc++-compat:
	* aoutx.h: Add casts.
	* archive.c: Add casts.
	* archive64.c: Add casts.
	* archures.c: Add casts.
	* bfd-in2.h: Regenerated.
	* bfd.c: Add casts. (enum bfd_direction): Move out to top level.
	* bfdio.c: Add casts.
	* binary.c: Add casts.
	* cache.c (cache_bseek,cache_bread_1,cache_bwrite): Updated
	parameter to use enum value instead of int.
	* coffcode.h: Add casts.
	* coffgen.c: Add casts.
	* cofflink.c: Add casts.
	* compress.c: Add casts.
	* dwarf1.c: Add casts.
	* dwarf2.c: Add casts. (struct dwarf2_debug): Rename member bfd to
	bfd_ptr. Update code to use new name.
	* elf-attrs.c: Add casts.
	* elf-bfd.h (elf_link_virtual_table_entry): Gives name to
	anonymous struct. (union gotplt_union, struct
	elf_link_virtual_table_entry): Move to top level.
	* elf-eh-frame.c: Add casts.
	* elf-strtab.c: Add casts.
	* elf.c: Add casts. (_bfd_elm_make_Section_from_phdr): Change
	argument name from typename to type_name.
	* elf32-i386.c: Add casts.
	* elf64-x86-64.c: Add casts.
	* elfcode.h: Add casts.
	* elfcore.h: Add casts.
	* elflink.c: Add casts.
	* format.c: Add casts.
	* hash.c: Add casts.
	* ihex.c: Add casts.
	* libaout.h (enum aout_subformat, enum aout_magic): Move to top
	level.
	* libbfd.c: Add casts.
	* linker.c: Add casts.
	* merge.c: Add casts.
	* opncls.c: Add casts.
	* peXXigen.c: Add casts.
	* peicode.h: Add casts.
	* reloc.c: Add casts.
	* section.c: Add casts.
	* simple.c: Add casts.
	* srec.c: Add casts.
	* stabs.c: Add casts.
	* syms.c: Add casts.
	* targets.c: Add casts.
	* tekhex.c: Add casts.
	* verilog.c: Add casts.

2009-09-09  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2009-09-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Set sym_flags
	for the mode of target PLT entries.
	(allocate_dynrelocs): Only adjust symbol type if setting its
	value.

2009-09-09  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2009-09-09  Nick Clifton  <nickc@redhat.com>

	PR 10478:
	* elf.c (bfd_section_from_shdr): Do not reject sparc binaries with
	section headers containing sh_link values of SHN_BEFORE or
	SHN_AFTER.
	* elfcode.h (elf_object_p): Likewise.

2009-09-09  Tristan Gingold  <gingold@adacore.com>

	Handle DYLD_INFO introduced by Darwin10.
	* mach-o.h (bfd_mach_o_load_command_type): Add
	BFD_MACH_O_LC_DYLD_INFO.
	(bfd_mach_o_dyld_info_command): New type.
	(bfd_mach_o_load_command): Add dyld_info field.
	* mach-o.c (bfd_mach_o_scan_read_str): Reduce size of buf.
	(bfd_mach_o_scan_read_dyld_info): New function.
	(bfd_mach_o_scan_read_command): Handle BFD_MACH_O_LC_DYLD_INFO.
	(bfd_mach_o_bfd_print_private_bfd_data): Ditto.
	(bfd_mach_o_load_command_name): AddB FD_MACH_O_LC_DYLD_INFO.
	(bfd_mach_o_print_dyld_info): New function.

2009-09-09  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* elf32-cr16.c (elf32_cr16_relocate_section): Add code to discard the
	linkonce or linker script discarded section.

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

	* elf32-xtensa.c (elf_xtensa_relax_section): Delete -r check.

2009-09-07  Andreas Schwab  <schwab@linux-m68k.org>

	* elf32-m68k.c (rtype_to_howto): If the reloc index is out of
	range call the bfd error hander and use R_68K_NONE instead.

2009-09-07  Tristan Gingold  <gingold@adacore.com>

	* po/SRC-POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.

	* bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
	BFD_HAVE_SYS_STAT_TYPE_MEMBER): Moved to gas/acinclude.m4
	* configure.in: Move tests for tm_gmtoff, st_mtim.tv_sec and
	st_mtim.tv_nsec to gas/configure.in
	(bfd_elf64_ia64_vms_vec): Remove vmsutil.lo
	* configure: Regenerate.
	* config.in: Regenerate.
	* vmsutil.c: Moved to gas/config/te-vms.c
	* vmsutil.h: Removed.
	* Makefile.am (BFD32_BACKENDS_CFILES): Remove vmsutil.c
	(BFD32_BACKENDS): Remove vmsutil.lo
	* Makefile.in: Regenerate.

2009-09-05  Eli Zaretskii  <eliz@gnu.org>

	* coffcode.h: Include libiberty.h.

2009-09-05  Martin Thuresson  <martin@mtme.org>

	* coff-arm.c (coff_arm_relocate_section)
	(record_thumb_to_arm_glue, bfd_arm_process_before_allocation):
	Change member name class to symbol_class.
	* coff-i960.c (coff_i960_relocate_section) Rename variable
	class to class_val. Change member name class to symbol_class.
	* coff-rs6000.c (_bfd_xcoff_swap_aux_in)
	(_bfd_xcoff_swap_aux_out): Rename arguments class to in_class.
	* coff-stgo32.c (adjust_aux_in_post)
	(adjust_aux_out_pre, adjust_aux_out_post): Rename arguments class
	to in_class.
	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in)
	(_bfd_xcoff64_swap_aux_out): Rename arguments class to in_class.
	* coffcode.h (coff_pointerize_aux_hook): Rename variable class
	to n_sclass.
	* coffgen.c (coff_write_symbol, coff_pointerize_aux): Rename
	variables named class to n_sclass. (coff_write_symbols): Rename
	variable class to sym_class. (bfd_coff_set_symbol_class): Rename
	argument class to symbol_class.
	* cofflink.c (_bfd_coff_link_hash_newfunc)
	(coff_link_add_symbols, _bfd_coff_link_input_bfd)
	(_bfd_coff_write_global_sym, _bfd_coff_generic_relocate_section):
	Update code to use renamed members.
	* coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Rename
	argument class to in_class.
	* libcoff-in.h (struct coff_link_hash_entry, struct
	coff_debug_merge_type) Renamed members class to symbol_class and
	type_class.
	* libcoff.h Regenerated.
	* peXXigen.c: (_bfd_XXi_swap_aux_in, _bfd_XXi_swap_aux_out):
	Rename argument class to in_class.
	* pef.c (bfd_pef_parse_imported_symbol): Update code to use
	renamed members.
	* pef.h (struct bfd_pef_imported_symbol): Changed name of
	member class to symbol_class.

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

	* configure: Regenerated.

2009-09-04  Tristan Gingold  <gingold@adacore.com>

	* configure.in: Bump version to 2.20.51

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

	* elf32-spu.c (spu_elf_relocate_section): Correct 2009-07-24 logic.

2009-09-04  Jie Zhang  <jie.zhang@analog.com>

	* elf32-bfin.c (elf32_bfinfdpic_create_dynamic_sections): Always
	create .rela.bss.
	(elf32_bfinfdpic_size_dynamic_sections): Set SEC_EXCLUDE flag
	for empty .rela.bss and .rel.plt sections.

2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Don't relocate
	R_MIPS_JALR unless symbol resolves locally.

2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>

	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Don't set
	has_static_relocs for R_MIPS_JALR.

2009-09-03  Maciej W. Rozycki  <macro@codesourcery.com>

	* elf64-mips.c (mips_elf64_howto_table_rela): Add support for
	R_MIPS_TLS_DTPMOD64 and R_MIPS_TLS_TPREL64, replacing the
	respective stubs.

2009-09-01  H.J. Lu  <hongjiu.lu@intel.com>

	* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Declare
	plt earlier.

2009-09-01  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms: Ported to Itanium VMS.  Remove useless variable and
	dependencies.  Reindent.
	* configure.com: Ported to Itanium VMS.  Now generates a build.com
	to build without make.  Add messages but make edit silent.
	* hosts/alphavms.h: Add a prototype for stpcpy.
	* vms.c: Add a missing include for Alpha VMS.
	* elfxx-ia64.c (ELF_OSABI): Define for OpenVMS.

2009-08-31  Jan Beulich  <jbeulich@novell.com>

	* elf-bfd.h (bfd_elf_get_default_section_type): Declare.
	* elf.c (bfd_elf_get_default_section_type): New.
	(elf_fake_sections): Use bfd_elf_get_default_section_type.

2009-08-30  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Revert the
	accidental checkin.
	* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likwise.

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

	PR ld/10569
	* bfd.c (bfd_emul_get_maxpagesize): Don't abort.
	(bfd_emul_get_commonpagesize): Likewise.

2009-08-29  Martin Thuresson  <martin@mtme.org>

	* elf32-arm.c (struct stub_def): Rename member template to
	template_sequence. (arm_build_one_stub,
	find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub):
	Rename variable template to template_sequence.
	* elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl):
	Rename variable template to template_val.
	* aoutx.h (NAME (aout, make_empty_symbol)): Rename variable
	new to new_symbol.
	* coffgen.c (coff_make_empty_symbol)
	(coff_bfd_make_debug_symbol): Rename variable new to new_symbol.
	* cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable
	new to new_insn.
	* ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new
	to new_symbol.
	* elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument
	new to new_reloc.
	* hash.c (bfd_hash_lookup): Rename variable new to new_string.
	* ieee.c (ieee_make_empty_symbol): Rename variable new to
	new_symbol.
	* linker.c (bfd_new_link_order): Rename variable new to
	new_lo.
	* mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to
	symbol.
	* oasys.c (oasys_make_empty_symbol): Rename variable new to
	new_symbol_type.
	* pdp11.c (NAME (aout, make_empty_symbol)): Rename variable
	new to new_symbol_type.
	* plugin.c (bfd_plugin_make_empty_symbol): Rename variable new
	to new_symbol.
	* rs6000-core.c (CoreHdr, VmInfo): Rename union member new to
	new_dump.
	(read_hdr, rs6000coff_core_p)
	(rs6000coff_core_file_matches_executable_p)
	(rs6000coff_core_file_failing_command)
	(rs6000coff_core_file_failing_signal): Updated function to use new
	union member name.
	* som.c (som_make_empty_symbol): Rename variable new to
	new_symbol_type.
	* syms.c (_bfd_generic_make_empty_symbol): Rename variable new
	to new_symbol.
	* tekhex.c (first_phase, tekhex_make_empty_symbol): Rename
	variable new to new_symbol.

2009-08-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* acinclude.m4 (AM_INSTALL_LIBBFD): Call AM_SUBST_NOTMAKE for
	bfdlibdir and bfdincludedir.
	* Makefile.am (bfdlibdir, bfdincludedir): Move definition ...
	[INSTALL_LIBBFD]: ... here, ...
	[INSTALL_LIBBFD]: ... and empty overrides here.
	[!INSTALL_LIBBFD]: (rpath_bfdlibdir): New variable.
	[!INSTALL_LIBBFD] (libbfd_la_LDFLAGS): Use it.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2009-08-26  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* elf32-m68k.c: Rewrite initialization of GOT entries for TLS
	relocations.  Rewrite output of dynamic TLS relocations.
	(DTP_OFFSET, TP_OFFSET): New constants.
	(dtpoff_base): Update.
	(tpoff): Rename to tpoff_base, update.
	(elf_m68k_init_got_entry_static, elf_m68k_init_got_entry_local_shared):
	New functions.  Move code from elf_m68k_relocate_section here.
	(elf_m68k_relocate_section): Update.
	(elf_m68k_finish_dynamic_symbol): Fix handling of local TLS symbols.

2009-08-26  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* elf32-m68k.c (elf_m68k_copy_indirect_symbol): Propagate
	non_got_ref value.
	(elf_m68k_check_relocs): Handle dynamic TLS relocations.
	Handle non_got_ref field.
	(elf_m68k_adjust_dynamic_symbol): Handle non_got_ref field.

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

	PR ld/10518
	* linker.c (bfd_find_version_for_sym): Revert warning.

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

	PR ld/10518
	* linker.c (bfd_find_version_for_sym): Override a "*" match by any
	other wildcard match.  Warn on multiple wildcard matches.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.am (libbfd_la_LDFLAGS): Initialize early, to allow
	appending.
	[INSTALL_LIBBFD] (bfdlib_LTLIBRARIES, bfdinclude_HEADERS): Set
	only in this condition.
	[!INSTALL_LIBBFD] (noinst_LTLIBRARIES, libbfd_la_LDFLAGS): New,
	to build but not install libbfd.la in this condition.
	(install-bfdlibLTLIBRARIES, uninstall-bfdlibLTLIBRARIES)
	(install_libbfd, install_libbfd): Remove.
	* Makefile.in: Regenerate.
	* doc/Makefile.am (AM_CPPFLAGS): Renamed from ...
	(INCLUDES): ... this.
	($(MKDOC)): Adjust.
	* doc/Makefile.in: Regenerate.

	* Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, instead use
	no-dist and foreign.
	(EXTRA_libbfd_la_SOURCES): New, list $(CFILES) to allow
	dependency tracking to work for them.
	(targets.lo, archures.lo, dwarf.lo): Rewrite to
	use automake dependency tracking mechanism.
	(MKDEP, DEP, DEP1, dep.sed, dep, dep-in, dep-am): Remove.
	(mkdep section): Remove.
	(BUILT_SOURCES): New, list $(BUILD_HFILES).
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in, po/bfd.pot: Regenerate.

	* Makefile.am (datarootdir, docdir, htmldor, pdfdir)
	(install-pdf, install-pdf-recursive, install-html)
	(install-html-recursive): Remove.
	* Makefile.in: Regenerate.

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

2009-08-21  Daniel Gutson  <dgutson@codesourcery.com>

	* elf32-arm.c (arch_has_thumb2_nop): New function.
	(arch_has_arm_nop): New function.
	(elf32_arm_final_link_relocate): NOP opcodes changed.

2009-08-16  Doug Evans  <dje@google.com>

	* opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec,
	at least don't leak memory.

2009-08-13  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes
	if needed.

2009-08-12  Nick Clifton  <nickc@redhat.com>

	* po/fi.po: Updated Finnish translation.

2009-08-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	Merge some FRV FDPIC changes into the Blackfin code.
	* elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to
	summary reloc information.
	(bfinfdpic_dynamic_got_plt_info): New.
	(_bfin_create_got_section): Create the PLT section here.
	(elf32_bfinfdpic_create_dynamic_sections): Not here.
	(_bfinfdpic_count_nontls_entries): Move out of...
	(_bfinfdpic_count_got_plt_entries): ... here.
	(_bfinfdpic_count_relocs_fixups): Likewise.
	(_bfinfdpic_reset_got_plt_entries): New.
	(_bfinfdpic_size_got_plt): Move out of...
	(elf32_bfinfdpic_size_dynamic_sections): ... here.
	(bfinfdpic_relocate_section): Be careful not to call
	_bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs.
	(bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info):
	New functions.
	(elf_backend_discard_info): Define for FD-PIC.

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

	* elflink.c: Add FIXMEs for some places that require octets_per_byte
	adjustments.
	* elf-eh-frame.c: Likewise.
	* merge.c: Likewise.

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

	* configure.in:  Remove elf-ifunc.lo from common ELF files.  Add
	to x86 and x86_64 configurations.
	* configure: Regenerate.

2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Stop using bfd_usrdata in libbfd.
	* coff-stgo32.c (bfd_coff_go32stub): Remove.
	(stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE.
	(adjust_filehdr_in_post): Declare the abfd parameter as unused.
	Replace STUBSIZE by GO32_STUBSIZE.  Save now the stub in
	filehdr_dst->u.go32.stub.  New comment with the reason.
	(adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE.
	Substitute the removed macro bfd_coff_go32stub.
	(adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre)
	(adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre)
	(adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE.
	(create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data):
	Replace STUBSIZE by GO32_STUBSIZE.  Substitute the removed macro
	bfd_coff_go32stub.
	* coffcode.h (coff_mkobject_hook): Initialize coff->go32stub.
	* libcoff-in.h (coff_data_type): New field go32stub.
	* libcoff.h: Regenerated.

2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix go32 stub preservation by objcopy.
	* coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc.
	(go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD
	go32stub.

2009-08-10  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local
	symbols.
	(elf32_arm_final_link_relocate): Treat local undefined symbols the
	same as global undefined symbols.
	(elf32_arm_relocate_section): Give an error for local undefined
	non-weak symbols, unless the reloc will not use the symbol.

2009-08-10  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11.
	(ppc_elf_relax_section): Use symbol index to distinguish
	relocatable stubs.

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

	* elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections.

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

	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt
	info for STT_GNU_IFUNC.
	* elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry
	on got refs in case the symbol turns out to be ifunc.
	(ppc_elf_gc_sweep_hook): Similarly.
	(ppc_elf_adjust_dynamic_symbol): Adjust assertion.
	(allocate_dynrelocs): Don't specially allocate got relocs for ifunc.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relocate_section): Likewise.

2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Mike Frysinger <michael.frysinger@analog.com>
	* elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs,
	bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook,
	_bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section,
	bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
	bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
	Adjust to match the renamed reloc definitions.

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

	PR 10494
	* elf.c (_bfd_elf_make_section_from_shdr): When setting up section
	LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers.

2009-08-07  Tom Tromey  <tromey@redhat.com>

	* elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict
	aliasing error.

2009-08-06  Michael Eager <eager@eagercon.com>

	* Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
	* Makefile.in: Regenerate.
	* archures.c: Add bfd_arch_microblaze.
	* bfd-in2.h: Regenerate.
	* config.bfd: Add microblaze target.
	* configure.in: Add bfd_elf32_microblaze_vec target.
	* configure: Regenerate.
	* cpu-microblaze.c: New.
	* elf32-microblaze.c: New.
	* libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
	* libbfd.h: Regenerate.
	* reloc.c: Add MICROBLAZE relocations.
	* section.c: Add struct relax_table and relax_count to section.
	* targets.c: Add bfd_elf32_microblaze_vec.

2009-08-06  Jakub Jelinek  <jakub@redhat.com>
	    Alan Modra  <amodra@bigpond.net.au>

	PR binutils/10492
	* elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE
	symbols.
	* elf32-mips.c (mips_elf_sym_is_global): Likewise.
	* elfn32-mips.c (mips_elf_sym_is_global): Likewise.

2009-08-06  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
	at least once when fixing cortex-a8.

2009-08-05  Chao-ying Fu  <fu@mips.com>

	* elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
	* elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL
	for CPUs.  It is true for RM9000.
	(JALR_TO_BAL_P): New define to transform JALR to BAL.  It is true
	for all CPUs.
	(mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P
	to guard the transformation.

2009-08-05  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>

	* elf32-spu.h (spu_elf_params): Add member emit_fixups.
	(spu_elf_size_sections): Declare prototype.
	* elf32-spu.c (spu_link_hash_table): Add member sfixup.
	(FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros.
	(spu_elf_emit_fixup): New function.
	(spu_elf_relocate_section): Emit fixup for each SPU_ADDR32.
	(spu_elf_size_sections): New function.

2009-08-05  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm.
	(arm_build_one_stub): Build a8 veneers as a separate pass.
	(cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p
	parameters.  Use them to check if we create a different a8 fixup
	than the previous pass.
	(elf32_arm_size_stubs): Move scope of stub_changed and
	prev_num_a8_fixes into main loop.
	(elf32_arm_build_stubs): Build a8 veneers in a second pass.

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

	* elf32-ppc.c (ppc_elf_relax_section): Correct conditions under
	which find_plt_ent is called.  Delete redundant code.

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

	PR binutils/10363
	* elf.c (bfd_elf_string_from_elf_section): Return NULL on
	invalid string offset.

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

	PR ld/10433
	* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
	to htab->init_got_offset and plt to htab->init_plt_offset
	when discarding space for dynamic relocations.

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

	* elf32-ppc.c (struct plt_entry): Revise comments.
	(ppc_elf_check_relocs): Don't create needless plt_entry info
	for non-pie executables.  Don't test info->pie when info->shared
	already covers that case.
	(ppc_elf_gc_sweep_hook): Adjust for above change.
	(add_stub_sym): Don't test info->pie when info->shared tested.
	(allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise.
	(write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise.
	(ppc_elf_relax_section): Adjust find_plt_ent arguments.
	(ppc_elf_relocate_section): Likewise.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count
	for local ifunc symbols in non-pie executables, regardless of
	reloc type.  Don't specially create ifunc dyn relocs.  Tidy ifunc
	code so that it's obvious that we only do anything special for
	local ifunc syms.
	(ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
	(allocate_dynrelocs): Correct comment for syms defined in plt.
	Don't specially allocate ifunc dyn relocs.
	(ppc_elf_relax_section): Relax branches to ifunc plt entries too.
	(ppc_elf_relocate_section): Set "relocation" value for ifunc
	syms in non-pie executables.  No specially allocated dyn relocs
	for ifunc to write.  Allow for local sym on R_PPC_RELAX32_PLT.
	(ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in
	a non-pie executable.

2009-08-02  H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR ld/6443
	* elf32-i386.c (elf_i386_tls_transition): Check executable
	instead of shared for TLS when building PIE.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
	instead of shared for TLS when building PIE.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.

2009-07-31  Anthony Green  <green@moxielogic.com>

	* config.bfd (targ_cpu): Add moxie-uclinux support.

2009-07-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* linker.c (fix_syms): Consider SEC_LOAD when choosing section.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
	used by indirect function support.  Count dynamic relocs for
	ifunc syms.
	(ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
	(allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
	in iplt and their relocs in reliplt.  Don't make ifunc syms
	dynamic.  Allocate got entry relocs for non-dynamic ifunc in
	reliplt.  Handle other dynamic relocs for ifunc.
	(ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
	ifunc in reliplt, likewise relocs for got against local ifunc.
	Typo fix on reliplt size adjust.
	(ppc_elf_relocate_section): Don't use plt scheme of allocating
	relocs 1-1 with entries for iplt, instead just add using
	reloc_count.  Write got relocs and dyn relocs for ifunc to reliplt.
	Error on invalid ifunc dyn relocs.
	(ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
	in iplt/reliplt.
	* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
	R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
	(ppc64_elf_reloc_type_lookup): Handle new relocs.
	(ppc64_elf_check_relocs): Likewise.  Count dyn relocs for ifunc.
	(allocate_dynrelocs): As for elf32-ppc.c above.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
	and their relocs in reliplt.  Use R_PPC64_JMP_IREL.
	(ppc_size_one_stub): Similarly.
	(ppc64_elf_relocate_section): As for elf32-ppc.c above.  Handle new
	relocs too.
	(ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.

2009-07-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27
	change.  Add note to head comment.

2009-07-28  Jan Beulich  <jbeulich@novell.com>

	* archive.c (get_extended_arelt_filename): Remove redundant
	range check on index.

2009-07-27  Doug Kwan  <dougkwan@google.com>

	* elf32-arm.c (stub_hash_newfunc): Initialize field output_name.

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

	* archures.c bfd_*_arch): Sorted.
	(bfd_archures_list): Likewise.

2009-07-27  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
	to R_cr16_NUM32 relocation.

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

	* archures.c: Add bfd_mach_ppc_405
	* bfd-in2.h: Same.

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
	* cpu-l1om.c (bfd_l1om_arch): Likewise.

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* archures.c (bfd_architecture): Add bfd_arch_l1om.
	(bfd_l1om_arch): New.
	(bfd_archures_list): Add &bfd_l1om_arch.
	* bfd-in2.h: Regenerated.

	* config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
	bfd_elf64_x86_64_vec is supported.  Add bfd_elf64_l1om_freebsd_vec
	if bfd_elf64_x86_64_freebsd_vec is supported.
	(targ_selvecs): Likewise.

	* configure.in: Support bfd_elf64_l1om_vec and
	bfd_elf64_l1om_freebsd_vec.
	* configure: Regenerated.

	* cpu-l1om.c: New.

	* elf64-x86-64.c (elf64_l1om_elf_object_p): New.
	(bfd_elf64_l1om_vec): Likewise.
	(bfd_elf64_l1om_freebsd_vec): Likewise.

	* Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
	(ALL_MACHINES_CFILES): Add cpu-l1om.c.
	* Makefile.in: Regenerated.

	* targets.c (bfd_elf64_l1om_vec): New.
	(bfd_elf64_l1om_freebsd_vec): Likewise.
	(_bfd_target_vector): Add bfd_elf64_l1om_vec and
	bfd_elf64_l1om_freebsd_vec.

2009-07-24  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
	(spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
	(spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.

2009-07-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10434
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
	instead of shared for R_X86_64_TPOFF32.
	(elf64_x86_64_relocate_section): Likewise.

2009-07-23  Ulrich Drepper  <drepper@redhat.com>

	* elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
	* elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
	with the BSF_GNU_UNIQUE flag bit set.
	* elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
	for symbols with STB_GNU_UNIQUE binding.
	* elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
	with the STB_GNU_UNIQUE binding.
	(elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
	symbols with STB_GNU_UNIQUE binding.  Set STB_GNU_UNIQUE for
	symbols with the unique_global field set.
	(elf_link_output_extsym): Set unique_global field for symbols with
	the STB_GNU_UNIQUE binding.
	* syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
	(bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
	symbols.
	(bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
	symbols.
	* bfd-in2.h: Regenerate.

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

	* elflink.c (elf_link_output_extsym): Revert the last change.

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

	PR ld/10433
	* elflink.c (elf_link_output_extsym): Special case ifunc syms
	when ref_regular, not def_regular.

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

	PR ld/10426
	* elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
	from a DSO into a normal FUNC symbol.
	(elf_link_output_extsym): Turn an undefined IFUNC symbol into
	a normal FUNC symbol.

2009-07-17  Chao-ying Fu  <fu@mips.com>

	* elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
	(_bfd_mips_elf_size_dynamic_sections): For CPUs without load
	interlocking, the last PLT entry needs a nop in the branch delay slot.
	(_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
	output the last two PLT entries in reverse order.

2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Don't get local
	STT_GNU_IFUNC symbol for relocatable link.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdio.c (bfd_iovec): Add comments for bmmap.
	* bfd-in2.h: Regenerated.

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

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

2009-07-10  Doug Kwan  <dougkwan@google.com>

	* elf32-arm.c (stub_hash_newfunc): Initialize fields
	target_addend and orig_insn.

2009-07-10  Tom Tromey  <tromey@redhat.com>

	* Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
	(elf-eh-frame.lo): Likewise.
	(elf32-bfin.lo): Likewise.
	(elf32-frv.lo): Likewise.
	(elf32-xc16x.lo): Likewise.
	* Makefile.in: Rebuild.
	* dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
	* elf-eh-frame.c: Likewise.
	* elf32-bfin.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-xc16x.c: Likewise.

2009-07-10  Julian Brown  <julian@codesourcery.com>

	* elf32-arm.c (arm_build_one_stub): Use the hash entry of the
	symbol a stub entry is derived from, not the entry for the stub
	itself, in call to elf32_arm_final_link_relocate.

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
	when reporting  addends.

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

	* elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
	data even when no stubs.
	(spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.

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

	* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE.
	(ppc_elf_get_synthetic_symtab): Report addend.
	(PLT_IFUNC): Define.
	(struct ppc_elf_link_hash_table): Add iplt and reliplt.
	(ppc_elf_create_glink): New function.
	(ppc_elf_create_dynamic_sections): Use it.
	(ppc_elf_add_symbol_hook): Set has_ifunc_symbols.
	(update_local_sym_info): Allocate space for local_plt array.
	Don't bump local_got_refcounts for PLT_IFUNC.  Return local_plt
	entry pointer.
	(is_branch_reloc): New function.
	(ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_adjust_dynamic_symbol): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relocate_section): Likewise.
	(branch_reloc_hash_match): Use is_branch_reloc.
	(ppc_elf_tls_optimize): Adjust for local_plt.
	(write_glink_stub): New function, extracted from..
	(ppc_elf_finish_dynamic_symbol): ..here.  Handle STT_GNU_IFUNC.
	(ppc_elf_finish_dynamic_sections): Only write plt resolver and
	branch table when dynamic.
	(elf_backend_post_process_headers): Define.
	* elf64-ppc.c (elf_backend_post_process_headers): Define.
	(ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE.
	(ppc64_elf_get_synthetic_symtab): Report addend.
	(struct ppc_stub_hash_entry): Add plt_ent.
	(PLT_IFUNC): Define.
	(struct ppc_link_hash_table): Add iplt and reliplt.
	(create_linkage_sections): Make .iplt and .rela.iplt sections.
	(ppc64_elf_add_symbol_hook): Set has_ifunc_symbols.
	(update_local_sym_info): Allocate space for local_plt array.
	Don't bump local_got_ents for PLT_IFUNC.  Return local_plt
	entry pointer.
	(update_plt_info): Pass pointer to plt_entry rather than sym hash,
	and don't change hash flags here.
	(is_branch_reloc): New function.
	(ppc64_elf_check_relocs): Handle STT_GNU_IFUNC.
	(ppc64_elf_gc_sweep_hook): Likewise.
	(ppc64_elf_adjust_dynamic_symbol): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(ppc_build_one_stub, ppc_size_one_stub): Likewise.
	(ppc64_elf_size_stubs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	(get_sym_h): Adjust for local_plt.
	(branch_reloc_hash_match): Use is_branch_reloc.
	(ppc_type_of_stub): Pass plt_entry pointer and handle ifunc.
	(ppc64_elf_toc): Ignore SEC_EXCLUDE sections.

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

	* elf.c (_bfd_elf_get_synthetic_symtab): Report addends.

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

	* elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
	and ref_regular_nonweak comment.
	* elflink.c (elf_link_output_extsym): Special case ifunc syms
	when def_regular, not ref_regular.
	(elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
	* elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
	* elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.

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

	* elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
	of malloc'd struct call_info.
	(pasted_function): Likewise, priority too.

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

	* elf32-spu.c (spu_elf_auto_overlay): Take into account section
	alignment when packing sections into overlays.

2009-07-03  Cary Coutant  <ccoutant@google.com>

	* dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.

2009-07-03  Dave Korn  <dave.korn.cygwin@gmail.com>

	* coffcode.h (sec_to_styp_flags):  Partially revert (functional
	changes only) earlier patch:-

2009-06-25  Kai Tietz  <kai.tietz@onevision.com>

	* coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
	give .debug and .reloc data characteristics.
	(DOT_RELOC): New define for .reloc section string.
	(coff_write_object_contents): Use DOT_RELOC instead of string.

2009-07-02  Tom Tromey  <tromey@redhat.com>

	* aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
	* bfdwin.c (bfd_free_window): Cast to unsigned long.

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

	* elf-m10300.c: Remove trailing white space.
	* reloc.c: Likewise.

2009-07-01  Douglas B Rupp  <rupp@gnat.com>

	* bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
	BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
	* configure.in: Use them.
	* configure: Regenerate.
	* config.in: Regenerate.
	* vmsutil.c: Include sysdep.h, remove ansidecl.h.
	#define _BSD_SOURCE. Add comments.
	(vms_file_stats_name): Calculate creation date based on available
	runtime data. Return 1 for version instead of 0.

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

	PR 10072
	* elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle
	to R_ARM_THM_PC8 relocation.

2009-06-29  Nick Clifton  <nickc@redhat.com>

	* elf-m10300.c (mn10300_elf_relax_section): Allow for the
	different uses of the relocations addend when a symbol is in a
	merged section.

2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10337
	* elf.c (bfd_section_from_shdr): Don't change sh_link for
	SHT_REL/SHT_RELA sections on executable nor shared library.
	Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF
	as a normal section.

2009-06-25  Nick Clifton  <nickc@redhat.com>

	* elf-m10300.c (mn10300_elf_relax_section): Handle non-section
	symbols with SEC_MERGE flag.

2009-06-25  Kai Tietz  <kai.tietz@onevision.com>

	* coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
	give .debug and .reloc data characteristics.
	(DOT_RELOC): New define for .reloc section string.
	(coff_write_object_contents): Use DOT_RELOC instead of string.

2009-06-25  Tristan Gingold  <gingold@adacore.com>

	* mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
	(bfd_mach_o_canonicalize_dynamic_symtab)
	(bfd_mach_o_get_synthetic_symtab): Defines.
	(TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry.
	(TARGET_NAME): Use Mach-O specific functions for dynamic.

	* mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes
	for scattered relocations.
	(bfd_mach_o_i386_print_thread): New function.
	(bfd_mach_o_print_thread): Define.

	* mach-o.c (text_section_names_xlat): Add an entry for __const.
	(bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs):
	New functions extracted from ...
	(bfd_mach_o_canonicalize_reloc): ... This.  Simplified.
	(bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
	(bfd_mach_o_canonicalize_dynamic_reloc): New function.
	(bfd_mach_o_i386_flavour_string): Adjusted after enum renaming.
	(bfd_mach_o_ppc_flavour_string): Reindentation.  Add 64 bits cases.
	(bfd_mach_o_scan_read_dylinker): Do not create a section anymore.
	Set name_str field.
	(bfd_mach_o_scan_read_dylib): Ditto.
	(bfd_mach_o_scan_read_thread): Set mdata at declaration.  Add comments,
	reindent.
	(bfd_mach_o_scan_read_dysymtab): Set mdata at declaration.  Correctly
	decode isym and flags on little endian targets.  Set dysymtab field.
	(bfd_mach_o_scan_start_address): Adjust for enum names.
	(bfd_mach_o_lookup_section): Do not look for segments anymore.
	(bfd_mach_o_print_section): Display bfd section name.
	(bfd_mach_o_print_segment): Display none if no name.
	(bfd_mach_o_print_dysymtab): Display next index for local, external
	and undefined symbols.
	(bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str.
	Display dylinker name. Display thread and unixthread commands content.
	(bfd_mach_o_print_thread): New macro.

	* mach-o.h (bfd_mach_o_mach_header_magic): Align numbers.
	(bfd_mach_o_ppc_thread_flavour): Ditto.
	(bfd_mach_o_i386_thread_flavour): Ditto.
	(BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum.
	(BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces
	BFD_MACH_O_THREAD_STATE_NONE.
	(bfd_mach_o_segment_command): Remove segment field.
	(bfd_mach_o_thread_flavour): Field offset is now unsigned long.
	(bfd_mach_o_dylinker_command): Remove section field, add name_str.
	(bfd_mach_o_prebound_dylib_command): Ditto.
	(bfd_mach_o_dylib_command): Ditto.
	(bfd_mach_o_prebound_dylib_command): Remove section field.
	(mach_o_data_struct): Add dysymtab field.
	(bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field.
	(bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc)
	(bfd_mach_o_build_commands): Remove parameter names and attributes.
	(bfd_mach_o_get_dynamic_reloc_upper_bound)
	(bfd_mach_o_canonicalize_dynamic_reloc): New prototypes.

2009-06-25  Rafael Avila de Espindola  <espindola@google.com>

	* plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
	field of struct dirent.

2009-06-23  Tristan Gingold  <gingold@adacore.com>

	* vms.c (vms_get_synthetic_symtab): Remove duplicate definition
	of this macro.  Fix indentation.

2009-06-22  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
	destination for defined dynamic symbols when deciding whether to
	insert a stub or not.
	(allocate_dynrelocs): Make sure functions are not marked as Thumb
	when actually accessed through a PLT, even when generating a
	shared lib.

2009-06-22  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
	the relocs array.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch.
	* elf32-v850.c (v850_elf_relocate_section): Warning fix.

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

	* elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning.

2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_link_add_object_symbols): Avoid warning
	from -Wjump-misses-init in gcc 4.5.0.

2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Properly check local
	symbol on error.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_tls_transition): Add a parameter,
	r_symndx.  Report local symbol name on error.
	(elf_i386_check_relocs): Updated.  Report local symbol name on
	error.
	(elf_i386_gc_sweep_hook): Updated.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
	r_symndx.  Report local symbol name on error.
	(elf64_x86_64_check_relocs): Updated.  Report local symbol name
	on error.
	(elf64_x86_64_gc_sweep_hook): Updated.
	(elf64_x86_64_relocate_section): Likewise.

2009-06-19  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_print_private_header): Fix format character.

2009-06-19  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype.
	(bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access.
	(bfd_mach_o_valid): Ditto.
	(bfd_mach_o_wide_p): Ditto.
	(bfd_mach_o_canonicalize_reloc): Ditto.
	(bfd_mach_o_build_commands): Ditto.
	(bfd_mach_o_scan_read_thread): Ditto.
	(bfd_mach_o_flatten_sections): Ditto.
	(bfd_mach_o_scan_start_address): Ditto.
	(bfd_mach_o_lookup_section): Ditto.
	(bfd_mach_o_core_fetch_environment): Ditto.
	(bfd_mach_o_write_contents): Ditto.  Handle reexport_dylib.
	(bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data.
	(bfd_mach_o_scan_write_symtab): Ditto.
	Use macros instead of hard-coded values.
	(bfd_mach_o_scan_read_symtab_symbol): Make the function static.
	Use bfd_mach_o_get_data instead of direct access.  Use macros
	instead of hard-coded values.
	(bfd_mach_o_scan_read_symtab_strtab): Make the function static.
	Remove sym argument and get section from mdata.
	Move code into the else branch.
	(bfd_mach_o_scan_read_symtab_symbols): Make the function static.
	Remove sym argument and get section from mdata.  Adjust code.
	(bfd_mach_o_scan_read_dylib): Move assertion into the created
	switch (which replaces consecutive if statements).
	(bfd_mach_o_scan_read_dysymtab): Rename seg to cmd.  Load
	module table, table of content, indirect symbols and external
	referenced symbols.
	(bfd_mach_o_scan_read_symtab): Renames seg to symtab.  Set symtab
	field.
	(bfd_mach_o_scan_read_linkedit): New function.
	(bfd_mach_o_scan_read_str): Ditto.
	(bfd_mach_o_count_symbols): Simplify the code by using the symtab
	field of mdata.
	(bfd_mach_o_get_symtab_upper_bound): Remove check as
	bfd_mach_o_count_symbols never returns an error.
	(bfd_mach_o_canonicalize_symtab): Simplify the code by using the
	symtab field (there might be only one symtab).
	(bfd_mach_o_scan_read_command): Handle reexported dylib.
	Handle sub frameworks, sub umbrella, sub library and sub client.
	Read code signature and segment split info commands.
	(bfd_mach_o_scan): Reindent.
	(bfd_mach_o_xlat_name): New type.
	(bfd_mach_o_print_flags): New function.
	(bfd_mach_o_get_name): Ditto.
	(bfd_mach_o_cpu_name): New variable.
	(bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name)
	(bfd_mach_o_section_type_name)
	(bfd_mach_o_section_attribute_name)
	(bfd_mach_o_load_command_name): New variables.
	(bfd_mach_o_print_private_header): New function.
	(bfd_mach_o_print_section_map): New function extracted from
	bfd_mach_o_print_private_bfd_data.
	(bfd_mach_o_print_section): Ditto.  Print more infos.
	(bfd_mach_o_print_segment): Ditto.
	(bfd_mach_o_print_dysymtab): Ditto.
	(bfd_mach_o_bfd_print_private_bfd_data): Reworked.  Handle
	load weak dylib, reexport dylib and id dylib.
	Handle code signature and segment_split info.
	Handle sub frameworks, sub umbrella, sub library and sub client.
	(bfd_mach_o_section_get_nbr_indirect): New function.

	* mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro.  Add comment.
	(bfd_mach_o_header_flags): New enum to define header flags.
	(bfd_mach_o_section_attribute): New enum to replace ...
	(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_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT,
	BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS,
	BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ...
	these removed macros.
	(BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros.
	(bfd_mach_o_dylib_module): New type.
	(BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New
	macros.
	(bfd_mach_o_dylib_table_of_content): New type.
	(BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro.
	(bfd_mach_o_dylib_reference): New type.
	(BFD_MACH_O_REFERENCE_SIZE): New macro.
	(bfd_mach_o_dysymtab_command): Add fields for loaded and decoded
	modules, toc, references and indirect syms.
	(BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro.
	(bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were
	unused).  Add comment.
	(bfd_mach_o_dylib_command): Ditto.
	(bfd_mach_o_prebound_dylib_command): Ditto.
	(bfd_mach_o_linkedit_command): New type.
	(bfd_mach_o_str_command): New type.
	(bfd_mach_o_load_command): Add linkedit and str fields.
	(mach_o_data_struct): Add symtab field.
	(bfd_get_mach_o_data): Renamed to ...
	(bfd_mach_o_get_data): ... this new macro.
	(bfd_mach_o_scan_read_symtab_symbol,
	bfd_mach_o_scan_read_symtab_strtab,
	bfd_mach_o_scan_read_symtab_symbols): Prototypes removed.

	* mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data
	instead of direct access.

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

	* elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
	R_PPC_PLTREL24 relocs.
	(ppc_elf_relocate_section): Likewise.

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

	* elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
	pointer to sym hash.  Update all uses.
	(update_plt_info): Likewise.  Don't check addend here.

2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
	bfd_sym_from_r_symndx.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

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

	* elf-bfd.h (struct sym_sec_cache): Delete.
	(struct sym_cache): New.
	(bfd_section_from_r_symndx): Delete prototype.
	(bfd_sym_from_r_symndx): Define prototype.
	* elf.c (bfd_section_from_r_symndx): Delete, replace with..
	(bfd_sym_from_r_symndx): ..new function.
	* elf32-arm.c: Update all uses of struct sym_sec_cache and
	bfd_section_from_r_symndx to new struct and function.
	* elf32-bfin.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-m68hc1x.h: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elfxx-sparc.c: Likewise.
	* elfxx-sparc.h: Likewise.

2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

2009-06-18  Nick Clifton  <nickc@redhat.com>

	* elflink.c (elf_link_sort_relocs): Return early if there are no
	relocs to sort.

2009-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>

	Merge cegcc and mingw32ce target name changes from
	CeGCC project:

	2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>

	* config.bfd: Add arm*-*-cegcc* target.

	2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>

	* config.bfd: Add arm-*-mingw32ce* target.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
	* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
	* elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
	* elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
	* elf32-i386.c (elf_i386_check_relocs): Use it.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

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

	* elf32-i386.c (elf_i386_dyn_relocs): Removed.
	(elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
	elf_dyn_relocs.
	(elf_i386_copy_indirect_symbol): Likewise.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_readonly_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.

	* elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
	(elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
	with elf_dyn_relocs.
	(elf64_x86_64_copy_indirect_symbol): Updated.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_gc_sweep_hook): Likewise.
	(elf64_x86_64_adjust_dynamic_symbol): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_readonly_dynrelocs): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.

2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-arm.c (create_got_section): Get existing .rela.got
	section.
	* elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
	* elf32-lm32.c (create_got_section): Likewise.
	* elf32-m32r.c (create_got_section): Likewise.
	* elf32-ppc.c (ppc_elf_create_got): Likewise.
	* elf32-s390.c (create_got_section): Likewise.
	* elf32-sh.c (create_got_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
	* elf64-s390.c (create_got_section): Likewise.
	* elfxx-sparc.c (create_got_section): Likewise.

	* elflink.c (_bfd_elf_create_got_section): Properly initialize
	the GOT size.

2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>

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

	* elf32-i386.c (elf_i386_local_hash): Removed.
	(elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
	(elf_i386_get_local_sym_hash): Likewise.

	* elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
	(elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
	(elf64_x86_64_get_local_sym_hash): Likewise.
	* elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
	(get_local_sym_hash): Likewise.

2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
	rel_got_sec and plt_sec.
	(elfNN_ia64_relax_section): Updated.
	(elfNN_ia64_create_dynamic_sections): Likewise.
	(get_got): Likewise.
	(allocate_dynrel_entries): Likewise.
	(elfNN_ia64_size_dynamic_sections): Likewise.
	(set_got_entry): Likewise.
	(elfNN_ia64_choose_gp): Likewise.
	(elfNN_ia64_relocate_section): Likewise.
	(elfNN_ia64_finish_dynamic_symbol): Likewise.
	(elfNN_ia64_finish_dynamic_sections): Likewise.

2009-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
	also for calls.

2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in (elf): Add elf-ifunc.lo.

	* configure: Regenerated.
	* Makefile.in: Likewise.

	* elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
	srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.

	* elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
	sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
	irelifunc.
	(elf_i386_link_hash_table_create): Likewise.
	(elf_i386_create_dynamic_sections): Likewise.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(elf_i386_finish_dynamic_sections): Likewise.
	(elf_i386_create_got_section): Removed.

	* elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
	sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
	irelifunc.
	(elf64_x86_64_compute_jump_table_size): Updated.
	(elf64_x86_64_link_hash_table_create): Likewise.
	(elf64_x86_64_create_dynamic_sections): Likewise.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_finish_dynamic_symbol): Likewise.
	(elf64_x86_64_finish_dynamic_sections): Likewise.
	(elf64_x86_64_create_got_section): Removed.

	* elflink.c (_bfd_elf_create_got_section): Use log_file_align
	for pointer alignment.  Set up section pointers.
	(_bfd_elf_create_dynamic_sections): Likewise.
	(_bfd_elf_create_ifunc_sections): Moved to ...
	* elf-ifunc.c: Here.  New.

	* Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
	(BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
	Run "make dep-am".

2009-06-16  Doug Kwan  <dougkwan@google.com>

	* elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
	to bfd_signed_vma.  Cast constant operands which are used in
	offset related expressions to bfd_signed_vma type as appropriate.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_reloc_type_class): New function.
	(elf_backend_reloc_type_class): Define.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_relocate_section): For symbol references
	from an executable to a shared library treat R_VAX_PC32
	relocations as R_VAX_PLT32 ones.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
	symbols in GOT space calculation.
	(elf_vax_relocate_section): Adjust accordingly.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
	include <R11:R2>.

2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>

	* elf32-vax.c (elf_vax_check_relocs): Handle the visibility
	attribute.
	(elf_vax_relocate_section): Likewise.

2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.

2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Reformat.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.

2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>

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

2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo.
	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.

2009-06-15  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: New Russian translation.
	* configure.in (ALL_LINGUAS): Add ru.
	* configure: Regenerate.

2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c: Remove duplicated comments.

2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10270
	* elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow
	dynamic IFUNC pointer in non-shared object.  Use .got.plt
	for IFUNC definition in PIE.
	(elf_i386_allocate_dynrelocs): Resolve IFUNC definition in
	PIE locally.

	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow
	dynamic IFUNC pointer in non-shared object.  Use .got.plt
	for IFUNC definition in PIE.
	(elf64_x86_64_relocate_section): Resolve IFUNC definition in
	PIE locally.

2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Properly report
	local symbol for unhandled relocation against STT_GNU_IFUNC
	symbol.
	(elf_i386_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_check_relocs):  Likewise.
	(elf64_x86_64_relocate_section): Likewise.

2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10269
	* elf32-i386.c: Include "objalloc.h" and "hashtab.h".
	(elf_i386_link_hash_table): Add loc_hash_table and
	loc_hash_memory.
	(elf_i386_local_hash): New.
	(elf_i386_local_htab_hash): Likewise.
	(elf_i386_local_htab_eq): Likewise.
	(elf_i386_get_local_sym_hash): Likewise.
	(elf_i386_link_hash_table_free): Likewise.
	(elf_i386_allocate_local_dynrelocs): Likewise.
	(elf_i386_finish_local_dynamic_symbol): Likewise.
	(bfd_elf64_bfd_link_hash_table_free): Likewise.
	(elf_i386_link_hash_table_create): Create loc_hash_table and
	loc_hash_memory.
	(elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_sections): Likewise.
	(elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym
	isn't NULL.

	* elf64-x86-64.c: Include "objalloc.h" and "hashtab.h".
	(elf64_x86_64_link_hash_table): Add loc_hash_table and
	loc_hash_memory.
	(elf64_x86_64_local_hash): New.
	(elf64_x86_64_local_htab_hash): Likewise.
	(elf64_x86_64_local_htab_eq): Likewise.
	(elf64_x86_64_get_local_sym_hash): Likewise.
	(elf64_x86_64_link_hash_table_free): Likewise.
	(elf64_x86_64_allocate_local_dynrelocs): Likewise.
	(elf64_x86_64_finish_local_dynamic_symbol): Likewise.
	(bfd_elf64_bfd_link_hash_table_free): Likewise.
	(elf64_x86_64_link_hash_table_create): Create loc_hash_table
	and loc_hash_memory.
	(elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC
	symbols.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_finish_dynamic_sections): Likewise.
	(elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if
	sym isn't NULL.

2009-06-10  Philip Blundell  <philb@gnu.org>

	* elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if
	elf_sec->this_hdr == NULL.

2009-06-12  Tristan Gingold  <gingold@adacore.com>

	* reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Regenerated.

	* mach-o.c (FILE_ALIGN): New macro.
	(bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol.
	(bfd_mach_o_print_symbol): Ditto.
	(bfd_mach_o_scan_write_thread): Adjust type of variable offset.
	(bfd_mach_o_get_reloc_upper_bound): New function.
	(bfd_mach_o_canonicalize_reloc): Ditto.
	(bfd_mach_o_scan_write_relocs): Ditto.
	(bfd_mach_o_scan_write_section_32): Remove offset argument.
	(bfd_mach_o_scan_write_section_64): Ditto.
	(bfd_mach_o_scan_write_segment_32): Write relocs.  Fix size of data
	written for load command.  Do not compute section file offset.
	(bfd_mach_o_scan_write_segment_64): Ditto.
	(bfd_mach_o_scan_write_symtab): Compute file offset first.
	Adjust for bfd_mach_o_asymbol.  Move code to convert from BFD to
	Mach-O to ...
	(bfd_mach_o_mangle_symbols): ... this new function.
	(bfd_mach_o_write_contents): Be sure to have load commands built.
	Call bfd_mach_o_mangle_symbols.
	(bfd_mach_o_build_commands): Adjust for filelen field.
	Use FILE_ALIGN macro.  Clear section file offset if section is empty.
	Do not set symtab file offset anymore here.
	(bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol.
	(bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc.
	Set reloc_count and rel_filepos section fields.
	(bfd_mach_o_scan_read_section_32): Type of argument offset is now
	unsigned int.
	(bfd_mach_o_scan_read_section_64): Ditto.
	(bfd_mach_o_scan_read_section): Ditto.
	(bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now
	bfd_mach_o_asymbol.  Use unsigned int for file offset type.
	(bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol.
	Handle weak-ref symbols.
	(bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol.
	(bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
	(bfd_mach_o_scan): Remove assignment to removed field.
	(bfd_mach_o_mkobject_init): Ditto.
	(bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter.
	(bfd_mach_o_bfd_reloc_type_lookup): New macro.
	(bfd_mach_o_bfd_reloc_name_lookup): Ditto.
	(bfd_mach_o_swap_reloc_in): Ditto.
	(bfd_mach_o_swap_reloc_out): Ditto.

	* mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY)
	(BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY)
	(BFD_MACH_O_REFERENCE_FLAG_DEFINED)
	(BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED)
	(BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY)
	(BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY)
	(BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED)
	(BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF)
	(BFD_MACH_O_N_WEAK_DEF): New macros.
	Add comments.
	(bfd_mach_o_section_type): Add new enumeration values.
	(BFD_MACH_O_S_SELF_MODIFYING_CODE)
	(BFD_MACH_O_S_ATTR_LIVE_SUPPORT)
	(BFD_MACH_O_S_ATTR_NO_DEAD_STRIP)
	(BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New
	macros.
	(BFD_MACH_O_GENERIC_RELOC_VANILLA)
	(BFD_MACH_O_GENERIC_RELOC_PAIR)
	(BFD_MACH_O_GENERIC_RELOC_SECTDIFF)
	(BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR)
	(BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto.
	(BFD_MACH_O_RELENT_SIZE): Ditto.
	(BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH)
	(BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE)
	(BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH)
	(BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto.
	(BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL)
	(BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE)
	(BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH)
	(BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto.
	(bfd_mach_o_reloc_info): New struct.
	(bfd_mach_o_asymbol): New struct.
	(bfd_mach_o_symtab_command): The symbols field is now of type
	bfd_mach_o_asymbol.
	(bfd_mach_o_load_command): The offset and len fields are now of type
	unsigned int.
	(mach_o_data_struct): Remove symbols, nsymbols and ibfd fields.
	Add a filelen field.  Add comments.
	(bfd_mach_o_backend_data): New struct.
	(bfd_mach_o_get_backend_data): New macro.
	(bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type
	bfd_mach_o_asymbol.
	(bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
	(bfd_mach_o_get_reloc_upper_bound): New prototype.
	(bfd_mach_o_canonicalize_reloc): Ditto.

	* mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
	duplicated macro.  Now defined to _bfd_generic_is_local_label.
	(TARGET_NAME_BACKEND): New macro...
	(TARGET_NAME_BACKEND): ... used to name a new variable.
	(TARGET_NAME): Define relocs table using bfd_mach_o, reference
	Mach-O backend data.

	* mach-o-i386.c (i386_howto_table): New variable.
	(bfd_mach_o_i386_swap_reloc_in): New function.
	(bfd_mach_o_i386_swap_reloc_out): Ditto.
	(bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto.
	(bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto.
	(bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros.
	(bfd_mach_o_bfd_reloc_type_lookup)
	(bfd_mach_o_bfd_reloc_name_lookup): Ditto.

2009-06-11  Eric Paris  <eparis@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	* opncls.c (_maybe_make_executable): New function.  Gives execute
	permission to an executable bfd that was opened for writing
	provided that it is a regular file.  Replaces common code found in...
	(bfd_close): here and ...
	(bfd_close_all_done): here.

2009-06-11  Anthony Green  <green@moxielogic.com>

	* reloc.c: Add BFD_RELOC_MOXIE_10_PCREL.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10
	relocation support.
	(moxie_reloc_map): Ditto.
	Clean up copyright notice.

2009-06-10  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* bfd-in2.h: bfd_mmap prototype.
	* bfdio.c (bfd_mmap): New function.
	* libbfd.h (bfd_iovec): Add bmmap.
	* cache.c (cache_bmmap): New function.
	(cache_iovec): Initialize bmmap member.
	* opencls.c (opncls_bmmap): New function.
	(opncls_iovec): Initialize bmmap member.

2009-06-09  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
	and stabstr_segment fields.
	(mach_o_be_vec, mach_o_le_vec): Removed
	(bfd_mach_o_version): New prototype.

	* mach-o.c (bfd_mach_o_version): Make this function public.
	(mach_o_wide_p): New function.
	(bfd_mach_o_wide_p): Ditto.
	(bfd_mach_o_convert_section_name_to_bfd): Add prefix only for
	weird names.
	(bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment.
	Search in the list only if the name starts with a dot.
	(bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded
	test.  Check bfd_seek status.
	(bfd_mach_o_scan_write_thread): Check bfd_seek status.
	(bfd_mach_o_scan_write_section_32): Ditto.
	(bfd_mach_o_scan_write_section_64): Ditto.
	(bfd_mach_o_scan_write_section): Removed.
	(bfd_mach_o_scan_write_segment): Split into ...
	(bfd_mach_o_scan_write_segment_32): ... this and ...
	(bfd_mach_o_scan_write_segment_64): ... this.  Check bfd_seek status.
	(bfd_mach_o_scan_write_symtab_symbols): Moved into ...
	(bfd_mach_o_scan_write_symtab): ... this.  Write symtab from BFD
	symbol table.  Now returns a boolean.
	(bfd_mach_o_write_contents): Set filetype.  Check bfd_seek status.
	Adjust for status type.
	(bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded
	test.  Write symbol table.  Numbers the sections.
	(bfd_mach_o_read_header): Check bfd_seek status.
	Use mach_o_wide_p instead of hard-coded test.
	(bfd_mach_o_scan_read_section_32): Check bfd_seek status.
	(bfd_mach_o_scan_read_section_64): Ditto.
	(bfd_mach_o_scan_read_symtab_symbol): Ditto.  Check bfd_seek status.
	Use BFD_MACH_O_N_TYPE instead of hard-coded value.  Correctly
	handled common symbols.
	(bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status.
	(bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
	(bfd_mach_o_scan_read_dylinker): Ditto.
	(bfd_mach_o_scan_read_dylib): Ditto.
	(bfd_mach_o_scan_read_thread): Ditto.
	(bfd_mach_o_scan_read_symtab): Ditto.
	Do not create a section for the stabs.
	(bfd_mach_o_scan_read_uuid): Check bfd_seek status.
	(bfd_mach_o_scan_read_segment): Ditto.
	(bfd_mach_o_scan_read_command): Ditto.
	(bfd_mach_o_scan_start_address): Ditto.
	(bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test.
	(bfd_mach_o_archive_p): Check bfd_seek status.
	(bfd_mach_o_core_fetch_environment): Ditto.

	* mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype.

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

	* elf32-i386.c (elf_i386_link_hash_table): Add irelifunc.
	(elf_i386_link_hash_table_create): Initialize irelifunc.
	(elf_i386_check_relocs): Updated.  Set up irelifunc for
	shared objects.
	(elf_i386_allocate_dynrelocs): Use irelifunc for dynamic
	relocation for non-GOT reference of STT_GNU_IFUNC symbol in
	shared objects.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc.
	(elf64_x86_64_link_hash_table_create): Initialize irelifunc.
	(elf64_x86_64_check_relocs): Updated.  Set up irelifunc for
	shared objects.
	(elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic
	relocation for non-GOT reference of STT_GNU_IFUNC symbol in
	shared objects.
	(elf64_x86_64_relocate_section): Likewise.

	* elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to
	...
	(_bfd_elf_create_ifunc_sections): This.

	* elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to
	...
	(_bfd_elf_create_ifunc_sections): This.  Create .rel[a].ifunc
	for shared objects.

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

	* elf32-i386.c (elf_i386_check_relocs): Make room for dynamic
	relocation for R_386_32 against STT_GNU_IFUNC symbol when
	building shared object.  Check info->executable instead of
	!info->shared when setting non_got_ref.
	(elf_i386_allocate_dynrelocs): Allocate dynamic relocation
	for non-GOT reference of STT_GNU_IFUNC symbol in shared
	object. Allocate GOT relocation agsinst STT_GNU_IFUNC
	symbol if needed.
	(elf_i386_relocate_section): Output dynamic relocation for
	R_386_32 against STT_GNU_IFUNC symbol to get the real
	function address when building shared object.
	(elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT
	relocation for STT_GNU_IFUNC symbol in shared object.

	* elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for
	dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC
	symbol when building shared object.  Check info->executable
	instead of !info->shared when setting non_got_ref.
	(elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation
	for non-GOT reference of STT_GNU_IFUNC symbol in shared
	library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol
	if needed.
	(elf64_x86_64_relocate_section): Output dynamic relocation
	for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real
	function address when building shared object.
	(elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT
	relocation for STT_GNU_IFUNC symbol in shared object.

2009-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.am: Run "make dep-am".
	(BFD32_BACKENDS): Add mach-o-i386.lo.
	(BFD32_BACKENDS_CFILES): Add mach-o-i386.c.
	* Makefile.in: Regenerate.

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

	* elf32-spu.c (spu_elf_relocate_section): Match overlay number
	when looking for soft-icache stubs.

2009-06-05  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h: Update copyright year.
	(bfd_mach_o_mach_header_magic): New enum.
	(bfd_mach_o_cpu_subtype): Now an enum.
	(BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros.
	(BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto.
	(BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto.
	(bfd_mach_o_load_command): Field type_required is now a boolean.
	Reindent prototypes.
	(bfd_mach_o_object_p, bfd_mach_o_core_p): Remove.
	(bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype.
	(bfd_mach_o_bfd_copy_private_section_data): Ditto.
	(bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
	(bfd_mach_o_get_symtab_upper_bound): Ditto.
	(bfd_mach_o_canonicalize_symtab): Ditto.
	(bfd_mach_o_get_symbol_info): Ditto.
	(bfd_mach_o_print_symbol): Ditto.
	(bfd_mach_o_bfd_print_private_bfd_data): Ditto.
	(bfd_mach_o_make_empty_symbol): Ditto.
	(bfd_mach_o_write_contents): Ditto.

	* mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p,
	bfd_mach_o_mkobject): Defines.
	(bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1.
	Do not check with target vector but with flavour.
	(struct mach_o_section_name_xlat): New declaration.
	(dwarf_section_names_xlat): Ditto.
	(text_section_names_xlat): Ditto.
	(data_section_names_xlat): Ditto.
	(struct mach_o_segment_name_xlat): Ditto.
	(segsec_names_xlat): Ditto.
	(bfd_mach_o_convert_section_name_to_bfd): New function.
	(bfd_mach_o_convert_section_name_to_mach_o): Ditto.
	(bfd_mach_o_bfd_copy_private_symbol_data): Make it public.
	(bfd_mach_o_bfd_copy_private_section_data): Ditto.
	(bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
	Accept any input and output flavour.  Do not share private data
	anymore.
	(bfd_mach_o_count_symbols): Add a comment.
	(bfd_mach_o_get_symtab_upper_bound): Make it public.
	(bfd_mach_o_canonicalize_symtab): Ditto.
	(bfd_mach_o_get_symbol_info): Ditto.
	(bfd_mach_o_print_symbol): Ditto.
	(bfd_mach_o_write_header): Now returns a boolean instead of an int.
	Use constants instead of hard-coded values.
	(bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded
	values.
	(bfd_mach_o_scan_write_section_64): Ditto.
	(bfd_mach_o_scan_write_segment): Ditto.
	Do not copy sections anymore.
	(bfd_mach_o_write_contents): Make it public.
	Remove dead code.  Rewrite typeflag assignment.
	(bfd_mach_o_build_commands): New function.
	(bfd_mach_o_set_section_contents): Ditto.
	(bfd_mach_o_make_empty_symbol): Make it public.
	(bfd_mach_o_read_header): Make it static.
	Convert to bfd_boolean.
	Use constants instead of hard-coded values.
	(bfd_mach_o_make_bfd_section): Call
	bfd_mach_o_convert_section_name_to_bfd to create name.
	(bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded
	values.
	(bfd_mach_o_scan_read_section_64): Ditto.
	(bfd_mach_o_scan_read_segment): Do not create a bfd section for
	a segment anymore.  Use constants instead of hard-coded values.
	(bfd_mach_o_scan_read_command): Fix style.
	(bfd_mach_o_scan): Use constants instead of hard-coded values.
	Get rid of BFD_IO_FUNCS.
	(bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject.
	(bfd_mach_o_header_p): Created from bfd_mach_o_object_p.
	(bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p.
	(bfd_mach_o_object_p): Removed.
	(bfd_mach_o_gen_core_p): New function, replaces ...
	(bfd_mach_o_core_p): ... deleted.
	(bfd_mach_o_bfd_print_private_bfd_data): Make it public.

	* mach-o-i386.c: New file.
	* config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin.
	* configure.in (TDEFINES): Add mach_o_i386_vec.
	* configure: Regenerated.
	* targets.c: Add mach_o_i386_vec.

	* mach-o.c: Update copyright years.
	(BFD_IO_FUNCS): Remove (was not used).
	(bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap
	bfd_mach_o_slurp_extended_name_table,
	bfd_mach_o_construct_extended_name_table,
	bfd_mach_o_truncate_arname, bfd_mach_o_write_armap,
	bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt,
	bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup,
	bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook,
	bfd_mach_o_get_section_contents_in_window,
	bfd_mach_o_bfd_is_local_label_name,
	bfd_mach_o_bfd_is_target_special_symbol,
	bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno,
	bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info,
	bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols,
	bfd_mach_o_minisymbol_to_symbol,
	bfd_mach_o_bfd_get_relocated_section_contents,
	bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create,
	bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols,
	bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link,
	bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach,
	bfd_mach_o_bfd_merge_private_bfd_data,
	bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents,
	bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections,
	bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group,
	bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol,
	bfd_mach_o_bfd_copy_private_header_data,
	bfd_mach_o_core_file_matches_executable_p): Move these defines ...
	* mach-o-target.c: ... here.
	Update copyright years.

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

	* dep-in.sed: Don't use \n in replacement part of s command.
	* Makefile.am (DEP1): LC_ALL for uniq.
	Run "make dep-am".
	* Makefile.in: Regenerate.

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

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of
	h->plt.refcount > 0 on STT_GNU_IFUNC symbol.
	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.

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

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate
	GOT entry for STT_GNU_IFUNC symbol with pointer equality.
	(elf_i386_relocate_section): Adjust R_386_GOT32 relocation
	against STT_GNU_IFUNC symbols for static executables.
	(elf_i386_finish_dynamic_symbol): Load GOT entry with
	PLT entry for STT_GNU_IFUNC symbol with pointer equality.

	* elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate
	GOT entry for STT_GNU_IFUNC symbol with pointer equality.
	(elf64_x86_64_finish_dynamic_symbol): Load GOT entry with
	PLT entry for STT_GNU_IFUNC symbol with pointer equality.

2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined
	symbols to be left unimported when linking statically.
	* xcofflink.c (xcoff_link_add_symbols): Ignore global linkage
	code when linking statically.

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

	* elf32-i386.c (elf_i386_check_relocs): Increment
	got.refcount for R_386_GOT32/R_386_GOTOFF relocations
	against STT_GNU_IFUNC symbol.
	(elf_i386_allocate_dynrelocs): Set got.refcount to 0 if
	local STT_GNU_IFUNC definition is used.
	(elf_i386_relocate_section): Handle got.offset != -1 for
	R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC
	symbol.

	* elf64-x86-64.c (elf64_x86_64_check_relocs): Increment
	got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64
	relocations against STT_GNU_IFUNC symbol.
	(elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if
	local STT_GNU_IFUNC definition is used.
	(elf64_x86_64_relocate_section): Handle got.offset != -1
	for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against
	STT_GNU_IFUNC symbol.

2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10205
	* elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
	(elf_i386_reloc_type_lookup): Likewise.
	(R_386_tls): Removed.
	(R_386_irelative): New.
	(R_386_vt_offset): Updated.
	(elf_i386_rtype_to_howto): Likewise.
	(elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
	(elf_i386_link_hash_table_create): Initialize igotplt,
	iplt and irelplt.
	(elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
	(elf_i386_adjust_dynamic_symbol): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
	sections.
	(elf_i386_finish_dynamic_symbol): When building a static
	executable, use .iplt, .igot.plt and .rel.iplt sections for
	STT_GNU_IFUNC symbols.  Generate R_386_IRELATIVE relocation for
	locally defined STT_GNU_IFUNC symbol.

	* elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
	(x86_64_reloc_map): Likewise.
	(R_X86_64_standard): Updated.
	(elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
	(elf64_x86_64_link_hash_table_create): Initialize igotplt,
	iplt and irelplt.
	(elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
	(elf64_x86_64_adjust_dynamic_symbol): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
	sections.
	(elf64_x86_64_finish_dynamic_symbol): When building a static
	executable, use .iplt, .igot.plt and .rela.iplt sections for
	STT_GNU_IFUNC symbols.  Generate R_X86_64_IRELATIVE relocation
	for locally defined STT_GNU_IFUNC symbol.

	* reloc.c (BFD_RELOC_386_IRELATIVE): New.
	(BFD_RELOC_X86_64_IRELATIVE): Likewise.

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

2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
	(_bfd_elf_make_ifunc_reloc_section): Removed.
	(_bfd_elf_is_ifunc_symbol): Likewise.
	(_bfd_elf_create_static_ifunc_sections): New.

	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
	symbol check to ...
	(elf_link_add_object_symbols): Here.
	(_bfd_elf_link_hash_hide_symbol): Don't clean plt on
	STT_GNU_IFUNC symbol.
	(elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
	if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
	(IFUNC_INFIX): Removed.
	(get_ifunc_reloc_section_name): Likewise.
	(_bfd_elf_make_ifunc_reloc_section): Likewise.
	(_bfd_elf_is_ifunc_symbol): Likewise.
	(_bfd_elf_create_static_ifunc_sections): New.

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

	* elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix.
	(create_got_section): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	(set_tls_module_base): Likewise.
	(dtpoff_base): Likewise.
	(tpoff): Likewise.
	(elf_i386_link_hash_table_create): Updated.
	(elf_i386_create_dynamic_sections): Likewise.
	(elf_i386_check_relocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix.
	(create_got_section): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	(set_tls_module_base): Likewise.
	(dtpoff_base): Likewise.
	(tpoff): Likewise.
	(elf64_x86_64_link_hash_table_create): Updated.
	(elf64_x86_64_create_dynamic_sections): Likewise.
	(elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.

2009-05-28  Nick Clifton  <nickc@redhat.com>

	* targets.c (_bfd_target_vector): Only include plugin target in
	all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.

2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (struct call_info): New member broken_cycle.
	(remove_cycle): Instead of physically removing call_info structures
	to break call graph cycles, mark them using the broken_cycle flag.
	(mark_overlay_section): Respect broken_cycle flag.
	(unmark_overlay_section): Likewise.
	(collect_lib_sections): Likewise.
	(collect_overlays): Likewise.
	(sum_stack): Likewise.

2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (insert_callee): Accumulate incoming callee->count.
	(mark_functions_via_relocs): Initialize callee->count to 1.
	(pasted_function): Likewise.
	(spu_elf_auto_overlay): Honor call counts when determining number
	of stubs required in software i-cache mode.

2009-05-27  Rafael Avila de Espindola  <espindola@google.com>

	* plugin.c (program_name): Remove.
	(plugin_program_name): New.
	(bfd_plugin_set_program_name): New.
	(try_load_plugin): Use plugin_program_name.
	* plugin.h (bfd_plugin_set_program_name): New.

2009-05-27  Rafael Avila de Espindola  <espindola@google.com>

	* aclocal.m4: Include ../config/plugins.m4.
	* configure.in: Use AC_PLUGINS.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2009-05-27  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-ppc.c (ppc_elf_relax_section): Work with a partial
	link.
	* bout.c (b_out_bfd_relax_section): Reject relocatable links.
	* elf32-m10300.c (mn10300_elf_relax_section): Likewise.
	* elf32-avr.c (elf32_avr_relax_section): Likewise.
	* elf32-frv.c (elf32_avr_relax_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_relax_section): Likewise.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise.
	* reloc.c (bfd_generic_relax_section): Likewise.
	* reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
	* vms.c (vms_bfd_relax_section): Likewise.

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

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

	* elf32-i386.c (is_indirect_symbol): Renamed to ...
	* elflink.c (_bfd_elf_is_ifunc_symbol): This.

	* elf32-i386.c (allocate_dynrelocs): Updated.
	(elf_i386_relocate_section): Likewise.
	* elf64-x86-64.c (allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.

	* elf64-x86-64.c (is_indirect_symbol): Removed.

2009-05-26  Nick Clifton  <nickc@redhat.com>

	* po/id.po: Updated Indonesian translation.

2009-05-26  Rafael Avila de Espindola  <espindola@google.com>

	* Makefile.am: Run "make dep-am".
	(AM_CPPFLAGS): New.
	(LIBDL): New.
	(ALL_MACHINES): Add cpu-plugin.lo.
	(ALL_MACHINES_CFILES): Add cpu-plugin.c.
	(BFD32_BACKENDS): Add plugin.lo.
	(BFD32_BACKENDS_CFILES): Add plugin.c.
	(libbfd_la_LIBADD): Add LIBDL
	* archures.c (bfd_architecture): Add bfd_arch_plugin.
	(bfd_plugin_arch): Declare.
	* bfd-in.h (BFD_SUPPORTS_PLUGINS): New.
	* bfd.c (bfd): Add plugin_data.
	* config.bfd: Handle the plugin target.
	* configure.in: Check for --enable-plugins.
	(LT_INIT): Use the dlopen option.
	* cpu-plugin.c: New.
	* plugin.c: New.
	* plugin.h: New.
	* targets.c (plugin_vec): Declare.
	(_bfd_target_vector): Add plugin_vec.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.

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

	* dep-in.sed: Don't modify .o to .lo here.  Output one filename
	per line with all lines having continuation backslash.  Prefix
	first line with "A", following lines with "B".
	* Makefile.am (DEP): Don't use dep.sed here.
	(DEP1): Run $MKDEP on single files, modify .o to .lo here.  Use
	dep.sed here on dependencies, sort and uniq.
	* Makefile.in: Regenerate.

2009-05-25  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms: Add verilog.obj to object list OBJS.

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

	* bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
	for BFD_IN_MEMORY is cleared.
	(bfd_bwrite): Zero excess memory allocated.

2009-05-22  Julian Brown  <julian@codesourcery.com>

	* elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
	macros.
	(elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b)
	(elf32_arm_stub_a8_veneer_blx): New stub sequences.
	(elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond,
	arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx.
	(elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields.
	(a8_erratum_fix, a8_erratum_reloc): New structs.
	(elf32_arm_link_hash_table): Add a8_erratum_fixes,
	num_a8_erratum_fixes, fix_cortex_a8 fields.
	(elf32_arm_link_hash_table_create): Zero fix_cortex_a8.
	(elf32_arm_add_stub): Split into two parts, creating...
	(elf32_arm_create_or_find_stub_sec): New function.
	(elf32_arm_final_link_relocate): Add forward declaration.
	(arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2
	relocations, multiple relocations per stub.
	(find_stub_size_and_template): New (using parts of arm_size_one_stub).
	(arm_size_one_stub): Use find_stub_size_and_template.
	(a8_reloc_compare): New.
	(find_thumb_glue): Add forward declaration.
	(cortex_a8_erratum_scan): New.
	(elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support.
	(bfd_elf32_arm_set_cortex_a8_fix): New.
	(bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument.
	(arm_map_one_stub): Add THUMB32_TYPE support.
	(a8_branch_to_stub_data): New.
	(make_branch_to_a8_stub): New.
	(elf32_arm_write_section): Add Cortex-A8 erratum workaround support.
	* bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New.
	(bfd_elf32_arm_set_target_relocs): Add argument for controlling
	Cortex-A8 erratum workaround.
	* bfd-in2.h: Regenerate.

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

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

2009-05-21  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (elf_link_input_bfd): Correct *pindex change in last
	commit.

2009-05-21  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_backend_data
	<elf_backend_link_output_symbol_hook>): Return an int.
	* elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop
	symbols on deleted .opd entries.
	* elflink.c (elf_link_output_sym): Return without outputting sym
	if output_symbol_hook returns 2.
	(elf_link_output_extsym): Don't assign h->indx when symbol discarded.
	Abort if we must not discard sym.
	(elf_link_input_bfd): Similarly, don't set finfo->indices for
	local syms.
	(bfd_elf_final_link): Adjust elf_link_output_sym calls.
	* elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for
	elf_backend_link_output_symbol_hook return type change.
	* elf32-arm.c (output_arch_syminfo): Likewise.
	(elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise.
	(elf32_arm_output_arch_local_syms): Likewise.
	* elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise.
	* elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise.
	(bfd_score_elf_link_output_symbol_hook): Likewise.
	* elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
	* elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
	* elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise.
	* elf32-spu.c (spu_elf_output_symbol_hook): Likewise.
	* elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
	* elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
	* elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.

2009-05-21  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on
	out of range .opd symbols.

2009-05-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	* coffgen.c (coff_print_symbol):  Use bfd_fprintf_vma, not
	fprintf_vma directly.
	* peXXigen.c (pe_print_edata):  Likewise.
	(pe_print_pdata):  Likewise.
	(_bfd_XX_print_ce_compressed_pdata):  Likewise.
	(_bfd_XX_print_private_bfd_data_common):  Likewise.

2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* cofflink.c (process_embedded_commands):  Ignore "-aligncomm".

2009-05-15  Andrew Stubbs  <ams@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	* elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to
	fix discarded sections.

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

	* elf32-spu.c (mark_overlay_section): Move .init and .fini
	sections into the software icache.

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

	* elf32-spu.c (build_stub): Always build "compact" sofware
	i-cache stubs.

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

	* elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2.
	(spu_elf_setup): Initialize it.
	(spu_elf_size_stubs): Move .ovtab into .bss for software i-cache.
	Update to new-sytle cache manager data structures.
	(spu_elf_build_stubs): Generate new-style cache manager data
	structures and symbols.
	(spu_elf_auto_overlay): Update size computation.

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

	* elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY
	segments first amongst the program headers.

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

	* elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
	into addresses for relocation types that look at high bits.  Remove
	special handling of relocation overflow warnings.

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

	* elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
	control flow graph between fragments of a function.

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

	* elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
	generate only a 16-byte .toe section.
	(spu_elf_build_stubs, spu_elf_auto_overlay): Likewise.

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

	* elf32-spu.c (spu_elf_size_stubs): Split out section placement to..
	(spu_elf_place_overlay_data): ..here.  New function.
	* elf32-spu.h (spu_elf_place_overlay_data): Declare.

2009-05-13  Andrew Jenner  <andrew@codesourcery.com>

	* elf32-arm.c: Move sysdep.h to start of file.

2009-05-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as
	start of overlays.
	(spu_elf_build_stubs): Don't define __icache_tagbase.  Define
	__icache_tag_array and __icache_tag_array_size.

2009-05-11  Masaki Muranaka  <monaka@monami-software.com>

	* elf32-bfin.c (bfin_bfd_reloc_type_lookup): Remove unnecessary
	ATTRIBUTE_UNUSED.
	(bfinfdpic_link_omit_section_dynsym): Likewise.
	(elf32_bfinfdpic_finish_dynamic_sections): Likewise.

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

	* bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
	(_arm_elf_section_data): Add text and exidx fields.
	(add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
	insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
	copy_exidx_entry): New functions.
	(elf32_arm_write_section): Fixup .ARM.exidx contents.

2009-05-05  Christophe lyon  <christophe.lyon@st.com>

	* elf32-arm.c (DEF_STUBS): New helper define.
	(DEF_STUB): Likewise.
	(stub_def): New type.
	(stub_definitions): New array, containing stub template pointers
	and sizes.
	(arm_size_one_stub): Make use of stub_definitions.

2009-05-04  Dave Korn  <dave.korn.cygwin@gmail.com>

	* elflink.c (find_version_for_sym):  Remove from here, ...
	* linker.c (bfd_find_version_for_sym):  ... rename, replace
	here, make public and update all callers.
	* bfd-in2.h:  Regenerate.

2009-04-30  Nick Clifton  <nickc@redhat.com>

	* elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs
	section pointer.
	(struct elf_obj_data): Add has_ifunc_symbols boolean.
	* elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags
	into a STT_GNU_IFUNC symbol type.
	(_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function
	type.
	(_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if
	the binary contains ifunc symbols.
	* elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC
	symbol type into a BSF_GNU_INDIRECT_FUNCTION flag.
	* elf32-i386.c (is_indirect_function): New function.
	(elf_i386_check_relocs): Create an ifunc output section.
	(allocate_dynrelocs): Create dynamic relocs in the ifunc output
	section if necessary.
	(elf_i386_relocate_section): Emit a reloc against an ifunc symbol
	if necessary.
	(elf_i386_add_symbol_hook): New function. Set the
	has_ifunc_symbols field of the elf_obj_data structure if an ifunc
	symbol is encountered.
	(elf_backend_post_process_headers): Define.
	(elf_backend_add_symbol_hook): Define.
	(elf_i386_post_process_headers): Rename to
	elf_i388_fbsd_post_process_headers.
	* elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro.
	(is_indirect_function): New function.
	(elf64_x86_64_check_relocs): Create an ifunc output section.
	(allocate_dynrelocs): Create dynamic relocs in the ifunc output
	section if necessary.
	(elf64_x86_64_relocate_section): Emit a reloc against an ifunc
	symbol if necessary.
	(elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the
	elf_obj_data structure if an ifunc symbol is encountered.
	(elf_backend_post_process_headers): Define.
	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT
	if we have ifunc symbols to handle.
	(get_ifunc_reloc_section_name): New function.  Computes the name
	for an ifunc section.
	(_bfd_elf_make_ifunc_reloc_section): New function.  Creates a
	section to hold ifunc relocs.
	* syms.c (BSF_GNU_INDIRECT_FUNCTION): Define.
	(bfd_print_symbol_vandf): Handle ifunc symbols.
	(bfd_decode_symclass): Likewise.
	* bfd-in2.h: Regenerate.

2009-04-30  Joseph Myers  <joseph@codesourcery.com>

	* elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute
	MOVW and MOVT relocations in a shared library link.

2009-04-27  Anthony Green  <green@moxielogic.com>

	* verilog.c: New file.
	* Makefile.am (BFD32_LIBS): Add verilog.c.
	(BFD32_LIBS_CFILES): Add verilog.c.
	(verilog.lo): New build rule.
	* Makefile.in: Rebuilt.
	* targets.c: Add verilog support.
	* bfd.c (tdata union): Add Verilog private data field.
	* bfd-in2.h: Regenerate.

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

	* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
	copy pe_opthdr.

2009-04-23  Matthias Klose  <doko@ubuntu.com>

	* peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.

2009-04-22  Christophe Lyon  <christophe.lyon@st.com>

	PR9743
	* elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24,
	R_ARM_JUMP24 and R_ARM_PLT32 relocations.
	(elf32_arm_size_stubs): Likewise.
	(record_thumb_to_arm_glue): Deleted unused function.
	(bfd_elf32_arm_process_before_allocation): No longer handle
	R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here.
	(elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24,
	R_ARM_JUMP24 and R_ARM_PLT32 relocations.

2009-04-21  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
	(elf32_arm_write_section): Declare early.
	(elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
	(arm_allocate_glue_section_space): Exclude empty sections.
	(ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
	(bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
	BFD.
	(elf32_arm_output_glue_section, elf32_arm_final_link): New.
	(elf32_arm_merge_eabi_attributes): Skip the stub BFD.
	(elf32_arm_size_dynamic_sections): Allocate interworking
	sections here.
	(bfd_elf32_bfd_final_link): Define.

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

	* coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K.

	* coffcode.h (coff_compute_section_file_positions): Clear
	D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE.

	* libcoff-in.h (pe_tdata): Remove force_minimum_alignment and
	force_minimum_alignment.

	* libcoff.h: Regenerated.

	* pei-ia64.c (PEI_TARGET_SUBSYSTEM): Removed.
	(PEI_FORCE_MINIMUM_ALIGNMENT): Likewise.

	* peicode.h (pe_mkobject): Don't set force_minimum_alignment
	nor target_subsystem.

	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't check
	force_minimum_alignment nor target_subsystem.

2009-04-21  Kai Tietz  <kai.tietz@onevision.com>

	* coff-x86_64.c (PEI_HEADERS): Protect includes.
	(bfd_pe_print_pdata): Remove #ifdef PE variation.
	* pei-x86_64.c (PEI_HEADERS): Define to prevent double
	include in coff-x86_64.c of headers.
	(PDATA_ROW_SIZE): New define.
	(pex_regs[]): New static array.
	(pex64_get_runtime_function): New static function.
	(pex64_get_unwind_info): Likewise.
	(pex64_get_scope_entry): Likewise.
	(pex64_xdata_print_uwd_codes): Likewise.
	(pex64_get_section_by_rva): Likewise.
	(pex64_dump_xdata): Likewise.
	(pex64_bfd_print_pdata): Likewise.
	(bfd_pe_print_pdata): Define as pex64_bfd_print_pdata.
	* peXXigen.c (_bfd_pex64_print_pdata): Removed implementation.
	* libpei.h (_bfd_pex64_print_pdata): Removed declaration.

2009-04-19  Peter O'Gorman  <binutils@mlists.thewrittenword.com>
	    Alan Modra  <amodra@bigpond.net.au>
	    Dave Korn  <dave.korn.cygwin@gmail.com>

	* peXXigen.c (_bfd_XXi_swap_sym_in): Fix name handling w.r.t
	long names and non-NUL-terminated strings.

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

	* bfd-in2.h: Regenerated.

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

	* peXXigen.c (_bfd_XX_print_private_bfd_data_common): Replace
	IMAGE_SUBSYSTEM_EFI_ROM with IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER.

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

	PR binutils/10074
	* coffcode.h (bfd_pei_p): New.

	* config.bfd: Remove bfd_efi_bsdrv_ia32_vec,
	bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
	bfd_efi_rtdrv_x86_64_vec, bfd_efi_bsdrv_ia64_vec and
	bfd_efi_rtdrv_ia64_vec.  Replace bfd_efi_app_ia32_vec,
	bfd_efi_app_x86_64_vec and bfd_efi_app_ia64_vec with
	i386pei_vec, x86_64pei_vec and bfd_pei_ia64_vec, respectively.

	* configure.in: Remove bfd_efi_bsdrv_ia32_vec,
	bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
	bfd_efi_rtdrv_x86_64_vec,
	bfd_efi_bsdrv_ia64_vec and bfd_efi_rtdrv_ia64_vec.  Replace
	bfd_efi_ia64_vec with bfd_pei_ia64_vec.
	* targets.c: Likewise.

	* configure: Regenerated.
	* libcoff.h: Likewise.
	* Makefile.in: Likewise.

	* efi-app-ia32.c: Removed.
	* efi-app-x86_64.c: Likewise.
	* efi-bsdrv-ia32.c: Likewise.
	* efi-bsdrv-ia64.c: Likewise.
	* efi-bsdrv-x86_64.c: Likewise.
	* efi-rtdrv-ia32.c: Likewise.
	* efi-rtdrv-ia64.c: Likewise.
	* efi-rtdrv-x86_64.c: Likewise.
	* efi-rtdrv-ia32.c: Likewise.

	* efi-app-ia64.c: Moved to ...
	* pei-ia64.c: This.
	(TARGET_SYM): Set to bfd_pei_ia64_vec.
	(TARGET_NAME): Set to pei-ia64.

	* libpei.h (bfd_target_pei_p): Removed.
	(bfd_target_pei_arch): Likewise.
	(bfd_target_efi_app_p): Likewise.
	(bfd_target_efi_app_arch): Likewise.
	(bfd_target_efi_bsdrv_p): Likewise.
	(bfd_target_efi_bsdrv_arch): Likewise.
	(bfd_target_efi_rtdrv_p): Likewise.
	(bfd_target_efi_rtdrv_arch): Likewise.
	(bfd_pe_executable_p): Likewise.

	* Makefile.am (BFD32_BACKENDS): Remove efi-app-ia32.lo,
	efi-bsdrv-ia32.lo and efi-rtdrv-ia32.lo.
	(BFD32_BACKENDS_CFILES): Remove efi-app-ia32.c, efi-bsdrv-ia32.c
	and efi-rtdrv-ia32.c.
	(BFD64_BACKENDS): Remove efi-app-ia64.lo, efi-bsdrv-ia64.lo,
	efi-rtdrv-ia64.lo, efi-app-x86_64.lo, efi-bsdrv-x86_64.lo and
	efi-rtdrv-x86_64.lo. Add pei-ia64.lo.
	(BFD64_BACKENDS_CFILES): Remove efi-app-ia64.c, efi-bsdrv-ia64.c,
	efi-rtdrv-ia64.c, efi-app-x86_64.c, efi-bsdrv-x86_64.c and
	efi-rtdrv-x86_64.c. Add pei-ia64.c.
	(efi-app-ia64.lo): Removed.
	(efi-bsdrv-ia32.lo): Likewise.
	(efi-rtdrv-ia32.lo): Likewise.
	(efi-app-ia64.lo): Likewise.
	(efi-bsdrv-ia64.lo): Likewise.
	(efi-rtdrv-ia64.lo): Likewise.
	(efi-app-x86_64.lo): Likewise.
	(efi-bsdrv-x86_64.lo): Likewise.
	(efi-rtdrv-x86_64.lo): Likewise.
	(pei-ia64.lo): New.

	* peicode.h (coff_swap_scnhdr_in): Replace bfd_pe_executable_p
	with bfd_pei_p.
	(arch_type): Removed.
	(pe_arch): Likewise.
	(pe_bfd_object_p): Just return coff_object_p.

	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Replace
	bfd_pe_executable_p with bfd_pei_p.

2009-04-17  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (elf32_arm_size_stubs): Handle long branches through
	PLT entries to an undefined symbol when generating a shared
	library.

2009-04-17  Nick Clifton  <nickc@redhat.com>

	PR 9909
	* coffcode.h (handle_COMDAT): Allow for external COMDAT symbols.

2009-04-16  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* aout-adobe.c (aout_32_bfd_define_common_symbol): Define.
	* aout-target.h (MY_bfd_define_common_symbol): Likewise.
	* aout-tic30.c (MY_bfd_define_common_symbol): Likewise.
	* binary.c (binary_bfd_define_common_symbol): Likewise.
	* bout.c (b_out_bfd_define_common_symbol): Likewise.
	* coff-alpha.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
	* coff-mips.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
	* coffcode.h (coff_bfd_define_common_symbol): Likewise.
	* elfxx-target.h (bfd_elfNN_bfd_define_common_symbol): Likewise.
	* i386msdos.c (msdos_bfd_define_common_symbol): Likewise.
	* i386os9k.c (os9k_bfd_define_common_symbol): Likewise.
	* ieee.c (ieee_bfd_define_common_symbol): Likewise.
	* ihex.c (ihex_bfd_define_common_symbol): Likewise.
	* libbfd-in.h (_bfd_nolink_bfd_define_common_symbol): Likewise.
	* mach-o.c (bfd_mach_o_bfd_define_common_symbol): Likewise.
	* mmo.c (mmo_bfd_define_common_symbol): Likewise.
	* nlm-target.h (nlm_bfd_define_common_symbol): Likewise.
	* oasys.c (oasys_bfd_define_common_symbol): Likewise.
	* pef.c (bfd_pef_bfd_define_common_symbol): Likewise.
	* ppcboot.c (ppcboot_bfd_define_common_symbol): Likewise.
	* som.c (som_bfd_define_common_symbol): Likewise.
	* srec.c (srec_bfd_define_common_symbol): Likewise.
	* tekhex.c (tekhex_bfd_define_common_symbol): Likewise.
	* versados.c (versados_bfd_define_common_symbol): Likewise.
	* vms.c (vms_bfd_define_common_symbol): Likewise.
	* xcoff-target.h (_bfd_xcoff_bfd_define_common_symbol): Likewise.
	* xsym.c (bfd_sym_bfd_define_common_symbol): Likewise.
	* coff-rs6000.c (rs6000coff_vec): Add _bfd_xcoff_define_common_symbol.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.
	* linker.c (bfd_generic_define_common_symbol): New function.
	* targets.c (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_define_common_symbol.
	(_bfd_define_common_symbol): New field.
	* libcoff-in.h (_bfd_xcoff_define_common_symbol): Declare.
	* xcofflink.c (_bfd_xcoff_define_common_symbol): New function.
	(xcoff_build_ldsyms): Don't set XCOFF_DEF_REGULAR for common
	symbols here.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.
	* libcoff.h: Likewise.

2009-04-15  Anthony Green  <green@moxielogic.com>

	* targets.c: Add moxie support.
	* Makefile.am: Ditto.
	* Makefile.in: Rebuilt.
	* cpu-moxie.c, elf32-moxie.c: New files.
	* archures.c: Add moxie support.
	* configure.in: Add moxie support.
	* configure: Rebuilt.
	* config.bfd, archures.c: Add moxie support.
	* bfd-in2.h: Rebuilt.

2009-04-15  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
	branch to an undef weak symbol into a jump to next instruction if
	a PLT entry will be created.

2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>

	* coffgen.c (make_a_section_from_file):  Set the backend long
	section names enable if long section names found on input.
	* coffcode.h:  Extend long section names documentation to match.

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

	* elflink.c (elf_link_add_object_symbols): Warn alternate ELF
	machine code.

2009-04-07  DJ Delorie  <dj@redhat.com>

	* archures.c: Add bfd_mach_mep_c5.
	* bfd-in2.h: Likewise.
	* cpu-mep.c: Add bfd_c5_arch.
	* elf32-mep.c: Support it.

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

	* elflink.c (_bfd_elf_section_already_linked): Add `\n' for
	info->callbacks->einfo.
	* linker.c (_bfd_generic_section_already_linked): Likewise.

2009-04-06  DJ Delorie  <dj@redhat.com>

	* elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.

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

	* coff-x86_64.c (bfd_pe_print_pdata): Defined to
	_bfd_pex64_print_pdata only if PE is defined.

	* libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
	(_bfd_pex64_print_pdata): This.

	* peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
	(_bfd_pex64_print_pdata): This.  Defined only if COFF_WITH_pex64
	is defined.

2009-04-05  Kai Tietz  <kai.tietz@onevision.com>

	* coff-x86_64.c (bfd_pe_print_pdata): Define as
	_bfd_pep_print_x64_pdata.
	* libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
	* peXXigen.c (_bfd_pep_print_x64_pdata): New.

2009-04-02  Sterling Augustine  <sterling@jaw.hq.tensilica.com>

	* elf32-xtensa.c (relax_property_section): Always set r_offset
	to zero.

2009-04-02  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
	elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
	branch stubs.
	(elf32_arm_stub_type): New enum values for the two new stubs.
	(arm_type_of_stub): Make use of the two new stubs.
	(arm_size_one_stub): Handle the two new stubs.

2009-04-01  Matt Thomas  <matt@netbsd.org>

	* elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
	hidden symbols into the GOT or PLT.GOT.
	(elf_vax_relocate_section): Do not emit a PCREL reloc
	into a shared object if it is against a hidden symbol.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
	and know_contains_shared_object_p.
	(xcoff_archive_contains_shared_object_p): Add an "info" parameter.
	Cache the result in the archive_info table.
	(xcoff_auto_export_p): Add an "info" parameter and update the
	call to xcoff_archive_contains_shared_object_p.
	(xcoff_mark_auto_exports): Update accordingly.
	(xcoff_post_gc_symbol): Likewise.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
	rather than C_EXT.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff-rs6000.c (member_layout): New structure.
	(archive_iterator): Likewise.
	(member_layout_init): New function.
	(archive_iterator_begin): Likewise.
	(archive_iterator_next): Likewise.
	(xcoff_write_armap_old): Use the new iterator functions.
	(do_shared_object_padding): Delete.
	(xcoff_write_armap_big): Use the new iterator functions.  Simplify
	handling of arch_info.
	(xcoff_write_archive_contents_old): Allocate arelt_data in the
	first loop rather than the second.  Allocate a member header if
	there isn't one, then work out the stat information and length
	in the first loop too.  Use the new iterators for the second loop.
	(xcoff_write_archive_contents_big): Likewise.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* bfd-in.h (bfd_xcoff_split_import_path): Declare.
	(bfd_xcoff_set_archive_import_path): Likewise.
	* bfd-in2.h: Regenerate.
	* xcofflink.c: Include libiberty.h.
	(xcoff_archive_info): New structure.
	(xcoff_archive_info_hash): New function.
	(xcoff_archive_info_eq): Likewise.
	(xcoff_get_archive_info): Likewise.
	(_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
	(bfd_xcoff_split_import_path): New function.
	(bfd_xcoff_set_archive_import_path): Likewise.
	(xcoff_set_import_path): Move earlier in file.
	(xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
	object to the the directory part of the bfd's filename.  Get the
	import path and filename of an archive object from the archive's
	xcoff_tdata, initializing it if necessary.  Update use of
	import_file_id.
	(bfd_link_input_bfd): Update use of import_file_id.
	(xcoff_write_global_symbol): Likewise.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.

2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_link_create_extra_sections): Don't create
	a .loader section for relocatable links.
	(xcoff_need_ldrel_p): New function.
	(xcoff_mark): Use it.
	(bfd_xcoff_link_count_reloc): Only count loader relocs if there's
	a loader section.
	(xcoff_build_ldsym): New function, split out from...
	(xcoff_build_ldsyms): ...here.  Rename to...
	(xcoff_post_gc_symbol): ...this.  Only export symbols, and only
	call xcoff_build_ldsym, if there's a loader section.
	(xcoff_build_loader_section): New function, extracted verbatim from...
	(bfd_xcoff_size_dynamic_sections): ...here.  Only call it if
	there's a loader section.  Only add an __rtinit loader symbol
	if there's a loader section.  Update after above name change.
	(xcoff_symbol_section, xcoff_create_ldrel): New functions.
	(bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
	and xcoff_create_ldrel.
	(xcoff_write_global_symbol): Use xcoff_create_ldrel.
	(xcoff_reloc_link_order): Likewise, but only call it if there's
	a loader section.  Use xcoff_symbol_section.
	(_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
	if there's a loader section.

2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.

2009-04-01  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (group_sections): Rewrite loops for better
	readability.

2009-03-30  DJ Delorie  <dj@redhat.com>

	* elflink.c (elf_link_input_bfd): Don't try to resolve complex
	relocs when doing a relocatable link.

2009-03-28  Mark Mitchell  <mark@codesourcery.com>

	* coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
	"ERROR:", in error messages.
	* cpu-arm.c (bfd_arm_merge_machines): Likewise.
	* elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
	* elf32-arm.c (tag_cpu_arch_combine): Likewise.
	(elf32_arm_merge_eabi_attributes): Likewise.
	(elf32_arm_merge_private_bfd_data): Likewise.

2009-03-27  Nick Clifton  <nickc@redhat.com>

	* section.c (bfd_get_section_contents): Detect and handle the case
	where a section has the SEC_IN_MEMORY flag set but no actual
	contents allocated.

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

	PR 6494
	* elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
	p_filesz and p_memsz are equal.  Use p_memsz as the segment size.
	(assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
	if we don't find matching PT_LOAD when copying.

2009-03-25  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
	the reloc descriptions.

2009-03-25  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
	<R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
	<case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.

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

	* cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
	(bfd_i386_arch_intel_syntax): Likewise.
	(i8086_arch): Likewise.
	(bfd_x86_64_arch): Likewise.

2009-03-24  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): <case
	R_CRIS_16_DTPREL, R_CRIS_32_DTPREL>: Allow use of non-local
	symbols for non-allocated sections.  Don't check whether to
	generate R_CRIS_DTPMOD for non-allocated sections.
	(cris_elf_gc_sweep_hook) <case R_CRIS_32_DTPREL>: Don't
	handle relocation GC:ing if applied to non-allocated section.
	(cris_elf_check_relocs): Similar.

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
	<R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: Don't include the TLS size
	when emitting a known TP offset in the GOT.

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

	* elf64-ppc.c (synthetic_opd): Delete.
	(compare_symbols): Look for .opd name rather than section match.
	(ppc64_elf_get_synthetic_symtab): Likewise.

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

	* elf32-ppc.c (is_pic_glink_stub): Delete.
	(is_nonpic_glink_stub): New function.
	(ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather
	than first pic one.
	(struct ppc_elf_link_hash_table <glink_pltresolve>): Comment fix.

2009-03-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_*
	macros for visibilty and locality checks.
	(elf_s390_adjust_dynamic_symbol): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_finish_dynamic_symbol): Likewise.
	* elf64-s390.c (elf_s390_check_relocs): Likewise.
	(elf_s390_adjust_dynamic_symbol): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_finish_dynamic_symbol): Likewise.

2009-03-19  Kai Tietz  <kai.tietz@onevision.com>

	* bfd-in2.h: Regenerated.
	* coffcode.h (sec_to_styp_flags): For pe-coff add SEC_READONLY
	for debugging sections and map memory read/write dependent on
	SEC_COFF_NOREAD.
	(styp_to_sec_flags): Set SEC_COFF_NOREAD for sections
	without memory read flags set.
	* section.c: Add SEC_COFF_NOREAD to section flags.

2009-03-19  Andreas Schwab  <schwab@linux-m68k.org>

	* elf32-hppa.c (final_link_relocate): Cast bfd_vma values to long
	for format string.

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

	* elf32-spu.c (spu_elf_find_overlays): Separate error return from
	"no overlays" return.  If there are overlays, create overlay
	manager entry symbols here, so that..
	(spu_elf_build_stubs): ..we don't need to set them up here.
	Simplify entry symbol tests.
	* elf32-spu.h (spu_elf_find_overlays): Update prototype.

2009-03-18  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (elfcore_grok_openbsd_procinfo)
	(elfcore_grok_openbsd_note): New functions.
	(elf_parse_notes): Handle notes from OpenBSD ELF core files.

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

	* vms-hdr.c: Don't include alloca.h.
	* elf32-m68hc1x.c: Include alloca-conf.h.
	* xsym.c: Likewise.
	* elf64-hppa.c: Likewise.  Remove existing #if's handling alloca.
	* som.c: Likewise.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2009-03-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.

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

	* elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
	Add compact_stub.
	(emum _ovly_flavour): Delete ovly_compact, ovly_none.
	* elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
	ovly_return fields with ovly_entry[2].  Adjust all users.
	(spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
	when soft-icache.
	(spu_elf_build_stubs): Likewise.
	(ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
	ovly_flavour changes.  Update all callers.
	(ovl_stub_size_log2): New function.
	(build_stub): Handle compact icache stubs.  Use different manager
	entry point for stubs in non-icache area.
	(spu_elf_size_stubs): Don't allocate space for indirect branch
	descriptors.
	(spu_elf_build_stubs): And don't built them.

2009-03-16  Andrew Stubbs  <ams@codesourcery.com>

	* dwarf2.c (read_section): Always use rawsize, if available.

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

	* simple.c (bfd_simple_get_relocated_section_contents): Use larger
	of rawsize and size for buffer.

2009-03-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
	parameter just because fixed sections fit into local store.
	(spu_elf_auto_overlay): Do not declare as "noreturn".  Skip
	generating overlays if fixed sections plus reserved stack
	and heap space fit into local store.

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

	* elf32-spu.c (build_stub): Correct icache set_id.
	(spu_elf_relocate_section): Likewise.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_link_check_archive_element): Only free the
	symbol table if it was created by the current call.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
	class XMC_DS rather than XMC_UA.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
	bfd_boolean export_defineds parameter with an unsigned int
	auto_export_flags parameter.
	* bfd-in2.h: Regenerate.
	* xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
	split out from xcoff_build_ldsyms.
	(xcoff_covered_by_expall_p): New function.
	(xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
	but with extra code to handle -bexpfull and -bexpall.
	(xcoff_mark_auto_exports): New function.
	(xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
	a function should be automatically exported.
	(bfd_xcoff_size_dynamic_sections): Replace the export_defineds
	parameter with an auto_export_flags parameter.  Update ldinfo
	accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
	exported symbols.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_mark_symbol_by_name): New function.
	(bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
	init and fini functions.  Do garbage collection for objects
	without an entry point too.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
	check whether a symbol has csect information.
	(coff_print_aux): Likewise.
	* coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
	information for C_AIX_WEAKEXT too.
	(_bfd_xcoff_swap_aux_out): Likewise.
	(xcoff_reloc_type_br): Handle defweak symbols too.
	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
	information for C_AIX_WEAKEXT too.
	(_bfd_xcoff64_swap_aux_out): Likewise.
	(xcoff64_reloc_type_br): Handle defweak symbols too.
	* coffgen.c (coff_print_symbol): Handle auxillary function
	information for C_AIX_WEAKEXT too.
	* xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
	instead of BSF_GLOBAL if the L_WEAK flag is set.
	(xcoff_dynamic_definition_p): New function.
	(xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
	defines h.  Don't change h if ldsym isn't the definition.  Otherwise,
	always take the symbol class from the ldsym.  Use weak bfd symbol
	types for weak ldsyms.
	(xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
	Fix the check for whether a definition is from a shared object.
	Allow redefinitions of weak symbols.
	(xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
	(xcoff_keep_symbol_p): Likewise.
	(bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
	(xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
	Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
	but mark them as L_WEAK.
	(xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
	instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_mark): When walking the relocations,
	only mark the target symbol or the target section, not both.
	(xcoff_final_definition_p): New function.
	(xcoff_keep_symbol_p): Use it to check whether an external XCOFF
	symbol is a valid definition of the associated output symbol.
	Use XCOFF_ALLOCATED to stop the same hash table entry having
	two output symbols.
	(bfd_xcoff_size_dynamic_sections): Set XCOFF_ALLOCATED when
	keeping a symbol.
	(xcoff_link_input_bfd): Use xcoff_final_definition_p.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (bfd_xcoff_import_symbol): Treat imported absolute
	symbols as XMC_XO.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
	* libcoff.h: Regenerate.
	* xcofflink.c (xcoff_link_add_symbols): Record per-symbol
	line-number counts in the bfd's lineno_counts field.
	Don't keep per-csect line-number counts.
	(xcoff_sweep): Don't update per-csect line-number counts.
	(bfd_xcoff_size_dynamic_sections): Count the number of line-number
	entries in each output section.
	(xcoff_link_input_bfd): Get the number of line numbers from
	the bfd's lineno_counts field, rather than recalculating it
	from scratch.  Fix the range check when updating C_BINCL and
	C_EINCL symbols.
	(_bfd_xcoff_bfd_final_link): Don't count the output line numbers
	here.  Don't expect csects to have line-number counts.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* libcoff-in.h (xcoff_tdata): Change debug_indices to a signed long.
	* libcoff.h: Regenerate.
	* xcofflink.c (xcoff_keep_symbol_p): New function, using the
	"skip" logic from xcoff_link_input_bfd.
	(bfd_xcoff_size_dynamic_sections): Explicitly skip dynamic
	objects in a dynamic link, rather than checking whether csectpp
	is null.  Always allocate debug_index for other objects,
	and always go through the loop.  Update the type of debug_index
	after the change above.  Read the auxillary csect information
	and use xcoff_keep_symbol_p to decide whether a symbol should
	be kept.  Set its debug_index to -2 if not.
	(xcoff_link_input_bfd): Update the type of debug_index after
	the change above and always expect it to be nonnull.  Use it to
	test whether a symbol should be stripped, rather than making the
	decision here.  Postpone all symbol creation to the second pass.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c: (xcoff_mark_symbol): Mark the TOC section when
	creating a descriptor.
	(xcoff_sweep): Don't mark toc_section unless it's needed.
	(bfd_xcoff_size_dynamic_sections): Skip the toc_section
	when marking every bfd.
	(xcoff_link_input_bfd): Skip all TOC anchors.
	(xcoff_toc_section_p, xcoff_find_tc0): New functions.
	(_bfd_xcoff_bfd_final_link): Don't set the output bfd's TOC anchor
	to -1; call xcoff_find_tc0 instead.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* libcoff-in.h (xcoff_section_tdata): Update commentary.
	* libcoff.h: Regenerate.
	* xcofflink.c (xcoff_link_add_symbols): Set the csect of XTY_ER
	symbols to bfd_und_section_ptr or bfd_abs_section_ptr, rather than
	the previous symbol's csect.  Treat last_symndx as an inclusive value
	and simplify its handling.
	(xcoff_mark): Treat last_symndx as an inclusive value.  Only mark
	symbols with the right csect.  Don't mark rsec when processing
	relocations against undefined or absolute sections.
	(bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
	of bfd_und_section_ptr.
	(xcoff_link_input_bfd): Likewise.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
	against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
	flag is set.  Assert that all undefined symbols are either
	imported or defined by a dynamic object.
	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
	* xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
	handling to all relocations.  Only set XCOFF_CALLED for function
	symbols.
	(xcoff_find_function): New function, split out from...
	(bfd_xcoff_export_symbol) ...here.
	(xcoff_set_import_path): New function, split out from...
	(bfd_xcoff_import_symbol): ...here.  Remove assertion for old
	meaning of XCOFF_CALLED.
	(xcoff_mark_symbol): If we mark an undefined and unimported
	symbol, find some way of defining it.  If the symbol is a function
	descriptor, fill in its definition automatically.  If the symbol
	is a function, mark its descriptor and allocate room for global
	linkage code.  Otherwise mark the symbol as implicitly imported.
	Move the code for creating function descriptors from...
	(xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to
	check for symbols that were implicitly defined.
	(xcoff_mark): Don't count any dynamic relocations against
	function symbols.
	(bfd_xcoff_size_dynamic_sections): Save the rtld parameter
	in the xcoff link info.
	(xcoff_link_input_bfd): Remove handling of undefined and
	unexported symbols.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff-rs6000.c (xcoff_reloc_type_br): Make the branch absolute
	if the target is absolute.  Fix comment typo.
	(xcoff_ppc_relocate_section): Remove FIXME.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Make the branch absolute
	if the target is absolute.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
	R_POS and R_NEG relocations against absolute symbols to the
	.loader section.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
	to 2 for bfd_mach_ppc_620.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* config.bfd: Treat AIX 6+ in the same way as AIX 5.
	* configure.in: Likewise.
	* configure: Regenerate.

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

	PR binutils/9945
	* elf.c (assign_section_numbers): Generate symbol table if there
	is any relocation in output.
	(_bfd_elf_compute_section_file_positions): Likewise.

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

	PR 9934
	* elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
	* elflink.c (elf_link_read_relocs_from_section): Use
	NUM_SHDR_ENTRIES.  Gracefully handle the case where there are
	relocs but no symbol table.
	* elf32-arm.c (elf32_arm_check_relocs): Likewise.

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

	PR ld/9938
	* elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
	to check ___tls_get_addr.

	* elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
	strncmp to check __tls_get_addr.

2009-03-12  Andrew Stubbs  <ams@codesourcery.com>

	* dwarf2.c (read_section): Always check the offset, even when the
	section has been read before.

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

	* elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
	comments.

2009-03-11  Chris Demetriou  <cgd@google.com>

	* bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
	* bfd-in2.h: Regenerate.
	* archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
	flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
	mode.
	(bsd_write_armap): Likewise.
	(_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
	flag is set, do nothing.
	(coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
	for timestamp.

2009-03-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* elf32-spu.c (find_function_stack_adjust): Handle sf instruction
	used to update stack pointer.

2009-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR binutils/9921
	* som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
	for unknown symbols in absolute section.

2009-03-06  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2009-03-05  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (group_sections): Take next section size into
	account before accepting to group it.

2009-03-05  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_type_of_stub): Handle long branches targetting
	PLT entries.
	(elf32_arm_final_link_relocate): Likewise.

2009-03-05  Moritz Kroll  <Moritz.Kroll@gmx.de>

	PR 9923
	* peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.

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

	* reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
	* section.c (struct bfd_section): Add has_tls_get_addr_call.
	(BFD_FAKE_SECTION): Init new flag.
	* ecoff.c (bfd_debug_section): Likewise.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
	(ppc_elf_reloc_type_lookup): Handle new relocs.
	(ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
	without marker relocs.
	(ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
	if section has no old-style calls.
	(ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
	Don't try to optimize new-style __tls_get_addr call when handling
	arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
	relocs.
	* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
	(ppc64_elf_reloc_type_lookup): Handle new relocs.
	(ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
	without marker relocs.
	(ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
	if section has no old-style calls.  Set toc_ref for new relocs as
	appropriate.
	(ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
	Don't try to optimize new-style __tls_get_addr call when handling
	arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
	relocs.

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

	PR 6768
	* configure.in: Test for ld --as-needed support.  Link shared
	libbfd against libm.
	* configure: Regenerate.

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

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

2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>

	* elf32-score7.c: New file.
	* elf32-score.h: New file.
	* elf32-score.c: Add code to support score 7.  Set score7 as the
	default.
	* cpu-score.c: Add score7 architecure.
	(compatibile): New function.
	* Makefile.am: Add rules for building elf32-score7 object.
	* Makefile.in: Regenerate.
	* configure.in: Add elf32-score7 object to score vectors.
	* configure: Regenerate.
	* reloc.c: Add score7 relocs.
	* archures.c: Add score3 and score7 machine numbers.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf32-hppa.c (hppa32_elf_local_refcounts): New function.
	(elf32_hppa_check_relocs): Use it.

	* elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to
	elf64-hppa.c.
	(elf_hppa_unmark_useless_dynamic_symbols): Likewise.
	(elf_hppa_remark_useless_dynamic_symbols): Likewise.
	(elf_hppa_is_dynamic_loader_symbol): Likewise.
	(elf_hppa_record_segment_addrs): Likewise.
	(elf_hppa_final_link): Likewise.
	(elf_hppa_relocate_insn): Likewise.
	(elf_hppa_final_link_relocate): Likewise.
	(elf64_hppa_relocate_section): Likewise.
	* elf64-hppa.c: Insert above.

2009-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link.
	(elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table.
	(elf_hppa_relocate_section): Likewise.
	* elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive
	from struct elf_link_hash_entry.  Add count field.
	(struct elf64_hppa_dyn_hash_table): Delete.
	(struct elf64_hppa_link_hash_table): Delete dyn_hash_table field.
	(elf64_hppa_hash_table): Rename to hppa_link_hash_table.
	(hppa_elf_hash_entry, eh_name): Define.
	(elf64_hppa_new_dyn_hash_entry): Delete.
	(elf64_hppa_dyn_hash_lookup): Delete.
	(elf64_hppa_dyn_hash_traverse): Delete.
	(get_dyn_name): Delete.
	(elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead
	of struct elf64_hppa_dyn_hash_entry *.
	(elf64_hppa_finalize_dlt, llocate_global_data_dlt,
	allocate_global_data_plt, allocate_global_data_stub,
	allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries):
	Likewise.
	(hppa64_link_hash_newfunc): New.
	(elf64_hppa_hash_table_create): Rework.
	(count_dyn_reloc): Likewise.
	(hppa64_elf_local_refcounts): New.
	(elf64_hppa_check_relocs): Rework using standard technique for recording
	local DLT, PLT and OPD reference counts.
	(elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct
	elf_link_hash_entry *.
	(elf64_hppa_mark_exported_functions, allocate_global_data_dlt,
	allocate_global_data_plt, allocate_global_data_stub,
	allocate_global_data_opd, allocate_dynrel_entries,
	elf64_hppa_adjust_dynamic_symbol,
	elf64_hppa_mark_milli_and_exported_functions): Likewise.
	(elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections):
	Use hppa_link_hash_table.  Rework.
	(elf64_hppa_link_output_symbol_hook): Rework.
	(elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd,
	elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc,
	elf64_hppa_finish_dynamic_sections): Likewise.

2009-02-26  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (stub_reloc_type): Removed.
	(insn_sequence): Renamed reloc_type field to r_type.
	(elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub.
	(elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise.
	(elf32_arm_stub_long_branch_thumb_only_pic): Likewise.
	(elf32_arm_stub_type): Add new enum entries for the new stubs.
	(arm_stub_is_thumb): Catch new stubs.
	(arm_type_of_stub): Handle new stubs.
	(arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs.
	(bfd_elf32_arm_process_before_allocation): Remove useless
	condition.

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

	* elf.c (elf_find_function): Use is_function_type to check
	function symbol.

2009-02-24  Sterling Augustine  <sterling@jaw.hq.tensilica.com>

	* xtensa-modules.c: Revert to previous version 1.11 due
	to inadvertant commit.

2009-02-24  Sterling Augustine  <sterling@tensilica.com>

	* elf32-xtensa.c (text_action_add): Separate test for action
	type.  Break if saved action is ta_widen_insn at same offset.

2009-02-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename
	to elf32_arm_stub_long_branch_any_arm_pic.
	(elf32_arm_stub_long_branch_any_thumb_pic): New.
	(enum elf32_arm_stub_type, arm_type_of_stub)
	(arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC
	separately.

2009-02-24  Joseph Myers  <joseph@codesourcery.com>

	* elf32-arm.c (PREV_SEC): Update comment.
	(group_sections): Rename argument to stubs_always_after_branch.
	Reverse the list and place stubs at the end of input sections.
	Undefine NEXT_SEC.
	(elf32_arm_size_stubs): Update to use stubs_always_after_branch.

2009-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset.
	Fix formatting.
	(arm_size_one_stub): Remove unnecessary break.
	(arm_map_one_stub): Fix formatting.  Return after BFD_FAIL.

2009-02-23  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (stub_insn_type): New type.
	(stub_reloc_type): Likewise.
	(insn_sequence): Likewise.
	(elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
	(elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
	(elf32_arm_stub_long_branch_thumb_only): Likewise.
	(elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
	(elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
	(elf32_arm_stub_long_branch_any_any_pic): Likewise.
	(elf32_arm_stub_hash_entry): Add new helper fields.
	(stub_hash_newfunc): Initialize these new fields.
	(arm_build_one_stub): Encode Arm and Thumb instructions separately
	to take endianness into account.
	(arm_size_one_stub): Compute size of stubs using insn_sequence.
	(arm_map_one_stub): Code is now more generic, thanks to
	insn_sequence.

2009-02-23  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub
	code.
	(elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
	(arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when
	BLX is not available. Fix typo in warning message. Add comments
	and improve formatting.
	(arm_build_one_stub): Adjust to new
	elf32_arm_stub_long_branch_v4t_thumb_arm stub.
	(arm_map_one_stub): Likewise.

2009-02-23  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>
	    Douglas B Rupp  <rupp@gnat.com>

	* vms.h: Update copyright year, fix comments, reorder declarations.
	(_bfd_save_vms_section): Remove the prototype.
	(EGPS_S_V_NO_SHIFT): New constant.
	(bfd_vms_set_section_flags): New prototype.
	(EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New
	constants.
	(EGSY_S_W_FLAGS): Ditto.
	(EGSY_S_V_QUAD_VAL): Ditto.
	(ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto.
	(EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX,
	EGST_S_B_NAMLNG): Ditto.
	(ESRF_S_B_NAMLNG): Ditto.
	(ETIR_S_C_HEADER_SIZE): Ditto.
	(EGPS_S_V_ALLOC_64BIT): Ditto.
	(DST_S_C_EPILOG): Ditto.
	(DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto.
	(DST_S_C_SRC_INCRLNUM_B): Ditto.
	(DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto.
	(DST_S_L_PCLINE_UNSLONG): Ditto.
	(DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto
	(DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto
	(DST_S_C_SOURCE_HEADER_SIZE): Ditto.
	(DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto.
	(DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto.
	(DST_S_B_SRC_UNSBYTE): Ditto.
	(DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto.
	Add prototypes.
	(vms_section, vms_reloc): Remove types.
	(hdr_struc): Replaced by ...
	(hdr_struct): ... new type.
	(EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants.
	(EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto.
	(EMH_DATE_LENGTH): Ditto.
	(eom_struc): Replaced by ...
	(eom_struct): ... new type.
	(EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants.
	(EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto.
	(EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto.
	(EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto.
	(EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto.
	(EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto.
	(EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto.
	(EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto.
	(EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto.
	(EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto.
	(EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto.
	(EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto.
	(EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto.
	(EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto.
	(EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto.
	(DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto.
	(DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto.
	(DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH)
	(DBG_S_C_DMT_PSECT_SIZE): Ditto.
	(enum file_type_enum): New type.
	(struct location_struct): Removed.
	(struct fileinfo, struct srecinfo, struct lineinfo): New types.
	(struct funcinfo, struct module): Ditto.
	(struct vms_private_data_struct): Update fields.
	(struct vms_section_data_struct): New type.

	* vms.c: Update copyright year, fix comments,
	Fix includes for DECC, add prototypes.
	(vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove
	some initializers.
	Use flavour to set is_vax, location_stack is removed.
	(struct pair): Declare.
	(fill_section_ptr): Initialize variables at declaration.
	Add guard to set SECTION_SYM flag, handlde und section.
	(vms_fixup_sections): Use struct pair for fill_section_ptr argument.
	(_bfd_vms_slurp_object_records): New function, replaces previous
	vms_object_p.
	(vms_slurp_module): New function.
	(vms_slurp_image): Ditto.
	(vms_object_p): Complete rewrite.
	(vms_mkobject): Use is_vax field to slect architecture.
	(free_reloc_stream): New function.
	(vms_convert_to_var): Ditto.
	(vms_convert_to_var_1): Ditto.
	(vms_convert_to_var_unix_filename): Ditto.
	(vms_close_and_cleanup): Call free_reloc_stream, convert file to
	VAR format on VMS.
	(vms_new_section_hook): Set alignment to 0, allocate private data.
	(vms_get_section_contents): Load content.
	(vms_get_symbol_info): Handle undefined section.
	(vms_find_nearest_line): Handle.
	(alloc_reloc_stream): New function.
	(vms_slurp_reloc_table): Ditto.
	(vms_get_reloc_upper_bound): Make it real.
	(vms_canonicalize_reloc): Do the real work.
	(alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA,
	ALPHA_R_BOH.
	(vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH.
	(vms_set_arch_mach): Check arch.
	(vms_set_section_contents): Copy the content after allocation.
	(vms_alpha_vec): Update object flags.

	* vms-tir.c: Update copyright year, fix comments,
	add prototypes for new functions.
	(dst_define_location): New function.
	(dst_restore_location): New function.
	(dst_retrieve_location): New function.
	(dst_check_allocation): New function.
	(image_dump): Call dst_check_allocation.
	(image_write_b): Ditto.
	(image_write_w): Ditto.
	(image_write_l): Ditto.
	(image_write_q): Ditto.
	(cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW,
	STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC,
	CTL_STKDL.
	Call error handler instead of abort if name is not known.
	(etir_sta): Add quarter_relocs argument and set it.
	Fix cast.
	(etir_sto): Ditto.
	(etir_opr): Ditto, return FALSE in case of error.
	(etir_ctl): Add quarter_relocs argument and set it, fix cast.
	Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL.
	(etir_stc): Add quarter_relocs argument and set it, fix cast.
	Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA.
	Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL.
	Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS.
	Return FALSE in case of error.
	(tir_sta): Change sign of psect.
	(tir_ctl): Ditto.
	(tir_cmd): Fix cast. Makes tir_table static const.
	(etir_cmd): Add quarter_relocs argument, makes etir_table const,
	add argument to explain.
	(analyze_etir): Initialize maxptr, add quarter_relocs
	declaration, move some declarations into inner scopes.
	Handle quarter_relocs and STO_IMM.
	(_bfd_vms_slurp_tir): Use constant instead of hard-coded values.
	(_bfd_vms_slurp_relocs): New function.
	(_bfd_vms_decode_relocs): New function.
	(sto_imm): Rewritten.
	(start_first_etbt_record): New function.
	(start_another_etbt_record): Ditto.
	(etir_output_check): Ditto.
	(defer_reloc_p): Ditto.
	(_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to
	a for-loop.  Correctly deals with contents, deals with .vmsdebug,
	rewritte relocations handling.
	(_bfd_vms_write_tbt): Removed.
	(_bfd_vms_write_dbg): Ditto.

	* vms-misc.c: Update copyright year, Fix comments.
	(_bfd_vms_get_header_values): Use 'size' instead of 'length'.
	(maybe_adjust_record_pointer_for_object): New function.
	(_bfd_vms_get_first_record): New function, replaces ...
	(_bfd_vms_get_record): ..  removed.
	(_bfd_vms_get_object_record): New function.
	(_bfd_vms_get_object_record): New function.
	(vms_get_remaining_object_record): New function, replaces ...
	(_bfd_vms_get_next_record): ... removed.
	(add_new_contents): Removed.
	(_bfd_save_vms_section): Removed.
	(_bfd_get_vms_section): Removed.
	(_bfd_vms_output_flush): Write in VAR format.
	(new_symbol): Don't make UND section.

	* vms-hdr.c: Update copyright year, update list of record handled.
	(_bfd_vms_slurp_hdr): rec_length renamed to rec_size.
	(_bfd_vms_write_hdr): Strip vms and unix patches,
	add comments, truncate module name at 31 characters,
	use constants instead of hard-coded value,
	write BFD version instead of a fixed string.
	(_bfd_vms_slurp_ihd): New function.
	(_bfd_vms_slurp_isd): Ditto.
	(_bfd_vms_slurp_ihs): Ditto.
	(new_module): Ditto.
	(parse_module): Ditto
	(build_module_list): Ditto.
	(module_find_nearest_line): Ditto.
	(_bfd_vms_find_nearest_dst_line): Ditto.
	(vms_slurp_debug): Ditto.
	(_bfd_vms_slurp_dbg): Ditto.
	(_bfd_vms_slurp_tbt): Ditto.
	(_bfd_vms_write_dbg): Ditto.
	(_bfd_vms_write_tbt): Ditto.

	* vms-gsd.c: Update copyright year, update list of records handled.
	(EVAX_LITERALS_NAME): New macro.
	(evax_section_flags): Add an entry for EVAX_LITERALS_NAME.
	(gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd.
	(register_universal_symbol): New function and prototype.
	(_bfd_vms_slurp_gsd): Fix indentations and casts,
	improve debug messages,
	use constants instead of hard-coded value,
	fix missing endianness conversion,
	handle global symbol (SYMG).
	(bfd_vms_set_section_flags): New function.
	(_bfd_vms_write_gsd): Don't write .vmsdebug section,
	handle section literals,
	fix indentation,
	handle section bfd and vms flags,
	don't output LIB$INITIALIZE symbol,
	fix handling of weak symbols,
	fix evax vs vax procedure descriptor,
	handle absolute symbols.

	* reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR,
	BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations.

	* makefile.vms (DEFS): Fix flags for VMS.

	* bfdio.c (real_fopen): Handle multiple VMS fopen attributes.

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

2009-02-20  Cary Coutant  <ccoutant@google.com>

	* vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime
	in struct stat.

2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR gas/7059
	* coffcode.h (coff_write_object_contents):  Don't let the string
	table offset overflow the s_name field when using long section names.

2009-18-02  Dave Korn  <dave.korn.cygwin@gmail.com>

	* coff-alpha.c (alpha_ecoff_backend_data):  Initialise fields which
	control long section name handling with ECOFF_NO_LONG_SECTION_NAMES.
	* coff-mips.c (mips_ecoff_backend_data):  Likewise.
	* coff-rs6000.c (bfd_xcoff_backend_data):  Initialise fields which
	control long section name handling with XCOFF_NO_LONG_SECTION_NAMES.
	(bfd_pmac_xcoff_backend_data):  Likewise.
	* coff64-rs6000.c (bfd_xcoff_backend_data):  Likewise.
	(bfd_xcoff_aix5_backend_data):  Likewise.
	(xcoff64_write_object_contents):  Delete unused long_section_names
	local variable.
	* coff-sh.c (bfd_coff_small_swap_table):  Initialise long section
	name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire
	struct non-const.
	* coffcode.h (documentation):  Update to describe long section names.
	(COFFLONGSECTIONCATHELPER):  New helper macro.
	(BLANKOR1TOODD):  Likewise.
	(COFF_ENABLE_LONG_SECTION_NAMES):  Likewise.
	(COFF_LONG_SECTION_NAMES_SETTER):  Likewise.
	(COFF_DEFAULT_LONG_SECTION_NAMES):  Likewise.
	(bfd_coff_set_long_section_names_allowed):  New function.
	(bfd_coff_set_long_section_names_disallowed):  Likewise.
	(struct bfd_coff_backend_data):  Add new backend hook function
	pointer _bfd_coff_set_long_section_names.
	(bfd_coff_set_long_section_names):  New backend hook.
	(coff_write_object_contents):  Only generate long section names if
	bfd_coff_long_section_names() indicates they are currently enabled.
	(bfd_coff_std_swap_table):  Make non-const, and initialise long
	section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
	(ticoff0_swap_table):  Likewise to both.
	(ticoff1_swap_table):  Again, likewise to both.
	* coffgen.c (make_a_section_from_file):  Allow long section names
	as inputs even if not currently allowed for outputs.
	* ecoff.c (_bfd_ecoff_no_long_sections):  New function.
	* efi-app-ia32.c (COFF_LONG_SECTION_NAMES):  Define to 0, not blank.
	* efi-app-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-app-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-arm.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-i386.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-mcore.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-mips.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-ppc.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-sh.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* pei-x86_64.c (COFF_LONG_SECTION_NAMES):  Likewise.
	* libcoff-in.h:  Update copyright year to cause updated copyright
	year in generated libcoff.h, and fix typo.
	* libcoff.h:  Regenerated.
	* libecoff.h (ECOFF_NO_LONG_SECTION_NAMES):  New macro.
	(_bfd_ecoff_no_long_sections):  Add prototype.
	* libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES):  New macro.
	* pe-mips.c (COFF_LONG_SECTION_NAMES):  Define empty if not already
	defined by an including .c file.
	* ticoff.h (ticoff0_swap_table):  Make non-const, and initialise
	long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
	(ticoff1_swap_table):  Likewise to both.

2009-02-18  Christophe Lyon  <christophe.lyon@st.com>

	* elf32-arm.c (arm_build_one_stub): Fix relocation target for pic
	stub. Catch default case error.
	(arm_map_one_stub): Add missing Thumb mapping symbol.

2009-02-18  Bjoern Haase  <bjoern.m.haase@web.de>

	PR 9841
	* elf32-avr.c: Handle case where no local symbos exist correctly.

2009-02-16  Christophe Lyon  <christophe.lyon@st.com>

	bfd/
	* elf32-arm.c (arm_long_branch_stub,
	arm_thumb_v4t_long_branch_stub,
	arm_thumb_thumb_long_branch_stub,
	arm_thumb_arm_v4t_long_branch_stub,
	arm_thumb_arm_v4t_short_branch_stub,
	arm_pic_long_branch_stub):
	Renamed to elf32_arm_stub_long_branch_any_any,
	elf32_arm_stub_long_branch_v4t_arm_thumb,
	elf32_arm_stub_long_branch_thumb_only,
	elf32_arm_stub_long_branch_v4t_thumb_arm,
	elf32_arm_stub_short_branch_v4t_thumb_arm,
	elf32_arm_stub_long_branch_any_any_pic.
	(arm_stub_long_branch, arm_thumb_v4t_stub_long_branch,
	arm_thumb_thumb_stub_long_branch,
	arm_thumb_arm_v4t_stub_long_branch,
	arm_thumb_arm_v4t_stub_short_branch, arm_stub_pic_long_branch):
	Renamed to arm_stub_long_branch_any_any,
	arm_stub_long_branch_v4t_arm_thumb,
	arm_stub_long_branch_thumb_only,
	arm_stub_long_branch_v4t_thumb_arm,
	arm_stub_short_branch_v4t_thumb_arm,
	arm_stub_long_branch_any_any_pic.

2009-02-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf-hppa.h (elf_hppa_final_link_relocate): Correct addend value used
	in branch offset check.

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

	* elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
	add toc.symndx and toc.add.
	(ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
	Set up toc.add.
	(get_tls_mask): Add toc_addend param, set from toc.add.  Adjust all
	callers.
	(ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
	(branch_reloc_hash_match): New function, extracted from..
	(ppc64_elf_tls_optimize): ..here.
	(ppc64_elf_relocate_section): Properly set addends when optimizing
	tls sequences.  Avoid unnecessary reading and writing of insns.
	Only redo reloc when symbol changed.  Bypass symbol checks when
	using tlsld_got.
	* elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
	(branch_reloc_hash_match): New function, extracted from..
	(ppc_elf_tls_optimize): ..here.
	(ppc_elf_relocate_section): Avoid unnecessary reading of insns.
	Don't clear addend on zapped __tls_get_addr reloc.

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

	PR 9827
	* elflink.c (bfd_elf_final_link): When counting the relocations,
	if the header size has not been set yet then assume that it will
	match the output section's reloc type.

2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for
	relocatable link.

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

	* elf32-spu.c (spu_elf_find_overlays): Call bfd_set_error on errors.
	(find_function): Likewise.
	(pasted_function): Don't error if no prior function found.
	(discover_functions): Revert 2008-12-10 change.  Extend first
	function range to start of section.

2009-02-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf64-hppa.c: Remove PARAMS macro.  Replace PTR with void *.  Convert
	functions to C90.
	* elf64-hppa.h: Likewise.

2009-02-06  Joseph Myers  <joseph@codesourcery.com>

	* elfxx-mips.c (_bfd_mips_elf_section_processing): Remove special
	.sbss handling.

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

	* elf32-spu.c (spu_elf_build_stubs): Define __icache_neg_log2_linesize.
	Define __icache_ptr_handler*, not __icache_ptr___icache_bi_handler*.

2009-02-03  Sandip Matte  <sandip@rmicorp.com>

	* aoutx.h (NAME (aout, machine_type)): Handle bfd_mach_mips_xlr.
	* archures.c (bfd_mach_mips_xlr): Define.
	* bfd-in2.h: Regenerate.
	* cpu-mips.c (I_xlr): Define.
	(arch_info_struct): Add XLR entry.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_XLR.
	(mips_set_isa_flags): Handle bfd_mach_mips_xlr
	(mips_mach_extensions): Add XLR entry.

2009-02-03  Eric B. Weddington  <eric.weddington@atmel.com>

	* elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.

2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>

	* configure.in: AC_SUBST pdfdir.
	* Makefile.am: Add install-pdf, install-pdf-am
	and install-pdf-recursive targets. Define pdfdir.
	* doc/Makefile.am: Define pdf__strip_dir. Add
	install-pdf and install-pdf-am targets.
	* po/Make-in: Add install-pdf target.
	* configure: Regenerate.
	* Makefile.in: Regenerate
	* doc/Makefile.in: Regenerate.

2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* bfd-in2.h: Regenerate.
	* elf32-m68k.c: Handle 2-slot GOT entries.  Rename variables and
	fields from n_entries to n_slots where appropriate, update comments.
	(HOWTO): Add TLS relocations.
	(reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
	(enum elf_m68k_got_offset_size): New enum.
	(struct elf_m68k_got_entry.type): Move field to ...
	(struct elf_m68k_got_entry_key): ... here.  Update all uses.
	(elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
	functions.
	(elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
	functions.
	(struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
	fields into n_entries array.  Update comments.
	(elf_m68k_init_got): Simplify, update all uses.
	(elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
	(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
	GOT entries; update name, update all uses.
	(ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
	(elf_m68k_get_got_entry): Update.
	(elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
	simplify.
	(elf_m68k_remove_got_entry_type): Simplify.
	(elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
	(elf_m68k_can_merge_gots): Update.
	(elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
	(struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
	GOT entries, simplify.
	(elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
	(struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
	field, remove obsoleted local_n_entries field.
	(elf_m68k_partition_multi_got_2): New static function.
	(elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
	update.
	(elf_m68k_remove_got_entry_type): Update.
	(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
	(elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary
	update of sgot->size and srelgot->size.
	(elf_m68k_gc_sweep_hook): Update.
	(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
	(elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
	TLS relocations.
	* reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
	* libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.

2009-02-02  DJ Delorie  <dj@redhat.com>

	* elf32-mep.c (config_names): Regenerate configuration.

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

	* elf-bfd.h (bfd_elf_get_str_section): Don't declare.
	(bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
	* elf.c (bfd_elf_get_str_section): Make static.
	(bfd_elf_find_section): Delete.
	* libbfd.h: Regenerate.

2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
	(_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.

2009-01-31  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (on_needed_list): New function.
	(elf_link_add_object_symbols): Link in --as-needed libs if they
	satisfy undefined symbols in other libs.

2009-01-30  Julian Brown  <julian@codesourcery.com>

	* elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Skip BFDs with
	EXEC_P or DYNAMIC flags, and skip sections which are being linked
	with --just-symbols (-R).

2009-01-29  Adam Nemet  <anemet@caviumnetworks.com>

	* dwarf2.c (read_rangelist): Use read_address to read low_pc and
	high_pc in order to properly sign-extend VMAs.

2009-01-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>

	* elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments.

2009-01-28  Catherine Moore <clm@codesourcery.com>

	* elf32-arm.c (elf32_arm_check_relocs): Set SEC_ALLOC and
	SEC_LOAD for dynamic relocation sections.

2009-01-27  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): Use elf_hash_table
	(info)->tls_size, not elf_hash_table (info)->tls_sec->size for
	the size of local TLS data.

2009-01-27  Andreas Schwab  <schwab@suse.de>

	* mach-o.c (bfd_mach_o_archive_p): Restrict the number of
	architectures in the archive.

2009-01-27  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>
	<R_CRIS_32_DTPREL>: Correct relocation value.

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
	<R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
	symbols with non-default visibility.

2009-01-26  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
	describing the trampolines.
	(ppc_elf_relocate_section): Update relocs to describe the
	trampolines.

2009-01-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf-hppa.h (elf_hppa_final_link_relocate): Add check to ensure that
	branch targets can be reached for R_PARISC_PCREL22F, R_PARISC_PCREL17F
	and R_PARISC_PCREL12F relocations.

2009-01-24  Alan Modra  <amodra@bigpond.net.au>

	PR 6022
	* elflink.c (find_version_for_sym): New function split out from,
	but without export_dynamic test, ..
	(_bfd_elf_link_assign_sym_version): ..here.
	(_bfd_elf_export_symbol): Use it.

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

	* elf-bfd.h (struct elf_assign_sym_version_info): Delete.
	(struct elf_info_failed, struct elf_find_verdep_info): Move to..
	* elflink.c: ..here, somewhat modified.
	* elf-bfd.h (_bfd_elf_add_default_symbol, _bfd_elf_export_symbol,
	_bfd_elf_link_find_version_dependencies,
	_bfd_elf_link_assign_sym_version, _bfd_elf_link_size_reloc_section,
	_bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol,
	_bfd_elf_link_sec_merge_syms, bfd_elf_link_mark_dynamic_symbol): Don't
	declare..
	* elflink.c: ..and make static here.
	(_bfd_elf_link_find_version_dependencies): Adjust for removal
	of output_bfd from struct elf_find_verdep_info.
	(_bfd_elf_link_assign_sym_version): Similarly adjust to use
	struct elf_info_failed.
	(bfd_elf_size_dynamic_sections): Adjust.

2009-01-22  Alan Modra  <amodra@bigpond.net.au>

	PR 6832
	* dwarf2.c (find_line): Don't update stash->sec_info_ptr until
	after comp_unit_find_line call.

2009-01-21  Nick Clifton  <nickc@redhat.com>

	PR 9769
	* vmsutil.c (vms_file_stats_name): Remove use of unsupported
	tm_gmtoff field in struct tm.

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

	* elf32-spu.h (struct spu_elf_params): Add non_ia_text.
	* elf32-spu.c (mark_overlay_section): Only include .text.ia.*
	sections in soft-icache lines unless non_ia_text.  Don't add
	rodata if doing so would exceed line size.

2009-01-19  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_copy_indirect_symbol): For other symbol
	types than bfd_link_hash_indirect, before early return, call
	_bfd_elf_link_hash_copy_indirect.

2009-01-19  Andrew Stubbs  <ams@codesourcery.com>

	* elf-attrs.c (vendor_set_obj_attr_contents): Support tag ordering.
	* elf-bfd.h (elf_backend_data): Add obj_attrs_order.
	* elf32-arm.c (elf32_arm_obj_attrs_order): New function.
	(elf_backend_obj_attrs_order): New define.
	* elfxx-target.h (elf_backend_obj_attrs_order): New define.
	(elfNN_bed): Add elf_backend_obj_attrs_order.

2009-01-19  Andrew Stubbs  <ams@codesourcery.com>

	* elf-attrs.c (is_default_attr): Substitute magic numbers with macros.
	(obj_attr_size): Likewise.
	(write_obj_attribute): Likewise.
	(_bfd_elf_copy_obj_attributes): Likewise.
	(_bfd_elf_parse_attributes): Likewise.
	* elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define.
	(ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines.
	(ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines.
	(ATTR_TYPE_HAS_NO_DEFAULT): New define.
	* elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers
	with macros.

2009-01-19  Andrew Stubbs  <ams@codesourcery.com>

	* elf-attrs.c (is_default_attr): Support defaultless attributes.
	(bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type.
	(bfd_elf_add_obj_attr_string): Likewise.
	(bfd_elf_add_obj_attr_int_string): Likewise.
	(_bfd_elf_parse_attributes): Allow for unknown flag bits in type.
	* elf-bfd.h (struct obj_attribute): Document new flag bit.
	* elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that
	Tag_nodefaults has no default value.
	(elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults
	comment to reflect the new state.

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

	PR 9695
	* pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC.
	(some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC.
	(adjust_z_magix): Delete dead code handling QMAGIC.

2009-01-16  Kai Tietz  <kai.tietz@onevision.com>

	* coffcode.h (styp_to_sec_flags): Correct interpretation of
	IMAGE_SCN_MEM_DISCARDABLE.

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

	* Makefile.am (libbfd_la_LIBADD, libbfd_la_LDFLAGS): Substitute
	SHARED_LIBADD and SHARED_LDFLAGS rather than WIN32LIBADD, WIN32LDFLAGS.
	* configure.in (commonbfdlib): Delete.
	(SHARED_LDFLAGS): Rename from WIN32LDFLAGS/
	(SHARED_LIBADD): Rename from WIN32LIBADD.  Add pic libiberty if such
	is available, not just for linux.
	* po/SRC-POTFILES.in: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
	    Julian Brown   <julian@codesourcery.com>

	* elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 71 to include all known
	ARM attributes in ABI 2.07.
	* elf32-arm.c (get_secondary_compatible_arch): New function.
	(set_secondary_compatible_arch): New function.
	(tag_cpu_arch_combine): New function.
	(elf32_arm_copy_one_eabi_other_attribute): Delete function.
	(elf32_arm_copy_eabi_other_attribute_list): Delete function.
	(elf32_arm_merge_eabi_attributes): Rename order_312 to order_021 to
	make it fit with order_01243.
	Add support for Tag_also_compatible_with,
	Tag_CPU_unaligned_access, Tag_T2EE_use, Tag_Virtualization_use,
	Tag_MPextension_use, Tag_nodefaults and Tag_conformance.
	Improve/tidy up support for Tag_CPU_raw_name, Tag_CPU_name,
	Tag_CPU_arch, Tag_ABI_HardFP_use, Tag_VFP_HP_extension,
	Tag_ABI_FP_denormal, Tag_ABI_PCS_GOT_use, Tag_ABI_align8_needed,
	Tag_VFP_arch and Tag_ABI_FP_16bit_format.
	Rework the way unknown attributes are handled.
	Defer errors until all attributes have been processed.

2009-01-15  Andrew Stubbs  <ams@codesourcery.com>

	* elf-attrs.c (bfd_elf_add_obj_attr_compat): Rename to
	bfd_elf_add_obj_attr_int_string.
	Read Tag_compatibility from its new location in the attribute array,
	rather than the attribute list.
	(_bfd_elf_copy_obj_attributes): bfd_elf_add_obj_attr_compat ->
	bfd_elf_add_obj_attr_int_string.
	(_bfd_elf_parse_attributes): Likewise.
	(_bfd_elf_merge_object_attributes): There's now only one
	Tag_compatibility, and it's in the array, not the list.
	* elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 33 to include
	Tag_compatibility.
	(bfd_elf_add_obj_attr_compat): Rename to
	bfd_elf_add_obj_attr_int_string.
	(bfd_elf_add_proc_attr_compat): Rename to
	bfd_elf_add_proc_attr_int_string.
	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Explicitly don't handle
	Tag_compatibility.

2009-01-15  Douglas B Rupp  <rupp@gnat.com>

	* Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo
	(BFD32_BACKENDS_CFILES): Add new file vmsutil.c
	(vmsutil.lo): Add dependency rule.
	* Makefile.in: Regenerate.
	* config.bfd (ia64*-*-*vms*): Add case.
	* configure.in (bfd_elf64_ia64_vms_vec): Add case.
	* configure: Regenerate.
	* vmsutil.c: New file.
	* vmsutil.h: New file.
	* elf-bfd.h (struct bfd_elf_special_section): Change type of
	attr to bfd_vma.
	* elfxx-ia64.c (elfNN_vms_post_process_headers,
	elfNN_vms_section_processing, elfNN_vms_final_write_processing,
	elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr,
	elfNN_vms_object_p): New functions
	* targets.c (bfd_elf64_ia64_vms_vec): New target.

2009-01-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/9727
	* elflink.c (elf_gc_sweep): Exclude the group section if the
	first member of the section group is excluded.

2009-01-14  Alan Modra  <amodra@bigpond.net.au>

	PR 9735
	* syms.c (_bfd_stab_section_find_nearest_line): Don't free
	saved filename, use bfd_alloc rather than bfd_malloc for it.

2009-01-13  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_build_stubs): Make __icache_base absolute.

2009-01-13  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (remove_cycles): Always set call->max_depth.

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

	* elf32-spu.c (spu_elf_auto_overlay): Correct vma mask.

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

	* elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2,
	num_lines_log2.
	(struct got_entry): Add br_addr.
	(struct call_info): Add priority.
	(struct function_info): Add lr_store and sp_adjust.
	(spu_elf_setup): Init line_size_log2 and num_lines_log2.
	(spu_elf_find_overlays): For soft-icache, mark any section within cache
	area as an overlay, and check that no other overlays exist.  Look up
	icache overlay manager entry sym.
	(BRA_STUBS, BRA, BRASL): Define.
	(enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub.
	(needs_ovl_stub): Adjust for soft-icache.  Return priority encoded
	in branch insn.
	(count_stub, build_stub): Support soft-icache.
	(build_spuear_stubs, process_stubs): Adjust build_stub call.
	(spu_elf_size_stubs): Size soft-icache stubs.
	(overlay_index): New function.
	(spu_elf_build_stubs): Make static.  Support soft-icache.
	(spu_elf_check_vma): Don't turn off auto_overlay if soft-icache.
	(find_function_stack_adjust): Save lr store and stack adjust insn
	offsets.
	(maybe_insert_function): Adjust find_function_stack_adjust call.
	(mark_functions_via_relocs): Retrieve priority.
	(remove_cycles): Only warn about pruned arcs when stack_analysis.
	(sort_calls): Sort by priority first.
	(mark_overlay_section): Ignore .ovl.init.
	(sum_stack): Only print when stack_analysis.
	(print_one_overlay_section): New function, extracted from..
	(spu_elf_auto_overlay): ..here.  Support soft-icache overlays.
	(spu_elf_stack_analysis): Only print when htab->stack_analysis.
	(spu_elf_final_link): Call spu_elf_stack_analysis for lrlive
	analysis.  Call spu_elf_build_stubs.
	(spu_elf_relocate_section): For soft-icache encode overlay index
	into addresses.
	(spu_elf_output_symbol_hook): Support soft-icache.
	(spu_elf_modify_program_headers: Likewise.

	* elf32-spu.h (struct spu_elf_params): Add lrlive_analysis.  Rename
	num_regions to num_lines.  Add line_size and max_branch.
	(enum _ovly_flavour): Add ovly_soft_icache.
	(spu_elf_build_stubs): Delete.

2009-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
	relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.

2009-01-07  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
	<case R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: For a symbol defined in
	the program, the known offset starts at the negative size of the
	TLS section.
	<case R_CRIS_32_IE, R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL>:
	Similar.

2009-01-05  Joel Sherrill <joel.sherrill@oarcorp.com>

	* config.bfd: Add lm32-*-rtems*.

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

	* coff-ppc.c: Add 2009 to Copyright.
	* elf32-cris.c: Likewise.
	* elflink.c: Likewise.

2009-01-03  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_finish_dynamic_symbol): Rename
	gotplt_index to rela_plt_index.  Adjust for R_CRIS_DTPMOD entry.

2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/9679
	* elflink.c (elf_merge_st_other): New.
	(_bfd_elf_merge_symbol): Use it on skipped weak definitions and
	hide them if needed.
	(elf_link_add_object_symbols): Updated.

2009-01-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/9676
	* elflink.c (elf_link_add_object_symbols): Update def_dynamic,
	ref_dynamic and dynamic_def fields when setting def_regular
	to 1.

2009-01-02  Curtis Mackie  <curtmackevo@gmail.com>

	PR 9682
	* coff-ppc.c (dump_toc): Fix up calls to fprintf without a string
	literal.

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