* elf.c (elfcore_write_register_note): New function.
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 612a49017d6283200d4f113db724d54fa171a978..f4d4c5723061c00ac09c9a13733ad1b6a0f7600a 100644 (file)
@@ -1,9 +1,757 @@
+2008-05-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
+
+       * elf.c (elfcore_write_register_note): New function.
+       * elf-bfd.h (elfcore_write_register_note): New prototype.
+
+2008-05-22  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.
+       (elf32_arm_stub_add_mapping_symbol): Remove.
+       (elf32_arm_add_stub): Don't generate mapping symbols. Change
+       prototype.
+       (elf32_arm_size_stubs): Use new elf32_arm_add_stub
+       prototype. Don't generate thumb to arm glue for calls.
+       (arm_map_one_stub): Define.
+       (elf32_arm_output_arch_local_syms): Generate mapping symbols for
+       long calls stubs.
+       
+2008-05-21  Maxim Kuvyrkov  <maxim@codesourcery.com>
+       
+       Add multi-GOT support for m68k.
+       * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
+       glist): New fields.
+       (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
+       struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
+       struct elf_m68k_multi_got): New data structures.
+       (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
+       allow_multigot_p, multi_got_): New fields.
+       (elf_m68k_multi_got): New macro.
+       (elf_m68k_link_hash_newfunc): Initialize new fields of
+       struct elf_m68k_link_hash_entry.
+       (elf_m68k_link_hash_table_create): Initialize new fields of
+       struct elf_m68k_link_hash_table.
+       (elf_m68k_link_hash_table_free): New static function implementing hook.
+       (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
+       static functions for struct elf_m68k_got.       
+       (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
+       elf_m68k_got_entry_eq): New static functions for
+       struct elf_m68k_got_entry.
+       (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
+       ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
+       (enum elf_m68k_get_entry_howto): New enum.
+       (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
+       elf_m68k_remove_got_entry_type): New static functions for
+       struct elf_m68k_got_entry.
+       (elf_m68k_add_entry_to_got): New static function.
+       (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
+       elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
+       functions for struct elf_m68k_bfd2got_entry.
+       (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
+       elf_m68k_can_merge_gots): New traversal.
+       (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
+       elf_m68k_merge_gots): Ditto.
+       (struct elf_m68k_finalize_got_offsets_arg,
+       elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
+       (struct elf_m68k_partition_multi_got_arg,
+       elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
+       elf_m68k_partition_multi_got): Ditto.
+       (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
+       functions.
+       (elf_m68k_copy_indirect_symbol): New static function implementing
+       a hook.
+       (elf_m68k_check_relocs): Update to add entries to multi-GOT.
+       (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
+       (elf_m68k_always_size_sections): Assign BFDs to GOTs.
+       (elf_m68k_relocate_section): Update to properly handle GOT relocations.
+       (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
+       of a global symbol.
+       (bfd_elf_m68k_set_target_options): New function.
+       (bfd_elf32_bfd_link_hash_table_free): Define hook.
+       (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
+       to skip generic calculation of GOT offsets.
+       (elf_backend_copy_indirect_symbol): Define hook.
+       * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
+       * bfd-in2.h: Regenerate.
+
+2008-05-21  AndrĂ© Johansen  <andrejoh@gmail.com>
+
+       PR 868
+       * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
+       for filenames in function tables and variable tables.
+
+2008-05-19  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to
+       vma when all p_paddr fields are zero and there is more than
+       one PT_LOAD header.
+
+2008-05-15  Christophe Lyon  <christophe.lyon@st.com>
+
+       Add long call support for ARM.
+       * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
+       (THM2_MAX_BWD_BRANCH_OFFSET): Define.
+       (ARM_MAX_FWD_BRANCH_OFFSET): Define.
+       (ARM_MAX_BWD_BRANCH_OFFSET): Define.
+       (THM_MAX_FWD_BRANCH_OFFSET): Define.
+       (THM_MAX_BWD_BRANCH_OFFSET): Define.
+       (arm_long_branch_stub): Define.
+       (arm_pic_long_branch_stub): Define.
+       (arm_thumb_v4t_long_branch_stub): Define.
+       (arm_thumb_thumb_long_branch_stub): Define.
+       (arm_thumb_arm_v4t_long_branch_stub): Define.
+       (STUB_SUFFIX): Define.
+       (elf32_arm_stub_type): Define.
+       (elf32_arm_stub_hash_entry): Define.
+       (elf32_arm_link_hash_entry): Add stub_cache field.
+       (arm_stub_hash_lookup): Define.
+       (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
+       add_stub_section, layout_sections_again, stub_group, bfd_count,
+       top_index, input_list fields.
+       (elf32_arm_link_hash_newfunc): Init new field.
+       (stub_hash_newfunc): New function.
+       (elf32_arm_link_hash_table_create): Init stub_hash_table.
+       (elf32_arm_hash_table_free): New function.
+       (arm_type_of_stub): New function.
+       (elf32_arm_stub_name): New function.
+       (elf32_arm_get_stub_entry): New function.
+       (elf32_arm_stub_add_mapping_symbol): New function.
+       (elf32_arm_add_stub): New function.
+       (arm_build_one_stub): New function.
+       (arm_size_one_stub): New function.
+       (elf32_arm_setup_section_lists): New function.
+       (elf32_arm_next_input_section): New function.
+       (group_sections): New function.
+       (elf32_arm_size_stubs): New function.
+       (elf32_arm_build_stubs): New function.
+       (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
+       (bfd_elf32_arm_process_before_allocation): No longer handle
+       R_ARM_CALL and R_ARM_THM_CALL.
+       (using_thumb_only): New function.
+       (elf32_arm_final_link_relocate): Redirect calls to stub if range
+       exceeds encoding capabilities.
+       (bfd_elf32_bfd_link_hash_table_free): Define.
+       * bfd-in.h (R_ARM_max): Fix value to 130.
+       (elf32_arm_setup_section_lists): Protype.
+       (elf32_arm_next_input_section): Protype.
+       (elf32_arm_size_stubs): Protype.
+       (elf32_arm_build_stubs): Protype.
+       * bfd-in2.h: Regenerate.
+
+2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
+       * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
+
+2008-05-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (section_covers_vma): New function.
+       (ppc_elf_get_synthetic_symtab): New function.
+       (bfd_elf32_get_synthetic_symtab): Define.
+       * elf64-ppc.c (section_covers_vma): New function.
+       (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
+       table entries, and __glink_PLTresolve on resolver stub.
+       (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.
+
+2008-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 6443
+       * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
+       (must_be_dyn_reloc): New function.
+       (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
+       in pies.
+       (ppc_elf_tls_optimize): Optimise pies.
+       (ppc_elf_relocate_section): Use a section symbol rather than no
+       symbol if possible for LD->IE TLS sequence, but don't error if
+       we must use no symbol.
+       * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
+       (must_be_dyn_reloc): Likewise.
+       (ppc64_elf_check_relocs): Likewise.
+       (ppc64_elf_tls_optimize): Likewise.
+       (ppc64_elf_relocate_section): Likewise.
+
+2008-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
+
+2008-05-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       * elfcore.h (elf_core_file_p): Warn about core truncation.
+
+2008-05-07  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (xtensa_property_section_name): New.
+       (xtensa_make_property_section): New.
+       (xtensa_get_property_section): Make static.  Do not create a new
+       section if it does not exist.
+
+2008-05-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_special_sections): Add "._ea".
+       (spu_elf_relocate_section): Handle relocations against symbols
+       defined in ._ea specially.
+
+2008-05-03  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
+       ARRAY_SIZE.
+       (elf32_arm_symbian_plt_sym_val): New.
+       (elf_backend_plt_sym_val): Define.
+
+2008-05-03  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (rewrite_elf_program_header): Rather than clearing
+       p_paddr_valid at end, don't set it in the first place.  Delete
+       comment no longer relevant.  When not p_paddr_valid, don't set
+       paddr from vaddr, and don't set p_vaddr_offset.
+
+2008-05-01  Cary Coutant  <ccoutant@google.com>
+
+       * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
+       corrupt string table.
+
+2008-05-01  Joel Brobecker  <brobecker@adacore.com>
+
+       * cache.c (cache_bread_1): Renames cache_bread.
+       (cache_bread): New function.
+
+2008-05-01  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 2995, PR 6473
+       * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
+       (assign_file_positions_for_load_sections): Combine nested "if".
+       (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
+       when all header p_paddr fields are zero.
+
+2008-04-30  Edmar Wienskoski  <edmar@freescale.com>
+
+       * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
+
+2008-04-29  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
+       (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
+       even if they are not loaded.
+       * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
+       first.
+
+2008-04-25  Jay Foad  <jay.foad@gmail.com>
+
+       * reloc16.c (bfd_coff_reloc16_get_value): Add support for
+       undefined weak symbols.
+
+2008-04-25  Nick Clifton  <nickc@redhat.com>
+
+       * po/vi.po: Updated Vietnamese translation.
+
+2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-21  Cary Coutant  <ccoutant@google.com>
+
+       * archive.c (_bfd_write_archive_contents): Fix incorrect use of
+       ARFMAG.
+
+2008-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
+       set the value of undefined symbols in shared objects.
+       (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
+       undefined symbols unless pointer equality is needed.
+
+2008-04-18  Dennis Roberts  <dennis.roberts@sunquestinfo.com>
+
+       * aix5ppc-core.c: Define macros for the default architecture and
+       machine for matching core files.
+       (xcoff64_core_p): Set the architecture and machine to the default
+       values defined in the macros mentioned above.
+       * rs6000-core.c: Define macros to determine whether or not the
+       core file header uses the core_dumpxx header format.
+       (rs6000coff_core_p): Don't match core files that use the
+       core_dumpxx header format.
+
+2008-04-16  Pedro Alves  <pedro@codesourcery.com>
+
+       * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
+
+2008-04-16  David S. Miller  <davem@davemloft.net>
+
+       * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
+       BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
+       BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
+       * libbfd.h: Regnerate.
+       * bfd-in2.h: Regenerate.
+       * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
+       GOTDATA relocations.
+       (sparc_reloc_map): Likewise.
+       (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
+       R_SPARC_GOT*.
+       (_bfd_sparc_elf_gc_sweep_hook): Likewise.
+       (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
+       R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
+       R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
+       Simply ignore R_SPARC_GOTDATA_OP relocations.
+
+2008-04-14  Aurelien Jarno  <aurelien@aurel32.net>
+
+       * configure.in: Link with the PIC version of libiberty on
+       Linux/MIPS hosts.
+       * configure: Regenerate.
+
+2008-04-14  Edmar Wienskoski  <edmar@freescale.com>
+
+       * archures.c: Add bfd_mach_ppc_e500mc.
+       * bfd-in2.h: Regenerate.
+
+2008-04-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_build_stubs): Correct error message.
+       (mark_functions_via_relocs): Remove premature init of symtab_hdr.
+       (collect_overlays): Commment typo fix.
+
+2008-04-08  Kees Cook  <kees@canonical.com>
+
+       * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
+       in EXEC_P bfds.
+
+2008-04-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c: Include libiberty.h.
+       (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
+       non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
+       spu_elf_relink, auto_overlay fields.
+       (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
+       (needs_ovl_stub): Flip test so that call to non-function warning
+       is emitted during relocate_section rather than earlier.
+       (spu_elf_check_vma): Stash --auto-overlay parameters, and clear
+       auto_overlay if no section exceeds local store.
+       (struct call_info): Add count, max_depth, is_pasted fields.
+       (struct function_info): Add rodata, last_caller, call_count,
+       depth, new visit flags.
+       (insert_callee): Increment call count.
+       (copy_callee): New function.
+       (mark_functions_via_relocs): Investigate all reloc types to count
+       possible function pointer stubs for --auto-overlay.  Track
+       last_caller and increment function call_count.
+       (pasted_function): Insert a "call" into call info for pasted section.
+       (remove_cycles): Track max depth of calls.  Don't emit call graph
+       pruning warning for --auto-overlay.
+       (build_call_tree): Don't transfer_calls for --auto-overlay.
+       Adjust remove_cycles call.
+       (sort_calls, sort_lib, sort_bfds): New functions.
+       (struct _mos_param, struct _uos_param, struct _cl_param): New.
+       (mark_overlay_section, unmark_overlay_section): New functions.
+       (collect_lib_sectios, auto_ovl_lib_functions): New functions.
+       (collect_overlays, find_pasted_call): New functions.
+       (sum_stack): Deal with is_pasted "calls".  Exit before printing
+       when --auto-overlay.
+       (spu_elf_auto_overlay): New function.
+       (spu_elf_final_link): Call spu_elf_auto_overlay.
+       * elf32-spu.h (spu_elf_check_vma): Update prototype.
+
+2008-04-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
+       is defined in overlay section before creating a stub.
+       (build_spuear_stubs): Likewise.
+       (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
+
+2008-04-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (insert_callee): Reorder call list so most recent
+       call is always first.
+       (interesting_section): Move.
+       (mark_functions_via_relocs): Fold interesting_section and
+       reloc_count tests in callers to here.  Simplify output section
+       owner test.
+       (discover_functions): Set "gaps" when no symbols and some
+       "interesting_section".  Run pasted_function loop for no symbol
+       bfds.
+       (for_each_node, transfer_calls): New functions.
+       (mark_non_root): Adjust to suit for_each_node.
+       (call_graph_traverse): Likewise.  Fix memory leak.  Rename to..
+       (remove_cycles): ..this.
+       (build_call_tree): Use for_each_node and transfer_calls.
+       (struct _sum_stack_param): New.
+       (sum_stack): Adjust to suit for_each_node.  Return error on
+       malloc failure.  Move code to print root node cumulative stack from..
+       (spu_elf_stack_analysis): ..here.  Use for_each_node.
+
+2008-03-31  Cary Coutant  <ccoutant@google.com>
+
+       PR 6006
+       * archive.c (_bfd_slurp_extended_name_table): Change
+       ARFMAG[0] to ARFMAG[1].
+       (_bfd_construct_extended_name_table): Likewise.
+
+2008-03-31  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
+       (_bfd_mips_elf_check_relocs): Update comments.  Always call
+       mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
+
+2008-03-27  Cary Coutant  <ccoutant@google.com>
+
+       Add support for thin archives.
+       * archive.c (_bfd_find_nested_archive): New function.
+       (get_extended_arelt_filename): Add origin parameter.
+       (_bfd_generic_read_ar_hdr_mag): Deal with extended name
+       combined with a file offset.
+       (append_relative_path): New function.
+       (_bfd_get_elt_at_filepos): Deal with external members and
+       nested archives.
+       (bfd_generic_openr_next_archived_file): Thin archives.
+       (bfd_generic_archive_p): Recognize new magic string.
+       (adjust_relative_path): New function.
+       (_bfd_construct_extended_name_table): Construct extended
+       names for thin archive members.
+       (_bfd_write_archive_contents): Emit new magic string, skip
+       copying files for thin archives.
+       * bfd-in.h (bfd_is_thin_archive): New macro.
+       * bfd.c (struct bfd): New fields for thin archives.
+       * libbfd-in.h (struct areltdata): New field for thin archives.
+       * opncls.c (bfd_close): Delete BFDs for nested archives.
+
+2008-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
+       _bfd_final_link_relocate that also handles R_pcrel24 relocs.
+       (bfinfdpic_relocate_section, bfin_relocate_section): Use it.
+
+2008-03-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
+       in vxworks tls_vars sections.
+       (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
+       * elf32-i386.c (allocate_dynrelocs,
+       elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
+       * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
+       ppc_elf_relocate_section): Likewise.
+       * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
+       sh_elf_relocate_section): Likewise.
+       * elfxx-sparc.c (allocate_dynrelocs,
+       _bfd_sparc_elf_size_dynamic_sections,
+       _bfd_sparc_elf_relocate_section): Likewise.
+
+2008-03-21  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
+       print the values from the dynamic section.
+
+2008-03-20  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
+       (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.
+
+2008-03-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
+       (spu_elf_find_overlays, spu_elf_size_stubs): Likewise
+       (process_stubs, discover_functions, build_call_tree): Likewise.
+       (spu_elf_stack_analysis): Likewise.
+       (spu_elf_check_vma): Likewise.  Move.
+       (struct call_info): Make "is_tail" a bitfield.
+       (insert_callee): Clear fun->start and set fun->is_func if we find
+       a non-tail call.
+       * elf32-spu.h (spu_elf_create_sections): Update prototype.
+       (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.
+
+2008-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * aclocal.m4: Regenerate.
+       * configure: Likewise.
+       * Makefile.in: Likewise.
+
+2008-03-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/5789
+       PR ld/5943
+       * elf32-i386.c  (elf_i386_relocate_section): Issue an error
+       for R_386_GOTOFF relocaton against undefined hidden/internal
+       symbols when building a shared object.
+
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
+       error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
+       relocaton against undefined hidden/internal symbols when
+       building a shared object.
+       (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
+       is referenced locally, but isn't defined in a regular file.
+
+2008-03-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
+       HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
+       BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
+       HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
+       * bfd.c: Here.
+
+       * bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
+       mtime_set, no_export, output_has_begun and has_armap to bit
+       field.
+
+       * bfd-in2.h: Regenerated.
+
+2008-03-14  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * cache.c (close_one): Remove mtime hack.
+
+2008-03-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/5913
+       * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
+       (elfNN_ia64_dtprel_base): Likewise.
+       (elfNN_ia64_relocate_section): Go to missing_tls_sec if
+       tls_sec is NULL before calling elfNN_ia64_tprel_base or
+       elfNN_ia64_dtprel_base.  Report unsupported TLS relocations.
+
+2008-03-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
+       common code to..
+       (maybe_needs_stub): ..here, a new function that also omits stubs
+       for .eh_frame, and..
+       (needs_ovl_stub): ..here.  Create stubs for labels in code section
+       referenced by switch jump table.
+       (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
+       (enum _insn_type): Delete.
+       (enum _stub_type): New.
+       (count_stub, build_stub): Adjust.
+       (allocate_spuear_stubs, build_spuear_stubs): Adjust.
+
+2008-03-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
+       (_bfd_elf_assign_file_position_for_section): Simplify align.
+       (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
+       for sh_addralign.
+       (elf_fake_sections, swap_out_syms): Likewise.
+       * elflink.c (bfd_elf_final_link): Likewise.
+
+2008-03-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2008-03-12  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       From Jie Zhang <jie.zhang@analog.com>
+       * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
+       gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
+       gotoff, call and sym not bitfields.
+       (bfinfdpic_gc_sweep_hook): New function; update the relocation
+       information for the relocations of the section being removed.
+       (bfinfdpic_check_relocs): Accumulate the number of relocations
+       which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
+       fdgoffhilo, gotoff, call and sym fields.
+       (elf_backend_gc_sweep_hook): Redefine for FD-PIC.
+
+2008-03-12  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 5900
+       * elf-bfd.h: Include elf/internal.h after elf/external.h.
+       * elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
+       (elf_swap_symbol_out): Adjust SHN_XINDEX test.
+       (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
+       seen in external structs.
+       (valid_section_index_p): Delete.
+       (elf_object_p): Don't increment section numbers over reserved range.
+       Simplify test for valid sh_link, sh_info and e_shstrndx fields.
+       (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
+       seen in external structs.  Don't increment section numbers over
+       reserved range.
+       * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
+       (bfd_section_from_shdr): Likewise.
+       (group_signature): Range check before accessing elf_elfsections.
+       (_bfd_elf_setup_sections): Likewise.
+       (bfd_section_from_shdr): Likewise.
+       (bfd_section_from_shdr): Don't increment section number over
+       reserved sections.
+       (assign_file_positions_for_non_load_sections): Likewise.
+       (assign_file_positions_except_relocs): Likewise.
+       (_bfd_elf_write_object_contents): Likewise.
+       (assign_section_numbers): Likewise.  Adjust for changed SHN_*.
+       (prep_headers): Delete unused variable.
+       * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
+       for changed SHN_* values.
+       (check_dynsym, elf_link_input_bfd): Likewise.
+       (bfd_elf_final_link): Likewise.  Don't skip over reserved section
+       range.
+       (elf_fixup_link_order): Check that sh_link field is valid.
+       * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
+       * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
+       accesssing elf_elfsections.
+       * elf32-avr.c (elf32_avr_size_stubs): Likewise.
+       * elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
+       * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
+       * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
+       SHN_* defines.  Test for SHN_BAD return from
+       _bfd_elf_section_from_bfd_section
+
+2008-03-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
+       * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
+       SHN_BAD on error.
+       (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
+       _bfd_elf_section_from_bfd_section, not -1.
+       (swap_out_syms): Likewise.
+       * elflink.c (elf_link_add_object_symbols): Likewise.
+       (bfd_elf_get_bfd_needed_list): Likewise.
+       (bfd_elf_match_symbols_in_sections): Likewise.
+       (elf_link_add_object_symbols): Don't bother testing for symbols
+       using normal sections before calling bfd_section_from_elf_index.
+       (elf_link_input_bfd, bfd_elf_final_link): Likewise.
+       (bfd_elf_reloc_symbol_deleted_p): Likewise.
+       * elfcode.h (elf_slurp_symbol_table): Likewise.
+       * elf32-spu.c (get_sym_h): Likewise.
+       * elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
+       * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
+       * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
+
+2008-03-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_relocate_section): Test identical conditions
+       to those in process_stubs for overlay symbols.
+
+2008-03-09  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
+       Tag_VFP_arch values.
+
+2008-03-08  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (insert_thumb_branch): Rewrite.
+       (elf32_thumb_to_arm_stub): Use new insert_thumb_branch.
+
+2008-03-07  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
+       MOVT relocations.
+       (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
+       extension.
+       (elf32_arm_relocate_section): Handle MOVW and MOVT
+       relocations.  Improve safety check for other weird relocations.
+       (elf32_arm_check_relocs): Only set h->needs_plt for branch/call
+       relocations.
+
+2008-03-03  Bob Wilson  <bob.wilson@acm.org>
+
+       * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
+       only compute its value once.
+
+2008-03-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (struct got_entry): Add "addend" field.
+       (count_stub, build_stub): Use a new stub if relocation addend
+       differs from existing stubs for this symbol.
+       (process_stubs): Deal with addends.
+       (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.
+
+2008-03-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/5789
+       * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
+       for hidden and local symbols.
+
+2008-03-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (allocate_dynrelocs): Discard relocs on
+       undefined symbols with internal or hidden visibility.
+       (ppc_elf_relocate_section): Likewise.  Use SYMBOL_CALLS_LOCAL
+       rather than SYMBOL_REFERENCES_LOCAL on branches.  Don't
+       return immediately on dynamic reloc error.
+
+2008-03-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
+       if emitrelocations.
+       (get_relocs): New function, split out from..
+       (ppc_build_one_stub): ..here.  Add relocs on plt_branch stubs if
+       emitrelocations.  Remove indx temp.
+       (ppc_size_one_stub): Count new stub relocs.
+       (ppc64_elf_size_stubs): Count new glink reloc.
+       (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
+       (ppc64_elf_finish_dynamic_sections): Output glink relocs.
+       * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
+       glink code.
+
+2008-02-28  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (mark_functions_via_relocs): Don't assume that
+       the "->start" pointer reaches to function origin, so that we
+       can handle functions split over more than two sections.
+       (build_call_tree): Likewise.
+       (pasted_function): Don't attempt to set fun->start back to the
+       function origin, just go back one section.
+
+2008-02-27  Catherine Moore  <clm@codesourcery.com>
+
+       * elf.c ( _bfd_elf_print_private_bfd_data): Call
+       elf_backend_get_target_dtag if defined.
+       * elf32-mips.c (elf_backend_get_target_dtag): Define.
+       * elf64-mips.c: Likewise.
+       * elfn32-mips.c: Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
+       * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
+       * elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
+       * elfxx-target.h (elf_backend_get_target_dtag): Add default.
+       (elf_backend_data): Add elf_backend_get_target_dtag.
+
+2008-02-26  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
+       for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
+       and assume branch relocs are not dynamic when non-shared.
+       (readonly_dynrelocs): New function, split out from..
+       (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
+       (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
+       clear non_got_ref..
+       (allocate_dynrelocs): ..and don't set u.def for undefined weak.
+       Do allow dynamic relocs on undefined symbols.
+       (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+       (ppc_elf_relocate_section): Mirror dynamic reloc changes in
+       check_relocs.
+       (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
+       plt symbols needing pointer_equality_needed.
+
+2008-02-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.
+
+2008-02-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
+       pointer_equality_needed.
+       (ppc_elf_check_relocs): Split out non-branch relocs from others
+       that might emit dynamic relocs.  Set pointer_equality_needed
+       for their symbols.  Don't set non_got_ref on branch reloc symbols.
+       (ppc_elf_hash_symbol): New function.
+       (elf_backend_hash_symbol): Define.
+       (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
+       Error if pointer_equality_needed on weak plt symbol.
+
+2008-02-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/5788
+       * elflink.c (elf_create_symbuf): Correct buffer size and
+       position.
+
 2008-02-22  Nick Clifton  <nickc@redhat.com>
 
        PR 868
 2008-02-22  Nick Clifton  <nickc@redhat.com>
 
        PR 868
-       *dwarf2.c: Revert previous patch.  All of the allocate memory is
+       * dwarf2.c: Revert previous patch.  All of the allocate memory is
        on an obstack which will be freed at some other time.
        on an obstack which will be freed at some other time.
-       
+
 2008-02-20  Nick Clifton  <nickc@redhat.com>
 
        PR 868
 2008-02-20  Nick Clifton  <nickc@redhat.com>
 
        PR 868
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
-       (elf_s390_relocate_section): Likewise.   
+       (elf_s390_relocate_section): Likewise.
        * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
        (is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
        ELF bfd.
        * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
        (is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
        ELF bfd.
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        being processed.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        being processed.
        (elf_s390_size_dynamic_sections): Likewise.
-       (elf_s390_relocate_section): Likewise.   
+       (elf_s390_relocate_section): Likewise.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
-       (_bfd_sparc_elf_relocate_section): Likewise. 
+       (_bfd_sparc_elf_relocate_section): Likewise.
 
 2008-02-12  Alan Modra  <amodra@bigpond.net.au>
 
 
 2008-02-12  Alan Modra  <amodra@bigpond.net.au>
 
        Adjust initialisations relating to _ovly_buf_table.
 
 2008-02-04  Bob Wilson  <bob.wilson@acm.org>
        Adjust initialisations relating to _ovly_buf_table.
 
 2008-02-04  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
        relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
        relocations against dynamic symbols.
        (elf_xtensa_finish_dynamic_sections): Do not fail if there is no
        .xt.lit section.
        * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
        relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
        relocations against dynamic symbols.
        (elf_xtensa_finish_dynamic_sections): Do not fail if there is no
        .xt.lit section.
-       
+
 2008-02-04  Kai Tietz  <kai.tietz@onevision.com>
            H.J. Lu  <hongjiu.lu@intel.com>
 
 2008-02-04  Kai Tietz  <kai.tietz@onevision.com>
            H.J. Lu  <hongjiu.lu@intel.com>
 
This page took 0.031115 seconds and 4 git commands to generate.