+2008-05-15 Christophe Lyon <christophe.lyon@st.com>
+
+ Add long call support for ARM.
+ * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
+ (THM2_MAX_BWD_BRANCH_OFFSET): Define.
+ (ARM_MAX_FWD_BRANCH_OFFSET): Define.
+ (ARM_MAX_BWD_BRANCH_OFFSET): Define.
+ (THM_MAX_FWD_BRANCH_OFFSET): Define.
+ (THM_MAX_BWD_BRANCH_OFFSET): Define.
+ (arm_long_branch_stub): Define.
+ (arm_pic_long_branch_stub): Define.
+ (arm_thumb_v4t_long_branch_stub): Define.
+ (arm_thumb_thumb_long_branch_stub): Define.
+ (arm_thumb_arm_v4t_long_branch_stub): Define.
+ (STUB_SUFFIX): Define.
+ (elf32_arm_stub_type): Define.
+ (elf32_arm_stub_hash_entry): Define.
+ (elf32_arm_link_hash_entry): Add stub_cache field.
+ (arm_stub_hash_lookup): Define.
+ (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
+ add_stub_section, layout_sections_again, stub_group, bfd_count,
+ top_index, input_list fields.
+ (elf32_arm_link_hash_newfunc): Init new field.
+ (stub_hash_newfunc): New function.
+ (elf32_arm_link_hash_table_create): Init stub_hash_table.
+ (elf32_arm_hash_table_free): New function.
+ (arm_type_of_stub): New function.
+ (elf32_arm_stub_name): New function.
+ (elf32_arm_get_stub_entry): New function.
+ (elf32_arm_stub_add_mapping_symbol): New function.
+ (elf32_arm_add_stub): New function.
+ (arm_build_one_stub): New function.
+ (arm_size_one_stub): New function.
+ (elf32_arm_setup_section_lists): New function.
+ (elf32_arm_next_input_section): New function.
+ (group_sections): New function.
+ (elf32_arm_size_stubs): New function.
+ (elf32_arm_build_stubs): New function.
+ (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
+ (bfd_elf32_arm_process_before_allocation): No longer handle
+ R_ARM_CALL and R_ARM_THM_CALL.
+ (using_thumb_only): New function.
+ (elf32_arm_final_link_relocate): Redirect calls to stub if range
+ exceeds encoding capabilities.
+ (bfd_elf32_bfd_link_hash_table_free): Define.
+ * bfd-in.h (R_ARM_max): Fix value to 130.
+ (elf32_arm_setup_section_lists): Protype.
+ (elf32_arm_next_input_section): Protype.
+ (elf32_arm_size_stubs): Protype.
+ (elf32_arm_build_stubs): Protype.
+ * bfd-in2.h: Regenerate.
+
+2008-05-14 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
+ * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
+
+2008-05-14 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2008-05-14 Ulrich Weigand <uweigand@de.ibm.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (section_covers_vma): New function.
+ (ppc_elf_get_synthetic_symtab): New function.
+ (bfd_elf32_get_synthetic_symtab): Define.
+ * elf64-ppc.c (section_covers_vma): New function.
+ (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
+ table entries, and __glink_PLTresolve on resolver stub.
+ (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.
+
+2008-05-12 Alan Modra <amodra@bigpond.net.au>
+
+ PR 6443
+ * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
+ (must_be_dyn_reloc): New function.
+ (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
+ in pies.
+ (ppc_elf_tls_optimize): Optimise pies.
+ (ppc_elf_relocate_section): Use a section symbol rather than no
+ symbol if possible for LD->IE TLS sequence, but don't error if
+ we must use no symbol.
+ * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
+ (must_be_dyn_reloc): Likewise.
+ (ppc64_elf_check_relocs): Likewise.
+ (ppc64_elf_tls_optimize): Likewise.
+ (ppc64_elf_relocate_section): Likewise.
+
+2008-05-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
+
+2008-05-10 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * elfcore.h (elf_core_file_p): Warn about core truncation.
+
+2008-05-07 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (xtensa_property_section_name): New.
+ (xtensa_make_property_section): New.
+ (xtensa_get_property_section): Make static. Do not create a new
+ section if it does not exist.
+
+2008-05-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (spu_elf_special_sections): Add "._ea".
+ (spu_elf_relocate_section): Handle relocations against symbols
+ defined in ._ea specially.
+
+2008-05-03 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
+ ARRAY_SIZE.
+ (elf32_arm_symbian_plt_sym_val): New.
+ (elf_backend_plt_sym_val): Define.
+
+2008-05-03 Alan Modra <amodra@bigpond.net.au>
+
+ PR 2995, PR 6473
+ * elf.c (rewrite_elf_program_header): Rather than clearing
+ p_paddr_valid at end, don't set it in the first place. Delete
+ comment no longer relevant. When not p_paddr_valid, don't set
+ paddr from vaddr, and don't set p_vaddr_offset.
+
+2008-05-01 Cary Coutant <ccoutant@google.com>
+
+ * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
+ corrupt string table.
+
+2008-05-01 Joel Brobecker <brobecker@adacore.com>
+
+ * cache.c (cache_bread_1): Renames cache_bread.
+ (cache_bread): New function.
+
+2008-05-01 Alan Modra <amodra@bigpond.net.au>
+
+ PR 2995, PR 6473
+ * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
+ (assign_file_positions_for_load_sections): Combine nested "if".
+ (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
+ when all header p_paddr fields are zero.
+
+2008-04-30 Edmar Wienskoski <edmar@freescale.com>
+
+ * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
+
+2008-04-29 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
+ (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
+ even if they are not loaded.
+ * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
+ first.
+
+2008-04-25 Jay Foad <jay.foad@gmail.com>
+
+ * reloc16.c (bfd_coff_reloc16_get_value): Add support for
+ undefined weak symbols.
+
+2008-04-25 Nick Clifton <nickc@redhat.com>
+
+ * po/vi.po: Updated Vietnamese translation.
+
+2008-04-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-21 Cary Coutant <ccoutant@google.com>
+
+ * archive.c (_bfd_write_archive_contents): Fix incorrect use of
+ ARFMAG.
+
+2008-04-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
+ set the value of undefined symbols in shared objects.
+ (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
+ undefined symbols unless pointer equality is needed.
+
+2008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com>
+
+ * aix5ppc-core.c: Define macros for the default architecture and
+ machine for matching core files.
+ (xcoff64_core_p): Set the architecture and machine to the default
+ values defined in the macros mentioned above.
+ * rs6000-core.c: Define macros to determine whether or not the
+ core file header uses the core_dumpxx header format.
+ (rs6000coff_core_p): Don't match core files that use the
+ core_dumpxx header format.
+
+2008-04-16 Pedro Alves <pedro@codesourcery.com>
+
+ * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
+
+2008-04-16 David S. Miller <davem@davemloft.net>
+
+ * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
+ BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
+ BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
+ * libbfd.h: Regnerate.
+ * bfd-in2.h: Regenerate.
+ * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
+ GOTDATA relocations.
+ (sparc_reloc_map): Likewise.
+ (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
+ R_SPARC_GOT*.
+ (_bfd_sparc_elf_gc_sweep_hook): Likewise.
+ (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
+ R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
+ R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
+ Simply ignore R_SPARC_GOTDATA_OP relocations.
+
+2008-04-14 Aurelien Jarno <aurelien@aurel32.net>
+
+ * configure.in: Link with the PIC version of libiberty on
+ Linux/MIPS hosts.
+ * configure: Regenerate.
+
+2008-04-14 Edmar Wienskoski <edmar@freescale.com>
+
+ * archures.c: Add bfd_mach_ppc_e500mc.
+ * bfd-in2.h: Regenerate.
+
+2008-04-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (spu_elf_build_stubs): Correct error message.
+ (mark_functions_via_relocs): Remove premature init of symtab_hdr.
+ (collect_overlays): Commment typo fix.
+
+2008-04-08 Kees Cook <kees@canonical.com>
+
+ * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
+ in EXEC_P bfds.
+
+2008-04-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c: Include libiberty.h.
+ (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
+ non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
+ spu_elf_relink, auto_overlay fields.
+ (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
+ (needs_ovl_stub): Flip test so that call to non-function warning
+ is emitted during relocate_section rather than earlier.
+ (spu_elf_check_vma): Stash --auto-overlay parameters, and clear
+ auto_overlay if no section exceeds local store.
+ (struct call_info): Add count, max_depth, is_pasted fields.
+ (struct function_info): Add rodata, last_caller, call_count,
+ depth, new visit flags.
+ (insert_callee): Increment call count.
+ (copy_callee): New function.
+ (mark_functions_via_relocs): Investigate all reloc types to count
+ possible function pointer stubs for --auto-overlay. Track
+ last_caller and increment function call_count.
+ (pasted_function): Insert a "call" into call info for pasted section.
+ (remove_cycles): Track max depth of calls. Don't emit call graph
+ pruning warning for --auto-overlay.
+ (build_call_tree): Don't transfer_calls for --auto-overlay.
+ Adjust remove_cycles call.
+ (sort_calls, sort_lib, sort_bfds): New functions.
+ (struct _mos_param, struct _uos_param, struct _cl_param): New.
+ (mark_overlay_section, unmark_overlay_section): New functions.
+ (collect_lib_sectios, auto_ovl_lib_functions): New functions.
+ (collect_overlays, find_pasted_call): New functions.
+ (sum_stack): Deal with is_pasted "calls". Exit before printing
+ when --auto-overlay.
+ (spu_elf_auto_overlay): New function.
+ (spu_elf_final_link): Call spu_elf_auto_overlay.
+ * elf32-spu.h (spu_elf_check_vma): Update prototype.
+
+2008-04-07 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
+ is defined in overlay section before creating a stub.
+ (build_spuear_stubs): Likewise.
+ (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
+
+2008-04-02 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-spu.c (insert_callee): Reorder call list so most recent
+ call is always first.
+ (interesting_section): Move.
+ (mark_functions_via_relocs): Fold interesting_section and
+ reloc_count tests in callers to here. Simplify output section
+ owner test.
+ (discover_functions): Set "gaps" when no symbols and some
+ "interesting_section". Run pasted_function loop for no symbol
+ bfds.
+ (for_each_node, transfer_calls): New functions.
+ (mark_non_root): Adjust to suit for_each_node.
+ (call_graph_traverse): Likewise. Fix memory leak. Rename to..
+ (remove_cycles): ..this.
+ (build_call_tree): Use for_each_node and transfer_calls.
+ (struct _sum_stack_param): New.
+ (sum_stack): Adjust to suit for_each_node. Return error on
+ malloc failure. Move code to print root node cumulative stack from..
+ (spu_elf_stack_analysis): ..here. Use for_each_node.
+
+2008-03-31 Cary Coutant <ccoutant@google.com>
+
+ PR 6006
+ * archive.c (_bfd_slurp_extended_name_table): Change
+ ARFMAG[0] to ARFMAG[1].
+ (_bfd_construct_extended_name_table): Likewise.
+
+2008-03-31 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
+ (_bfd_mips_elf_check_relocs): Update comments. Always call
+ mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
+
+2008-03-27 Cary Coutant <ccoutant@google.com>
+
+ Add support for thin archives.
+ * archive.c (_bfd_find_nested_archive): New function.
+ (get_extended_arelt_filename): Add origin parameter.
+ (_bfd_generic_read_ar_hdr_mag): Deal with extended name
+ combined with a file offset.
+ (append_relative_path): New function.
+ (_bfd_get_elt_at_filepos): Deal with external members and
+ nested archives.
+ (bfd_generic_openr_next_archived_file): Thin archives.
+ (bfd_generic_archive_p): Recognize new magic string.
+ (adjust_relative_path): New function.
+ (_bfd_construct_extended_name_table): Construct extended
+ names for thin archive members.
+ (_bfd_write_archive_contents): Emit new magic string, skip
+ copying files for thin archives.
+ * bfd-in.h (bfd_is_thin_archive): New macro.
+ * bfd.c (struct bfd): New fields for thin archives.
+ * libbfd-in.h (struct areltdata): New field for thin archives.
+ * opncls.c (bfd_close): Delete BFDs for nested archives.
+
+2008-03-25 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
+ _bfd_final_link_relocate that also handles R_pcrel24 relocs.
+ (bfinfdpic_relocate_section, bfin_relocate_section): Use it.
+
2008-03-25 Nathan Sidwell <nathan@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs