X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=f4d4c5723061c00ac09c9a13733ad1b6a0f7600a;hb=bb864ac122ca01559e202562d69b7619027e8e2c;hp=b8afd283e7ce414ea77a2f9a6e1d1fe028aaedac;hpb=9dcc47943c9cade9fa2d4ce118a9f25ac4dd5f98;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b8afd283e7..f4d4c57230 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,328 @@ +2008-05-24 Carlos Eduardo Seo + + * elf.c (elfcore_write_register_note): New function. + * elf-bfd.h (elfcore_write_register_note): New prototype. + +2008-05-22 Christophe Lyon + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2008-05-14 Ulrich Weigand + Alan Modra + + * 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 + + 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 + + * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym. + +2008-05-10 Paul Pluzhnikov + + * elfcore.h (elf_core_file_p): Warn about core truncation. + +2008-05-07 Bob Wilson + + * 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 + + * 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 + + * 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 + + 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 + + * elf.c (bfd_elf_get_str_section): Fix memory leak caused by + corrupt string table. + +2008-05-01 Joel Brobecker + + * cache.c (cache_bread_1): Renames cache_bread. + (cache_bread): New function. + +2008-05-01 Alan Modra + + 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 + + * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry. + +2008-04-29 Daniel Jacobowitz + + * 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 + + * reloc16.c (bfd_coff_reloc16_get_value): Add support for + undefined weak symbols. + +2008-04-25 Nick Clifton + + * po/vi.po: Updated Vietnamese translation. + +2008-04-23 Paolo Bonzini + + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2008-04-21 Cary Coutant + + * archive.c (_bfd_write_archive_contents): Fix incorrect use of + ARFMAG. + +2008-04-21 Nathan Sidwell + + * 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 + + * 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 + + * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add. + +2008-04-16 David S. Miller + + * 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 + + * configure.in: Link with the PIC version of libiberty on + Linux/MIPS hosts. + * configure: Regenerate. + +2008-04-14 Edmar Wienskoski + + * archures.c: Add bfd_mach_ppc_e500mc. + * bfd-in2.h: Regenerate. + +2008-04-08 Alan Modra + + * 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 + + * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note + in EXEC_P bfds. + 2008-04-08 Alan Modra * elf32-spu.c: Include libiberty.h.