X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=9583ebd56b37bc5e1c93568248951db358fffebb;hb=558e50badbe8e1dd1d49222caf08cb8d61b184bc;hp=201b16330d3d5b4a1fa4b1b9d31c2d95a9499c6b;hpb=e66cdd681f47dc51beaeee3d813f1c9cba27dedf;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 201b16330d..9583ebd56b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,395 @@ +2016-05-13 H.J. Lu + + PR ld/20093 + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert + GOTPCREL relocation against large section. + +2016-05-13 Alan Modra + + * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use + linker dynamic sections in calculating size and address of + dynamic tags rather than using output sections. Remove asserts. + * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise. + * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise. + * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise. + * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise. + * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise. + * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise. + * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise. + * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise. + * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise. + * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise. + * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise. + * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise. + * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise. + * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise. + * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise. + * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise. + * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise. + * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise. + * elflink.c (bfd_elf_final_link): Likewise. + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise. + * elfxx-sparc.c (sparc_finish_dyn): Likewise. Adjust error message. + * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and + don't set doit. Look up dynobj section. + (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION + invocation and dynamic tag vma calculation. Don't test + boolean var == TRUE. + * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix + DT_JMPREL calc. + +2016-05-13 Alan Modra + + * elflink.c (elf_link_sort_relocs): Wrap overlong lines. Fix + octets_per_byte. Put dynamic .rela.plt last in link orders. + Assign output_offset for reloc sections rather than writing + sorted relocs from block corresponding to output_offset. + +2016-05-12 Alan Modra + + * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last. + +2016-05-11 Andrew Bennett + + * elfxx-mips.c (print_mips_ases): Add DSPR3. + +2016-05-11 Alan Modra + + * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function. + (elf32_hppa_check_relocs): Don't set dynobj. + (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections. + (elf32_hppa_build_stubs): Likewise. + * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare. + +2016-05-11 Alan Modra + + PR 20060 + * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local. + * elf32-ppc.c (ppc_elf_tls_setup): Likewise. + +2016-05-10 Jiong Wang + + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant + aarch64_tls_transition check. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type + enumerator. + (arm_stub_sym_claimed): New function. + (elf32_arm_create_stub): Use veneered symbol name and section if + veneer needs to claim its symbol, and keep logic unchanged otherwise. + (arm_stub_claim_sym): New function. + (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim + veneered symbol, otherwise create local symbol as before. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_size_stubs): Use new macros + ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get + and set branch type of a symbol. + (bfd_elf32_arm_process_before_allocation): Likewise. + (elf32_arm_relocate_section): Likewise and fix identation along the + way. + (allocate_dynrelocs_for_symbol): Likewise. + (elf32_arm_finish_dynamic_symbol): Likewise. + (elf32_arm_swap_symbol_in): Likewise. + (elf32_arm_swap_symbol_out): Likewise. + +2016-05-10 Thomas Preud'homme + + * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter. + * bfd-in2.h: Regenerated. + * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section + parameter to add_stub_section callback. + (elf32_arm_create_or_find_stub_sec): Get output section from link_sec + and pass it down to add_stub_section. + (elf32_arm_add_stub): Set section to stub_sec if NULL before using it + for error message. + (elf32_arm_size_stubs): Add output section parameter to + add_stub_section function pointer parameter. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_create_stub): New function. + (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (enum elf32_arm_stub_type): Delete + arm_stub_a8_veneer_lwm enumerator. + (arm_stub_a8_veneer_lwm): New unsigned constant to replace + aforementioned enumerator. + (struct elf32_arm_stub_hash_entry): Delete target_addend + field and add source_value. + (struct a8_erratum_fix): Delete addend field and add target_offset. + (stub_hash_newfunc): Initialize source_value field amd remove + initialization for target_addend. + (arm_build_one_stub): Stop special casing Thumb relocations: promote + the else to being always executed, moving the + arm_stub_a8_veneer_b_cond specific code in it. Remove + stub_entry->target_addend from points_to computation. + (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset + to target symbol from start of section rather than the offset from the + stub address. + (elf32_arm_size_stubs): Set stub_entry's source_value and target_value + fields from struct a8_erratum_fix's offset and target_offset + respectively. + (make_branch_to_a8_stub): Rename target variable to loc. Compute + veneered_insn_loc and loc using stub_entry's source_value. + +2016-05-10 Thomas Preud'homme + + (elf32_arm_merge_eabi_attributes): Add merging logic for + Tag_DSP_extension. + +2016-05-10 Pip Cet + + PR ld/20059 + * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): + Define as _bfd_generic_copy_link_hash_symbol_type when using + generic hash table. + +2016-05-09 Nick Clifton + + PR binutils/20063 + * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link + field before accessing sections array. + +2016-05-09 Christophe Monat + + PR ld/20030 + * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding. + (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs + to nb_words. + (create_instruction_vldmia): Add is_dp to disambiguate SP/DP + encoding. + (create_instruction_vldmdb): Likewise. + (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding, + uses it to re-encode. + +2016-05-09 Nick Clifton + + PR 19938 + * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental + commit. + +2016-05-09 Alan Modra + + * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check. + +2016-05-06 H.J. Lu + + PR ld/17550 + * elf-bfd.h (elf_link_hash_entry): Update comments for indx, + documenting that indx == -3 if symbol is defined in a discarded + section. + * elflink.c (elf_link_add_object_symbols): Set indx to -3 if + symbol is defined in a discarded section. + (elf_link_output_extsym): Strip a global symbol defined in a + discarded section. + +2016-05-06 H.J. Lu + + * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel + MCU. + +2016-05-05 H.J. Lu + + * elf32-i386.c (elf_i386_convert_load): Extract the GOT load + conversion to ... + (elf_i386_convert_load_reloc): This. New function. + * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load + conversion to ... + (elf_x86_64_convert_load_reloc): This. New function. + +2016-05-05 H.J. Lu + + * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd. + Don't check if contents == NULL. + (elf_i386_tls_transition): Add from_relocate_section. Check + from_relocate_section instead of contents != NULL. Update + elf_i386_check_tls_transition call. + (elf_i386_check_relocs): Cache the section contents if + keep_memory is FALSE. Pass FALSE as from_relocate_section to + elf_i386_tls_transition. + (elf_i386_relocate_section): Pass TRUE as from_relocate_section + to elf_i386_tls_transition. + (elf_backend_caches_rawsize): New. + * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check + if contents == NULL. + (elf_x86_64_tls_transition): Add from_relocate_section. Check + from_relocate_section instead of contents != NULL. + (elf_x86_64_check_relocs): Cache the section contents if + keep_memory is FALSE. Pass FALSE as from_relocate_section to + elf_x86_64_tls_transition. + (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section + to elf_x86_64_tls_transition. + (elf_backend_caches_rawsize): New. + +2016-05-03 Maciej W. Rozycki + + PR 10549 + * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle + STB_GNU_UNIQUE. + +2016-05-03 Jiong Wang + + * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype. + * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise. + * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize + no_apply_dynamic_relocs. + (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though + dynamic relocations generated. + +2016-04-29 H.J. Lu + + * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp + setting to ... + (elf_i386_create_dynamic_sections): Here. + * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move + interp setting to ... + (elf_x86_64_create_dynamic_sections): Here. + +2016-04-29 H.J. Lu + + * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC + and replace (EH)->has_got_reloc with GOT_RELOC. + (elf_i386_fixup_symbol): Pass has_got_reloc to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (elf_i386_convert_load): Pass TRUE to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take + GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC. + (elf_x86_64_fixup_symbol): Pass has_got_reloc to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + (elf_x86_64_allocate_dynrelocs): Likewise. + (elf_x86_64_relocate_section): Likewise. + (elf_x86_64_finish_dynamic_symbol): Likewise. + (elf_x86_64_convert_load): Pass TRUE to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + +2016-04-29 H.J. Lu + + * elf32-i386.c (check_relocs_failed): New. + (elf_i386_check_relocs): Set check_relocs_failed on error. + (elf_i386_relocate_section): Skip if check_relocs failed. + +2016-04-29 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_check_relocs): Set + check_relocs_failed on error. + +2016-04-29 Nick Clifton + + PR 19938 + * elf-bfd.h (struct elf_backend_data): Rename + elf_backend_set_special_section_info_and_link to + elf_backend_copy_special_section_fields. + * elfxx-target.h: Likewise. + * elf.c (section_match): Ignore the SHF_INFO_LINK flag when + comparing section flags. + (copy_special_section_fields): New function. + (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field. + Perform two scans over special sections. The first one looks for + a direct mapping between the output section and an input section. + The second scan looks for a possible match based upon section + characteristics. + * elf32-arm.c (elf32_arm_copy_special_section_fields): New + function. Handle setting the sh_link field of SHT_ARM_EXIDX + sections. + * elf32-i386.c (elf32_i386_set_special_info_link): Rename to + elf32_i386_copy_solaris_special_section_fields. + * elf32-sparc.c (elf32_sparc_set_special_section_info_link): + Rename to elf32_sparc_copy_solaris_special_section_fields. + * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to + elf64_x86_64_copy_solaris_special_section_fields. + +2016-04-28 Nick Clifton + + * po/zh_CN.po: Updated Chinese (simplified) translation. + +2016-04-27 H.J. Lu + + PR ld/20006 + * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections + when estimating distances between output sections. + +2016-04-27 Alan Modra + + * elflink.c (_bfd_elf_is_start_stop): New function. + (_bfd_elf_gc_mark_rsec): Use it. + * elf-bfd.h (_bfd_elf_is_start_stop): Declare. + +2016-04-26 Trevor Saunders + + * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *. + * mmo.c (mmo_get_section_contents): Likewise. + (mmo_set_section_contents): Likewise. + +2016-04-26 H.J. Lu + + * elf-bfd.h (elf_link_hash_table): Update comments for + dynsymcount. + * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for + the unused NULL entry at the head of dynamic symbol table. + (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0 + checks. + +2016-04-21 H.J. Lu + + * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker + created file from dynobj. + +2016-04-21 H.J. Lu + + * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a + normal input file if possible. + +2016-04-21 Nick Clifton + + * aout-adobe.c: Use _bfd_generic_link_check_relocs. + * aout-target.h: Likewise. + * aout-tic30.c: Likewise. + * binary.c: Likewise. + * bout.c: Likewise. + * coff-alpha.c: Likewise. + * coff-rs6000.c: Likewise. + * coff64-rs6000.c: Likewise. + * coffcode.h: Likewise. + * i386msdos.c: Likewise. + * i386os9k.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * libbfd-in.h: Likewise. + * libecoff.h: Likewise. + * mach-o-target.c: Likewise. + * mmo.c: Likewise. + * nlm-target.h: Likewise. + * oasys.c: Likewise. + * pef.c: Likewise. + * plugin.c: Likewise. + * ppcboot.c: Likewise. + * som.c: Likewise. + * srec.c: Likewise. + * tekhex.c: Likewise. + * versados.c: Likewise. + * vms-alpha.c: Likewise. + * xsym.c: Likewise. + * elfxx-target.h: Use _bfd_elf_link_check_relocs. + * linker.c (bfd_link_check_relocs): New function. + (_bfd_generic_link_check_relocs): New function. + * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of + _bfd_link_check_relocs field. + (struct bfd_target)L Add _bfd_link_check_relocs field. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + 2016-04-20 H.J. Lu * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.