+2007-11-14 Richard Sandiford <richard@codesourcery.com>
+
+ * elfxx-mips.c (mips_got_page_range): New structure.
+ (mips_got_page_entry): Likewise.
+ (mips_got_info): Add page_gotno and got_page_entries fields.
+ (mips_elf_got_per_bfd_arg): Add max_pages field. Delete
+ primary_count and current_count fields.
+ (mips_got_page_entry_hash, mips_got_page_entry_eq): New functions.
+ (mips_elf_pages_for_range, mips_elf_record_got_page_entry): Likewise.
+ (mips_elf_get_got_for_bfd): New function, split out from
+ mips_elf_make_got_per_bfd. Initialize the page_gotno and
+ got_page_entries fields when creating a new GOT structure.
+ (mips_elf_make_got_pages_per_bfd): New function.
+ (mips_elf_merge_got_with): New function, split out from
+ mips_elf_make_got_per_bfd. Merge page entries as well as
+ non-page entries. Use the minimum of max_pages and the sum
+ of the page_gotnos to estimate the number of page entries.
+ (mips_elf_merge_gots): Use the minimum of max_pages and the
+ bfd's page_gotno to estimate the number of page entries.
+ Use the above functions.
+ (mips_elf_multi_got): Add page entries as well as non-page entries
+ to the individual per-bfd GOTs. Initialize got_per_bfd_arg.max_pages.
+ Initialize the page_gotno and got_page_entries fields when creating
+ a new primary GOT. Use the minimum of pages and page_gotno when
+ adding the number of pages entries to local_gotno.
+ (mips_elf_create_got_section): Initialize the page_gotno and
+ got_page_entries fields of the GOT structure.
+ (mips_elf_rel_relocation_p, mips_elf_read_rel_addend)
+ (mips_elf_add_lo16_rel_addend, mips_elf_get_section_contents): New
+ functions, split out from...
+ (_bfd_mips_elf_relocate_section): ...here.
+ (_bfd_mips_elf_check_relocs): Record GOT page entries too.
+ (_bfd_mips_relax_section): Use mips_elf_get_section_contents.
+ (_bfd_mips_elf_always_size_sections): Use the smaller of the
+ loadable_size- and page_gotno-derived estimates.
+
+2007-11-14 Thiemo Seufer <ths@mips.com>
+
+ * elfxx-mips.c (mips_elf_merge_obj_attributes): Prevent
+ unwanted fallthroughs in case statement.
+
+2007-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/5307
+ * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
+ copy input subsystem if output is different from input.
+
+2007-11-13 Nick Clifton <nickc@redhat.com>
+
+ * elf-m10300.c (mn10300_elf_final_link_relocate): Prevent the
+ accidental termination of DWARF location list entries.
+ (mn10300_elf_relax_delete_bytes): Stop deletion if an align reloc
+ is encountered that is larger than or not a mutliple of the number
+ of bytes being deleted.
+ When adjusting symbols, any symbols inside the region being
+ deleted must be moved to the end of the region.
+ Move align relocs forward if there is room for them after the
+ deletion of the region.
+
+2007-11-13 Alan Modra <amodra@bigpond.net.au>
+
+ PR 5233
+ * elf.c (rewrite_elf_program_header): Formatting. Add
+ first_matching_lma and first_suggested_lma booleans and use
+ instead of testing matching_lma and suggested_lma for zero.
+
+2007-11-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/5299
+ * peicode.h (pe_bfd_object_p): Save and restore previous bfd
+ state when calling coff_object_p.
+
+2007-11-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (_bfd_elf_get_synthetic_symtab): Only bump the symbol
+ pointer when we have a valid symbol. Init udata.p to NULL.
+
+2007-11-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobber
+ rel_hash. Move loop inside if test.
+
+2007-11-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * elf-vxworks.h (elf_vxworks_add_dynamic_entries): Declare.
+ (elf_vxworks_finish_dynamic_entry): Declare.
+ * elf-vxworks.c: Include elf/vxworks.h.
+ (elf_vxworks_add_dynamic_entries): New.
+ (elf_vxworks_finish_dynamic_entry): New.
+ * Makefile.am (elf-vxworks.lo): Add dependency.
+ * Makefile.in (elf-vxworks.lo): Add dependency.
+ * elf32-i386.c (elf_i386_size_dynamic_sections,
+ elf_i386_finish_dynamic_sections): Call
+ elf_vxworks_add_dynamic_entries and
+ elf_vxworks_finish_dynamic_entry.
+ * elf32-ppc.c (ppc_elf_size_dynamic_sections,
+ ppc_elf_finish_dynamic_sections): Likewise.
+ * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections,
+ sparc_finish_dyn): Likewise.
+ * elf32-sh.c (sh_elf_size_dynamic_sections,
+ sh_elf_finish_dynamic_sections): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections,
+ _bfd_mips_elf_finish_dynamic_sections): Likewise.
+ * elf32-arm.c (elf32_arm_size_dynamic_sections,
+ elf32_arm_finish_dynamic_sections): Likewise.
+
+2007-11-07 Olivier Hainque <hainque@adacore.com>
+
+ * bfd/elfxx-mips.c (_bfd_mips_elf_fake_sections): Force
+ SHF_MIPS_NOSTRIP on .debug_frame for Irix.
+
+2007-11-06 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_check_relocs): Don't refcount tlsld_got here..
+ (ppc64_elf_gc_sweep_hook): ..or here..
+ (ppc64_elf_tls_optimize): ..or here. Make two passes through the
+ relocs, ensuring that tls_get_addr calls follow gd and ld relocs.
+ (allocate_dynrelocs): Refcount tlsld_got here.
+ (ppc64_elf_size_dynamic_sections): Allocate local got and call
+ allocate_dynrelocs before allocating tlsld_got.
+ (ppc64_elf_relocate_section): Remove check that a tls_get_addr
+ call follows gd and ld relocs.
+
+ * elf32-ppc.c (ppc_elf_check_relocs): Don't refcount tlsld_got here..
+ (ppc_elf_gc_sweep_hook): ..or here..
+ (ppc_elf_tls_optimize): ..or here. Make two passes through the
+ relocs, ensuring that tls_get_addr calls follow gd and ld relocs.
+ (allocate_dynrelocs): Refcount tlsld_got here.
+ (ppc_elf_size_dynamic_sections): Call allocate_dynrelocs before
+ allocating tlsld_got.
+ (ppc_elf_relocate_section): Remove check that a tls_get_addr
+ call follows gd and ld relocs.
+
+2007-11-05 Alan Modra <amodra@bigpond.net.au>
+
+ * merge.c (sec_merge_hash_lookup): Revert last change.
+ (record_section): Likewise.
+ (_bfd_merge_sections): Likewise.
+ (_bfd_merged_section_offset): Properly handle NULL secinfo.
+ (_bfd_add_merge_section): Allocate extra space for a zero
+ terminator on SEC_STRINGS sections.
+
+2007-11-05 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text
+ and .bss section use the default.
+ * pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.
+
+2007-11-01 Joseph Myers <joseph@codesourcery.com>
+
+ * merge.c (sec_merge_hash_lookup): Add parameter sec_end. Check
+ for unterminated strings. All callers changed.
+ (record_section): Add parameter abfd. Give error message for
+ unterminated strings.
+ (_bfd_merge_sections): Update call to record_section.
+ (_bfd_write_merged_section, _bfd_merged_section_offset): Handle
+ NULL secinfo from merge failures.
+
+2007-10-31 Nick Clifton <nickc@redhat.com>
+
+ * elf-m10300.c (mn10300_elf_relax_delete_bytes): Do not look for
+ align relocs when there are no relocs attached to the section.
+
+2007-10-31 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (bfd_elf_match_symbols_in_sections): Don't declare.
+ * elflink.c (bfd_elf_match_symbols_in_sections): Make static.
+ Remove section name comparisons.
+
+2007-10-30 Nick Clifton <nickc@redhat.com>
+
+ * reloc.c (BFD_RELOC_MN10300_ALIGN): Add.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regnerate.
+ * elf-m10300.h: Handle R_MN10300_ALIGN relocs.
+ (mn10300_elf_relax_delete_bytes): Honour R_MN10300_ALIGN relocs.
+ Re-fix off by one error in comparisons.
+
+2007-10-25 Pedro Alves <pedro_alves@portugalmail.pt>
+
+ * bfd-in.h (STRING_COMMA_LEN): Don't handle NULL STR case.
+ * bfd-in2.h: Regenerate.
+
+2007-10-25 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf32-ppc.c (ppc_elf_merge_obj_attributes): Add support for
+ Tag_GNU_Power_ABI_Vector.
+
+2007-10-25 Joseph Myers <joseph@codesourcery.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not add
+ PT_NULL header when not linking.
+
+2007-10-25 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
+
+ * elf.c (elfcore_grok_ppc_vmx): New function.
+ (elfcore_grok_note): Handle NT_PPC_VMX.
+ (elfcore_write_ppc_vmx): New function.
+ * elf-bfd.h (elfcore_write_ppc_vmx): Declare.
+
+2007-10-24 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
+2007-10-23 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc_build_one_stub): Don't duplicate relocs
+ emitted for ".brlt" entries.
+ (toc_adjusting_stub_needed): Don't treat ".fixup" specially here..
+ (ppc64_elf_next_input_section): ..instead do so here.
+
+2007-10-19 Nick Clifton <nickc@redhat.com>
+
+ * config.bfd: Recognise am34-linux-gnu target.
+ * reloc.c: Add BFD_RELOC_MN10300_SYM_DIFF relocation.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elf-m10300.c (elf_mn10300_howto): Add R_MN10300_SYM_DIFF.
+ (mn10300_reloc_map): Likewise.
+ (mn10300_elf_check_relocs): Do not create dynamic relocs for
+ symbol differences or relocations against absolute symbols.
+ (mn10300_elf_final_link_relocate): Likewise.
+ Handle R_MN10300_SYM_DIFF relocs.
+ (mn10300_elf_relocate_section): Fix for creating local copys of
+ dynamic relocs.
+ (mn10300_elf_relax_delete_bytes): Adjust symbols at the end of the
+ region. Adjust the size of function symbols.
+ (mn10300_elf_relax_section): Ignore symbols that are in discarded
+ sections.
+
+2007-10-19 Nick Clifton <nickc@redhat.com>
+
+ * elf-m10300.c: Convert to ISO C.
+
+2007-10-18 H.J. Lu <hongjiu.lu@intel.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ PR ld/4424
+ * config.bfd (targ_selvecs): Add bfd_elf64_alpha_vec for
+ alpha/FreeBSD. Add bfd_elf64_sparc_vec for sparc64/FreeBSD.
+ Add bfd_elf32_i386_vec and bfd_efi_app_ia32_vec for i386/FreeBSD.
+ (targ64_selvecs): Set for i386/FreeBSD.
+ * elf-bfd.h (elf_backend_data): Add relocs_compatible.
+ (_bfd_elf_default_relocs_compatible): Declare.
+ (_bfd_elf_relocs_compatible): Declare.
+ * elfxx-target.h (elf_backend_relocs_compatible): Define.
+ (elfNN_bed): Init new relocs_compatible field.
+ * elflink.c (_bfd_elf_default_relocs_compatible): New function.
+ (_bfd_elf_relocs_compatible): New function.
+ (elf_link_add_object_symbols): Call bed->relocs_compatible.
+ * elf32-i386.c (elf_backend_relocs_compatible): Define.
+ * elf64-alpha.c: Likewise.
+ * elf64-sparc.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+
+2007-10-16 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (relax_section): Check for a reference to a discarded
+ DWARF section and anticipate its replacement with the kept section.
+
+2007-10-16 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (elf_xtensa_discard_info_for_section): Remove
+ unnecessary size variables. Set sec->rawsize.
+ (relax_section, relax_property_section): Likewise.
+
+2007-10-16 Bob Wilson <bob.wilson@acm.org>
+
+ * section.c (struct bfd_section): Clarify comment for rawsize field.
+ * bfd-in2.h: Regenerate.
+
+2007-10-16 Bob Wilson <bob.wilson@acm.org>
+
+ * elflink.c (_bfd_elf_check_kept_section): Use the section rawsize
+ values if they are set.
+
+2007-10-16 Nick Clifton <nickc@redhat.com>
+
+ PR 5146
+ * configure.in (AC_CHECK_HEADERS): Add alloca.h
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * som.c: Replace alloca-conf.h inclusion with code recommended in
+ autoconf documentation.
+ * elf64-hppa.c: Likewise.
+
+2007-10-16 Nick Clifton <nickc@redhat.com>
+
+ * configure.in (--enable-elf-stt-common): New configure
+ option. If enabled then the tools can generate symbols with
+ the ELF STT_COMMON type.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * elf.c (swap_out_syms): If USE_STT_COMMON is defined then set
+ the type of emitted common symbols to STT_COMMON.
+ * elfcode.h (elf_slurp_symbol_table): Accept STT_COMMON symbol
+ types.
+
+2007-10-15 Alan Modra <amodra@bigpond.net.au>
+
+ * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value.
+ Return status. Adjust callers.
+ * coff-mcore.c (mcore_emit_base_file_entry): Likewise.
+ * coff-ppc.c (write_base_file_entry): New function.
+ (coff_ppc_relocate_section): Use it.
+ * elf32-arm.c (find_thumb_glue): Check asprintf return status.
+ (find_arm_glue): Likewise.
+ * vms-misc.c (_bfd_vms_output_flush): Check fwrite return value.
+
+2007-10-12 Nick Clifton <nickc@redhat.com>
+
+ PR 5160
+ * elflink.c (eval_symbol): Remove bufsz variable and use
+ sizeof(symbuf) where necessary.
+
+2007-10-12 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * elf32-cr16.c (elf32_cr16_relax_section): Fix condition check typo.
+
+2007-10-12 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced
+ local symbols specially.
+ (mips_elf_set_global_got_offset): Skip forced local symbols.
+
+2007-10-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (elfcore_grok_prxfpreg): Fix comment typo.
+
+2007-10-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (get_program_header_size): Always add a PT_GNU_RELRO
+ segment for -z relro.
+ (_bfd_elf_map_sections_to_segments): Make a PT_GNU_RELRO
+ segment only when needed.
+
+2007-10-05 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (relax_section): Call pin_internal_relocs when
+ changing a relocation's offset. Adjust call to translate_reloc. Do
+ not add a fix record for a DIFF reloc. For other relocs, only add a
+ fix record if the translated target is in a different object file;
+ otherwise, just update the relocation. Call pin_internal_relocs when
+ updating a reloc but not when adding a fix record.
+ (translate_reloc): Get the target section from a new argument, not
+ from the relocation. Change check for relaxable sections to an
+ assertion. Compute separate offset adjustments for the base symbol
+ and the addend, and set the new relocation's addend correctly. Return
+ the new target section.
+
+2007-10-05 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (elf_xtensa_relocate_section): Remove updates of
+ r_type and howto after calling do_fix_for_relocateable_link and
+ do_fix_for_final_link.
+
+2007-10-05 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (removed_by_actions): New.
+ (offset_with_removed_text): Reimplement using removed_by_actions.
+ (offset_with_removed_text_before_fill): Delete.
+ (relax_property_section): Use removed_by_actions. Rearrange logic.
+ (relax_section_symbols): Likewise.
+
+2007-10-04 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (reloc_bfd_fix_struct): Delete target_abfd field.
+ (reloc_bfd_fix_init): Remove target_abfd argument.
+ (relax_section, move_literal): Adjust calls to reloc_bfd_fix_init.
+
+2007-10-04 Nick Clifton <nickc@redhat.com>
+
+ PR linker/5099
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Add missing
+ apostrophe to error message.
+
+2007-10-01 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * elf32-cr16.c: Fixed DISP8, DISP20 and IMM20 relocations at
+ final relocation phase.
+ Added the below relaxations: IMM32 -> IMM20/IM16 -> IMM4.
+ * reloc.c: Added 3 new relocations: R_CR16_SWITCH8,
+ R_CR16_SWITCH16, R_CR16_SWITCH32.
+ * libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+
+2007-09-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.c: Formatting.
+
+2007-09-29 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.c (resolve_symbol): Handle symbols in SEC_MERGE
+ sections. Don't test symbol st_shndx. Don't bother with
+ bfd_link_hash_common symbols. Print longs rather than ints
+ in debug messages.
+ (eval_symbol): Replace "sym" and "advanced" params with "symp".
+ Replace "addr" and "section_offset" params with "dot". Don't
+ cast bfd_vma values to signed, cast them to bfd_signed_vma.
+ (bfd_elf_perform_complex_relocation): Delete "output_bfd", "info",
+ "local_syms" and "local_sections" params. Add "relocation".
+ Delete code calculating relocation value.
+ (evaluate_complex_relocation_symbols): Delete function. Fold into..
+ (elf_link_input_bfd): ..existing code examining relocs.
+ * elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype.
+ * elf32-mep.c (mep_elf_check_relocs): Delete function.
+ (mep_elf_gc_sweep_hook, mep_elf_gc_mark_hook): Likewise.
+ (mep_elf_object_p): Don't set elf_bad_symtab.
+ (elf_backend_check_relocs): Don't define.
+ (elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook): Likewise.
+ (elf_backend_can_gc_sections, USE_RELA): Likwise.
+ (mep_elf_relocate_section): Move bfd_elf_perform_complex_relocation
+ call after we have calculated reloc value. Delete local sym
+ debug code. Use RELOC_FOR_GLOBAL_SYMBOL. Delete addend
+ adjusting code..
+ (elf_backend_rela_normal): ..instead define this.
+
+2007-09-28 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code.
+ * elf32-arm.c (elf32_arm_check_relocs): Likewise.
+ * elf32-avr.c (elf32_avr_check_relocs): Likewise.
+ * elf32-bfin.c (bfinfdpic_check_relocs): Likewise.
+ * elf32-cris.c (cris_elf_check_relocs): Likewise.
+ * elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
+ * elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
+ * elf32-fr30.c (fr30_elf_check_relocs): Likewise.
+ * elf32-frv.c (_frvfdpic_check_discarded_relocs): Likewise.
+ (elf32_frv_check_relocs): Likewise.
+ * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
+ * elf32-m32c.c (m32c_elf_check_relocs): Likewise.
+ * elf32-m32r.c (m32r_elf_check_relocs): Likewise.
+ * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
+ * elf32-mcore.c (mcore_elf_check_relocs): Likewise.
+ * elf32-msp430.c (elf32_msp430_check_relocs): Likewise.
+ * elf32-mt.c (mt_elf_check_relocs): Likewise.
+ * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
+ * elf32-sh.c (sh_elf_check_relocs): Likewise.
+ * elf64-mmix.c (mmix_elf_check_relocs): Likewise.
+ * elf64-sh64.c (sh_elf64_check_relocs): Likewise.
+ * elf32-score.c (_bfd_score_elf_check_relocs): Likewise.
+ (score_elf_local_relocation_p): Likewise.
+ (_bfd_score_elf_relocate_section): Likewise.
+ (score_elf_final_link_relocate): Likewise.
+
+2007-09-26 Jan Beulich <jbeulich@novell.com>
+
+ * elf32-i386.c (elf_i386_check_relocs): Revert NULL pointer
+ check for R_386_GNU_VTINHERIT.
+ * elf-m10300.c (mn10300_elf_check_relocs): Check for NULL
+ pointer for R_xxx_GNU_VTENTRY.
+ * elf32-arm.c (elf32_arm_check_relocs): Likewise.
+ * elf32-bfin.c (bfin_check_relocs): Likewise.
+ (bfinfdpic_check_relocs): Likewise.
+ * elf32-cris.c (cris_elf_check_relocs): Likewise.
+ * elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
+ * elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
+ * elf32-fr30.c (fr30_elf_check_relocs): Likewise.
+ * elf32-frv.c (elf32_frv_check_relocs): Likewise.
+ * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
+ * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
+ * elf32-m32r.c (m32r_elf_check_relocs): Likewise.
+ * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
+ * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
+ * elf32-mcore.c (mcore_elf_check_relocs): Likewise.
+ * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
+ * elf32-ppc.c (ppc_elf_check_relocs): Likewise.
+ * elf32-s390.c (elf_s390_check_relocs): Likewise.
+ * elf32-score.c (_bfd_score_elf_check_relocs): Likewise.
+ * elf32-sh.c (sh_elf_check_relocs): Likewise.
+ * elf32-v850.c (v850_elf_check_relocs): Likewise.
+ * elf32-vax.c (elf_vax_check_relocs): Likewise.
+ * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
+ * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
+ * elf64-mmix.c (mmix_elf_check_relocs): Likewise.
+ * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
+ * elf64-s390.c (elf_s390_check_relocs): Likewise.
+ * elf64-sh64.c (sh_elf64_check_relocs): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
+ * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
+
+2007-09-26 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.c (set_symbol_value): Add isymbuf and locsymcount
+ params. Change symidx to a size_t. Don't access past end
+ of symbol buffer.
+ (resolve_symbol): Add isymbuf param and use instead of
+ finfo->internal_syms.
+ (eval_symbol, evaluate_complex_relocation_symbols): Likewise.
+ (elf_link_input_bfd): Don't read symbols specially for
+ evaluate_complex_relocation_symbols.
+
+2007-09-26 Tristan Gingold <gingold@adacore.com>
+
+ * som.c (som_get_reloc_upper_bound): If there are no relocs return
+ enough space to hold a NULL pointer.
+
+2007-09-26 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc_build_one_stub): Correct rel_hdr.sh_size.
+
+2007-09-25 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (struct spu_link_hash_table): Add ovly_load_r_symndx.
+ (spu_elf_size_stubs): Count stub relocs.
+ (write_one_stub): Emit relocs on overlay call stubs.
+
+ * elf32-spu.c (struct spu_link_hash_table): Add "stubs".
+ (spu_elf_link_hash_table_create): Init new field.
+ (spu_elf_size_stubs): Store sorted stub syms in new htab field
+ rather than local var.
+ (spu_elf_build_stubs): Iterate over htab stubs rather than
+ hash traversal.
+ (struct stubarr): Delete.
+ (allocate_spuear_stubs, populate_stubs, write_one_stub): Adjust.
+
+2007-09-24 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf.c (assign_file_positions_for_load_sections): Trust
+ p_align_valid.
+ (copy_elf_program_header): Copy PT_NULL segments.
+
+2007-09-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+
+ * elf32-spu.c (is_indirect_branch): New function.
+ (find_function_stack_adjust): End scan on hitting indirect branch.
+ (sum_stack): Cast %v arg to correct type.
+
+2007-09-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerated.
+
+2007-09-21 Doug Kwan <dougkwan@google.com>
+
+ * Makefile.am (BFD32_LIBS): Add arange-set.lo.
+ (BFD32_LIBS_CFILES): Add arange-set.c.
+ (SOURCE_HFILES): Add arange-set.h
+ (dwarf2.lo): Add dependency upon arange-set.h.
+ (arange-set.lo): New target.
+ * Makefile.in: Regenerate.
+ * arange-set.c: New file.
+ * arange-set.h: New file.
+ * dwarf2.c: Include arange-set.h.
+ (struct dwarf2_debug) Add new fields comp_unit_count and
+ comp_unit_arange_set.
+ (struct comp_unit) Replace field arange with a new field arange_set.
+ (dwarf2_arange_set_allocate, dwarf2_arange_set_deallocate,
+ dwarf2_combine_arange_value, dwarf2_arange_set_new,
+ dwarf2_arange_set_with_value_new, dwarf2_comp_unit_arange_add): New
+ functions to utilize arange set in dwarf2.c.
+ (arange_add): Formatting change for a line longer than 80 characters.
+ (decode_line_info): Replace call target arange_add with
+ dwarf2_comp_unit_arange_add.
+ (read_rangelist_insert_arange_list,
+ read_rangelist_comp_unit_arange_add): New functions used as callbacks
+ for read_rangelist.
+ (read_rangelist): Change interface to accept a callback and data to
+ allow caller to select the action peformed on a new range list read.
+ (scan_unit_for_symbols): Use new interface of read_rangelist.
+ (parse_comp_unit): Create an arange set for each new comp unit. Use new
+ interface of read_rangelist. Replace call to arange_add with that to
+ dwarf2_comp_unit_arange_add.
+ (comp_unit_contains_address): Replace sequential search with a call to
+ arange_set_lookup_address, which can handles large set efficiently.
+ (stash_copy_local_aranges, stash_maybe_enable_arange_set,
+ stash_find_nearest_line_fast): New functions maintaining and using a
+ valued global arange set for all compilation units to speed up
+ bfd_dwarf2_find_nearest_line.
+ (find_line): Use global arange set. Replace sequential search over all
+ compilation units with a call to stash_find_nearest_line_fast. Add
+ book keeping to count number of compilation units. Replace empty
+ arange list test with a call to arange_set_empty_p.
+
+2007-09-21 Olivier Hainque <hainque@adacore.com>
+ Tristan Gingold <gingold@adacore.com>
+
+ * syms.c (_bfd_stab_section_find_nearest_line): Look at the
+ specific SOM sections for stabs if the regular ones are not found.
+ * som.h (struct somdata): Add a line_info field, to be used by
+ som_find_nearest_line.
+ * som.c (som_find_nearest_line): Implement using the bfd stabs
+ function above.
+
+2007-09-19 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make sure .got
+ will be output.
+
+2007-09-19 Alan Modra <amodra@bigpond.net.au>
+ Doug Kwan <dougkwan@google.com>
+
+ * bfd-in.h (bfd_hash_insert): Declare.
+ * bfd-in2.h: Regenerate.
+ * hash.c (bfd_hash_insert): New function. Split out from..
+ (bfd_hash_lookup): ..here.
+ * merge.c (sec_merge_hash_lookup): Use bfd_hash_insert.
+
+2007-09-18 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (bfd_section_from_shdr): Check bfd_alloc return.
+ (elfcore_write_note): Check realloc return.
+ * elflink.c (_bfd_elf_link_find_version_dependencies): Check
+ bfd_zalloc return.
+ (_bfd_elf_link_assign_sym_version): Check bfd_malloc return.
+ (elf_link_add_object_symbols): Likewise.
+ (struct hash_codes_info): New.
+ (elf_collect_hash_codes): Return bfd_malloc error.
+ (struct collect_gnu_hash_codes): Add "error".
+ (elf_collect_gnu_hash_codes): Return bfd_malloc error.
+ (bfd_elf_size_dynamic_sections): Check return status of
+ _bfd_elf_link_find_version_dependencies.
+ (bfd_elf_size_dynsym_hash_dynstr): Adjust for elf_collect_hash_codes
+ and elf_collect_gnu_hash_codes changes.
+ (elf_sym_name_compare): Formatting.
+ (elf_fixup_link_order): Use bfd_malloc, not xmalloc.
+
+2007-09-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/3281
+ PR binutils/5037
+ * elf-bfd.h (elf_obj_tdata): Remove relro.
+
+ * elf.c (get_program_header_size): Check info->relro instead
+ of elf_tdata (abfd)->relro.
+ (_bfd_elf_map_sections_to_segments): Likewise.
+ (assign_file_positions_for_load_sections): Don't set
+ PT_GNU_RELRO segment alignment here.
+ (assign_file_positions_for_non_load_sections): Properly set up
+ PT_GNU_RELRO segment for copying executable/shared library.
+ (rewrite_elf_program_header): Remove PT_GNU_RELRO segment.
+ (copy_elf_program_header): Set p_size and p_size_valid fields for
+ PT_GNU_RELRO segment.
+
+2007-09-17 Nick Clifton <nickc@redhat.com>
+
+ * po/fi.po: New Finnish translation.
+ * po/es.po: Updated Spanish translation.
+ * configure.in (ALL_LINGUAS): Add fi.
+ * configure: Regenerate.
+ * po/bfd.pot: Regenerate.
+
+2007-09-15 Nick Clifton <nickc@redhat.com>
+
+ * bfd.c (_bfd_default_error_handler): fflush stdout.
+
+2007-09-14 Alan Modra <amodra@bigpond.net.au>
+
+ * opncls.c (find_separate_debug_file): Ensure bfd_set_error has
+ been called on all error return paths.
+ (bfd_fill_in_gnu_debuglink_section): Use bfd_malloc, not malloc.
+ Clear padding after filename
+
+2007-09-14 Alan Modra <amodra@bigpond.net.au>
+
+ * format.c (bfd_check_format_matches): Record matching targets even
+ when "matching" is NULL to allow bfd_associated_vector matches.
+ Consolidate error return code. Consolidate ok return code. Always
+ restore original target and format on error.
+
+2007-09-14 Alan Modra <amodra@bigpond.net.au>
+
+ * configure.in: Delete BFD_HOST_LONG_LONG and bfd checks for
+ long long. Partly revert 2007-07-12 change, so that
+ BFD_HOST_64BIT_LONG and BFD_HOST_64BIT_LONG_LONG are set
+ independent of "void *" size.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * Makefile.in: Regenerate.
+
+2007-09-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (struct elf_backend_data): Delete elf_backend_sprintf_vma
+ and elf_backend_fprintf_vma.
+ (_bfd_elf_sprintf_vma, _bfd_elf_fprintf_vma): Delete.
+ * elf.c (_bfd_elf_sprintf_vma, _bfd_elf_fprintf_vma): Delete.
+ * elfxx-target.h (elf_backend_sprintf_vma): Don't define.
+ (elf_backend_fprintf_vma): Likewise.
+ (elfNN_bed): Don't init removed fields.
+ * bfd.c (is32bit): New function.
+ (bfd_sprintf_vma, bfd_fprintf_vma): Use the above.
+
+2007-09-11 Nathan Sidwell <nathan@codesourcery.com>
+
+ * archures.c: Add bfd_mach_mcf_isa_c_nodiv,
+ bfd_mach_mcf_isa_c_nodiv_mac & bfd_mach_mcf_isa_c_nodiv_emac.
+ * ieee.c (ieee_write_processor): Update coldfire architecture
+ list.
+ * bfd-in2.h: Rebuilt.
+ * cpu-m68k.c (arch_info_struct): Add isa_c nodiv architectures.
+ (m68k_arch_features): Likewise.
+ * elf32-m68k.c (elf32_m68k_object_p): Add EF_M68K_CF_ISA_C_NODIV.
+ (elf32_m68k_print_private_bfd_data): Likewise.
+
+2007-09-11 Jan Beulich <jbeulich@novell.com>
+
+ * elf64-i386.c (elf64_i386_tls_transition): Remove redundant 'const'.
+ * elf64-x86_64.c (elf64_x86_64_tls_transition): Likewise.
+
+2007-09-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (func_desc_adjust): When resolving undefined
+ references to dot-symbols, transfer def_regular and
+ def_dynamic from the descriptor symbol.
+
2007-09-08 Alan Modra <amodra@bigpond.net.au>
* config.bfd: Set want64 for spu-*-elf.