X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=6eebc4501deef4aff57c890526d79fc77d9f9f2f;hb=4ec521f238627f7682306d699c8826390a2cc9e7;hp=419c311eea4da29e6d4066d8d20e60a4d025f26e;hpb=90efb6422939ca031804266fba669f77c22a274a;p=binutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 419c311eea4..6eebc4501de 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,768 @@ +2017-09-09 Kamil Rytarowski + + * elf32-nds32.c: Rename __BIT() to N32_BIT(). + +2017-09-09 Alan Modra + + * elf64-ppp.c (plt_stub_pad): Handle positive and negative + plt_stub_align. + +2017-09-09 H.J. Lu + + * elf32-i386.c (elf_i386_relocate_section): Update usage of + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + (elf_i386_finish_dynamic_symbol): Likewise. + * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. + (elf_x86_64_finish_dynamic_symbol): Likewise. + * elfxx-x86.c (elf_x86_allocate_dynrelocs): Likewise. + (_bfd_x86_elf_fixup_symbol): Likewise. + +2017-09-09 H.J. Lu + + * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't + check has_non_got_reloc. + +2017-09-09 H.J. Lu + + PR ld/22115 + * elf32-i386.c (elf_i386_convert_load_reloc): Check linker_def. + Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO. + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Check + linker_def. Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO. + * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Set local_ref + and linker_def on __ehdr_start if it is referenced and not + defined. + (_bfd_x86_elf_link_symbol_references_local): Also set local_ref + and return TRUE when building executable, if a symbol has + non-GOT/non-PLT relocations in text section or there is no + dynamic linker. + * elfxx-x86.h (elf_x86_link_hash_entry): Add linker_def. + +2017-09-08 H.J. Lu + + * elfxx-x86.h: Update comments. + +2017-09-08 H.J. Lu + + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Replace + elf_x86_plt_layout_table with elf_x86_init_table. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): + Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): + Likewise. + * elfxx-x86.h (elf_x86_plt_layout_table): Renamed to ... + (elf_x86_init_table): This. + (_bfd_x86_elf_link_setup_gnu_properties): Replace + elf_x86_plt_layout_table with elf_x86_init_table. + +2017-09-07 H.J. Lu + + * configure.ac (bfd_backends): Don't add elf64-x86-64.lo nor + elf64.lo together with elfxx-x86.lo for 64-bit BFD. + * configure: Regenerated. + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Set r_info + and r_sym fields of plt_layout. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): + Likewise. + * elfxx-x86.c (elf_x86_64_is_reloc_section): Remove BFD64 check. + (_bfd_x86_elf_link_hash_table_create): Likewise. Don't set + r_info nor r_sym fields. + (_bfd_x86_elf_link_setup_gnu_properties): Set r_info and r_sym + fields of htab. + * elfxx-x86.h (elf_x86_plt_layout_table): Add r_info and r_sym. + +2017-09-07 Palmer Dabbelt + + * (_bfd_riscv_relax_align): Call bfd_set_error and + print an error message when unable to relax a .align directive. + +2017-09-07 Palmer Dabbelt + + * elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function. + (riscv_record_pcrel_hi_reloc): Add absolute argument. + (riscv_elf_relocate_section): Call riscv_zero_pcrel_hi_reloc for + R_RISCV_PCREL_HI20 relocs, and pass the result to + riscv_record_pcrel_hi_reloc. + +2017-09-07 H.J. Lu + + * elf32-i386.c (elf_i386_convert_load_reloc): Add an argument, + r_type_p. Remove the converted argument. Replace + SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P. Return + the new relocation type via r_type_p. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (need_convert_load): Removed. + (check_relocs_failed): Updated. + (elf_i386_check_relocs): Call elf_i386_convert_load_reloc, + instead of setting need_convert_load. + (_bfd_i386_elf_convert_load): Removed. + * elf64-x86-64.c (need_convert_load): Removed. + (check_relocs_failed): Updated. + (elf_x86_64_convert_load_reloc): Add an argument, r_type_p. + Replace SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P. + Return the new relocation type via r_type_p. + (elf_x86_64_check_relocs): Call elf_x86_64_convert_load_reloc, + instead of setting need_convert_load. + (elf_x86_64_check_relocs): Don't check PIC if relocation has + been converted. + (_bfd_x86_64_elf_convert_load): Removed. + (elf_x86_64_relocate_section): Replace SYMBOL_REFERENCES_LOCAL + with SYMBOL_REFERENCES_LOCAL_P. + (elf_x86_64_finish_dynamic_symbol): Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Don't + set convert_load. + (_bfd_x86_elf_size_dynamic_sections): Don't call convert_load. + (_bfd_x86_elf_link_symbol_references_local): New function. + * elfxx-x86.h (SYMBOL_REFERENCES_LOCAL_P): New. + (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Replace elf.forced_local with + SYMBOL_REFERENCES_LOCAL_P. + (elf_x86_link_hash_entry): Add local_ref. + (elf_x86_link_hash_table): Remove convert_load. + (_bfd_i386_elf_convert_load): Removed. + (_bfd_x86_64_elf_convert_load): Likewise. + (_bfd_x86_elf_link_symbol_references_local): New. + +2017-09-06 H.J. Lu + + * elf64-x86-64.c (R_X86_64_converted_reloc_bit): New. + (elf_x86_64_info_to_howto): Get the real relocation type by + masking out R_X86_64_converted_reloc_bit. + (elf_x86_64_check_tls_transition): Get the real relocation type + by masking out R_X86_64_converted_reloc_bit. + (elf_x86_64_convert_load_reloc): Set R_X86_64_converted_reloc_bit + instead of setting converted_reloc. + (elf_x86_64_relocate_section): Check R_X86_64_converted_reloc_bit + instead of converted_reloc. Get the real relocation type by + masking out R_X86_64_converted_reloc_bit. + (elf_x86_64_link_setup_gnu_properties): Verify that the value of + R_X86_64_converted_reloc_bit is valid. + * elfxx-x86.h (converted_reloc): Removed. + +2017-09-06 H.J. Lu + + * elf32-i386.c (elf_i386_relocate_section): Don't change r_type + when calling elf_i386_tls_transition. Don't use ELF32_R_TYPE + to get the relocation type again. + * elf64-x86-64.c (elf_x86_64_relocate_section): Don't change + r_type when calling elf_x86_64_tls_transition. Don't use + ELF32_R_TYPE to get the relocation type again. + +2017-09-05 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Properly set + converted_reloc. + +2017-09-05 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Remove the sec + argument. Don't check relocation overflow. Avoid relocation + overflow if --no-relax is used. Set converted_reloc on symbol + if a GOTPCREL relocation is converted. + (elf_x86_64_relocate_section): Issue a fatal error and suggest + --no-relax if GOTPCREL relocation conversion leads to relocation + overflow. + * elfxx-x86.h (elf_x86_link_hash_entry): Add converted_reloc. + +2017-09-05 Alexander Fedotov + Edmar Wienskoski + + PR ld/22071 + * elfxx-x86.c (elf_x86_allocate_dynrelocs): Set tlsdesc_plt + for x86-64 if GOT_TLS_GDESC_P is true. + +2017-09-03 Alan Modra + + PR 22067 + * elfxx-x86.h (elf_x86_hash_table): Check is_elf_hash_table first. + +2017-09-02 H.J. Lu + + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize + tls_get_addr for x86-64 in one place. + +2017-09-02 H.J. Lu + + * configure.ac (bfd_backends): Add elf64-x86-64.lo together + with elfxx-x86.lo for 64-bit BFD. + * configure: Regenerated. + +2017-09-02 H.J. Lu + + * elf32-i386.c (elf_i386_convert_load): Renamed to ... + (_bfd_i386_elf_convert_load): This. Remove static. + (elf_i386_size_dynamic_sections): Removed. + (elf_backend_size_dynamic_sections): Likewise. + * elf64-x86-64.c (elf_x86_64_convert_load): Renamed to ... + (_bfd_x86_64_elf_convert_load): This. Remove static. + (elf_x86_64_size_dynamic_sections): Removed. + (elf_backend_size_dynamic_sections): Likewise. + * elfxx-x86.c (_bfd_x86_elf_allocate_dynrelocs): Renamed to ... + (elf_x86_allocate_dynrelocs): This. Make it static. + (_bfd_x86_elf_allocate_local_dynrelocs): Renamed to ... + (elf_x86_allocate_local_dynreloc): This. Make it static. + (elf_i386_is_reloc_section): New function. + (elf_x86_64_is_reloc_section): Likewise. + (_bfd_x86_elf_link_hash_table_create): Initialize convert_load, + is_reloc_section, dt_reloc, dt_reloc_sz and dt_reloc_ent. + Rearrange got_entry_size initialization. + (_bfd_x86_elf_size_dynamic_sections): New function. + * elfxx-x86.h (elf_x86_link_hash_table): Add convert_load, + is_reloc_section, dt_reloc, dt_reloc_sz and dt_reloc_ent. + (_bfd_i386_elf_convert_load): New. + (_bfd_x86_64_elf_convert_load): Likewise. + (_bfd_x86_elf_size_dynamic_sections): Likewise. + (elf_backend_size_dynamic_sections): Likewise. + (_bfd_x86_elf_allocate_dynrelocs): Removed. + (_bfd_x86_elf_allocate_local_dynrelocs): Likewise. + +2017-09-02 H.J. Lu + + * elfxx-x86.h (elf_x86_link_hash_table): Rearrange fields and + update comments. + +2017-09-02 H.J. Lu + + * elf32-i386.c (elf_i386_size_dynamic_sections): Set + sgotplt_jump_table_size with elf_x86_compute_jump_table_size. + +2017-09-02 H.J. Lu + + * elf32-i386.c (PLT_CIE_LENGTH, PLT_FDE_LENGTH, + PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Moved to ... + * elfxx-x86.h (PLT_CIE_LENGTH, PLT_FDE_LENGTH, + PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Here. + * elf64-x86-64.c (PLT_CIE_LENGTH, PLT_FDE_LENGTH, + PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Removed. + +2017-09-02 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Removed. + (elf_i386_allocate_local_dynrelocs): Likewise. + (elf_i386_size_dynamic_sections): Replace + elf_i386_allocate_dynrelocs/elf_i386_allocate_local_dynrelocs + with _bfd_x86_elf_allocate_dynrelocs and + _bfd_x86_elf_allocate_local_dynrelocs. + * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Removed. + (elf_x86_64_allocate_local_dynrelocs): Likewise. + (elf_x86_64_size_dynamic_sections): Replace + elf_x86_64_allocate_dynrelocs/elf_x86_64_allocate_local_dynrelocs + with _bfd_x86_elf_allocate_dynrelocs and + _bfd_x86_elf_allocate_local_dynrelocs. + * elfxx-x86.c (_bfd_x86_elf_allocate_dynrelocs): New function. + (_bfd_x86_elf_allocate_local_dynrelocs): Likewise. + * elfxx-x86.h (_bfd_x86_elf_allocate_dynrelocs): New prototype. + (_bfd_x86_elf_allocate_local_dynrelocs): Likewise. + +2017-09-02 H.J. Lu + + * elf32-i386.c (is_i386_elf): Removed. + (elf_i386_check_relocs): Replace is_i386_elf with is_x86_elf. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (is_x86_64_elf): Removed. + (elf_x86_64_check_relocs): Replace is_x86_64_elf with + is_x86_elf. + (elf_x86_64_size_dynamic_sections): Likewise. + (elf_x86_64_relocate_section): Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize + target_id. + * elfxx-x86.h (elf_x86_link_hash_table): Add target_id. + (is_x86_elf): New. + +2017-09-02 H.J. Lu + + * elf32-i386.c (elf_i386_compute_jump_table_size): Removed. + (elf_i386_allocate_dynrelocs): Replace + elf_i386_compute_jump_table_size with + elf_x86_compute_jump_table_size. + (elf_i386_size_dynamic_sections): Likewise. + * elf64-x86-64.c (elf_x86_64_compute_jump_table_size): Removed. + (elf_x86_64_allocate_dynrelocs): Replace + elf_x86_64_compute_jump_table_size with + elf_x86_compute_jump_table_size. + (elf_x86_64_size_dynamic_sections): Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize + got_entry_size. + * elfxx-x86.h (elf_x86_link_hash_table): Add got_entry_size. + (elf_x86_compute_jump_table_size): New. + +2017-09-02 H.J. Lu + + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize + sizeof_reloc. + (_bfd_x86_elf_adjust_dynamic_symbol): Use sizeof_reloc. + * elfxx-x86.h (elf_x86_link_hash_table): Add sizeof_reloc. + +2017-09-02 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Check VxWorks + with htab->is_vxworks. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (elf_i386_finish_dynamic_sections): Likewise. + +2017-09-02 H.J. Lu + + * elf32-i386.c (GOT_TLS_IE, GOT_TLS_IE_POS, GOT_TLS_IE_NEG, + GOT_TLS_IE_BOTH, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P, + GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Moved to ... + * elfxx-x86.h (GOT_TLS_IE, GOT_TLS_IE_POS, GOT_TLS_IE_NEG, + GOT_TLS_IE_BOTH, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P, + GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Here. + * elf64-x86-64.c (GOT_TLS_IE, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P, + GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Removed. + +2017-09-01 H.J. Lu + + PR ld/22064 + * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Check + ELF_COMMON_DEF_P for common symbols. + +2017-09-02 Alan Modra + + * elf-eh-frame.c (offset_adjust): Avoid false positive gcc warning. + * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Likewise. + +2017-09-01 H.J. Lu + + * elf32-i386.c (elf_i386_gc_mark_hook): Removed. + (elf_backend_gc_mark_hook): Likewise. + * elf64-x86-64.c (elf_x86_64_gc_mark_hook): Likewise. + (elf_backend_gc_mark_hook): Likewise. + * elfxx-x86.c (_bfd_x86_elf_gc_mark_hook): New function. + * elfxx-x86.h (_bfd_x86_elf_gc_mark_hook): New. + (elf_backend_gc_mark_hook): Likewise. + +2017-09-01 H.J. Lu + + * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Removed. + (elf_backend_adjust_dynamic_symbol): Likewise. + * elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise. + (elf_backend_adjust_dynamic_symbol): Likewise. + * elfxx-x86.c (_bfd_x86_elf_adjust_dynamic_symbol): New function. + (_bfd_x86_elf_link_setup_gnu_properties): Copy is_vxworks. + * elfxx-x86.h (elf_x86_link_hash_table): Add is_vxworks. + (_bfd_x86_elf_adjust_dynamic_symbol): New. + (elf_backend_adjust_dynamic_symbol): Likewise. + +2017-09-01 H.J. Lu + + * elfxx-x86.h (elf_x86_plt_layout_table): Fix a typo in + comments. + +2017-09-01 H.J. Lu + + * elf32-i386.c (elf_i386_mkobject): Removed. + (bfd_elf32_mkobject): Likewise. + * elf64-x86-64.c (elf_x86_64_mkobject): Likewise. + (bfd_elf64_mkobject): Likewise. + (bfd_elf32_mkobject): Likewise. + * elfxx-x86.c (_bfd_x86_elf_mkobject): New function. + * elfxx-x86.h (_bfd_x86_elf_mkobject): New. + (bfd_elf64_mkobject): Likewise. + (bfd_elf32_mkobject): Likewise. + +2017-09-01 H.J. Lu + + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Updated. + Call _bfd_x86_elf_link_setup_gnu_properties. + * elf64-x86-64.c (elf_x86_lazy_plt_layout): Initialize + pic_plt0_entry and pic_plt_entry fields with the non-PIC PLT + entries. + (elf_x86_64_non_lazy_plt): Likewise. + (elf_x86_64_lazy_bnd_plt): Likewise. + (elf_x86_64_non_lazy_bnd_plt): Likewise. + (elf_x86_64_lazy_ibt_plt): Likewise. + (elf_x32_lazy_ibt_plt): Likewise. + (elf_x86_64_non_lazy_ibt_plt): Likewise. + (elf_x32_non_lazy_ibt_plt): Likewise. + (elf_x86_64_nacl_plt): Likewise. + (elf_x86_64_link_setup_gnu_properties): Updated. Call + _bfd_x86_elf_link_setup_gnu_properties. + * elfxx-x86.c: Include elf-vxworks.h". + (_bfd_x86_elf_link_setup_gnu_properties): New function. + * elfxx-x86.h (elf_x86_lazy_plt_layout): Remove "for i386 only" + comments for pic_plt0_entry and pic_plt_entry. + (elf_x86_non_lazy_plt_layout): Likewise. + (elf_x86_plt_layout_table): New. + (_bfd_x86_elf_link_setup_gnu_properties): Likewise. + +2017-09-01 H.J. Lu + + PR ld/22061 + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Create + .eh_frame section for the second PLT. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Correct + alignment of .eh_frame section for the second PLT. + +2017-09-01 Nick Clifton + + PR 22059 + * dwarf2.c (decode_line_info): Fix test for an overlong line info + structure. + +2017-09-01 Nick Clifton + + PR 22058 + * elf-attrs.c (_bfd_elf_parse_attributes): Ensure that the + attribute buffer is NUL terminated. + +2017-08-31 Nick Clifton + + PR 22047 + * dwarf2.c (read_section): If necessary add a terminating NUL byte + to dwarf string sections. + +2017-08-31 Alan Modra + + * po/SRC-POTFILES.in: Regenerate. + +2017-08-31 Alan Modra + + * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Don't exit early + for a section containing just a terminator. Allow multiple + terminators at end of section. + * elflink.c (bfd_elf_discard_info): Iterate over .eh_frame + sections when not adding alignment. Assert on terminator in + the middle of FDEs. + +2017-08-31 Alan Modra + + PR 21441 + PR 22048 + * elflink.c (bfd_elf_discard_info): Don't pad embedded zero + terminators. + +2017-08-30 H.J. Lu + + * configure.ac (bfd_backends): Add elf64.lo together with + elfxx-x86.lo for 64-bit BFD. + * configure: Regenerated. + +2017-08-31 James Bowman + + * elf32-ft32.c (ft32_elf_howto_table): Use complain_overflow_dont + for R_FT32_18. + +2017-08-31 Alan Modra + + PR binutils/22032 + * opncls.c (bfd_close_all_done): Don't call bfd_cache_close + before _close_and_cleanup. Call iovec->bclose after. + (bfd_close): Remove code common to, and call, bfd_close_all_done. + +2017-08-30 H.J. Lu + + * elf32-i386.c (elf_i386_plt_type): Removed. + (elf_i386_plt): Likewise. + (elf_i386_get_synthetic_symtab): Updated. Call + _bfd_x86_elf_get_synthetic_symtab. + * elf64-x86-64.c (elf_x86_64_plt_type): Removed. + (elf_x86_64_plt): Likewise. + (elf_x86_64_get_synthetic_symtab): Updated. Call + _bfd_x86_elf_get_synthetic_symtab. + * elfxx-x86.c (elf_i386_get_plt_got_vma): New function. + (elf_x86_64_get_plt_got_vma): Likewise. + (elf_i386_valid_plt_reloc_p): Likewise. + (elf_x86_64_valid_plt_reloc_p): Likewise. + (_bfd_x86_elf_get_synthetic_symtab): Likewise. + * elfxx-x86.h (elf_x86_plt_type): New. + (elf_x86_plt): Likewise. + (_bfd_x86_elf_get_synthetic_symtab): Likewise. + +2017-08-30 H.J. Lu + + * elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Check + target_id instead of elf_machine_code. + +2017-08-30 H.J. Lu + + * elf32-i386.c (ELF_DYNAMIC_INTERPRETER): Removed. + (elf_i386_lazy_plt_layout): Likewise. + (elf_i386_non_lazy_plt_layout): Likewise. + (elf_i386_plt_layout): Likewise. + (elf_i386_link_hash_table): Likewise. + (elf_i386_next_tls_desc_index): Likewise. + (elf_i386_srelplt2): Likewise. + (elf_i386_plt): Likewise. + (elf_i386_lazy_plt): Likewise. + (elf_i386_non_lazy_plt): Likewise. + (elf_i386_link_hash_table_create): Likewise. + (bfd_elf32_bfd_link_hash_table_create): Likewise. + (elf_i386_lazy_plt): Updated. + (elf_i386_non_lazy_plt): Likewise. + (elf_i386_lazy_ibt_plt): Likewise. + (elf_i386_non_lazy_ibt_plt): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (elf_i386_finish_dynamic_sections): Likewise. + (elf_i386_get_synthetic_symtab): Likewise. + (elf_i386_link_setup_gnu_properties): Likewise. + (elf_i386_nacl_plt): Likewise. + * elf64-x86-64.c (ABI_64_P): Removed. + (ELF64_DYNAMIC_INTERPRETER): Likewise. + (ELF32_DYNAMIC_INTERPRETER): Likewise. + (elf_x86_64_lazy_plt_layout): Likewise. + (elf_x86_64_non_lazy_plt_layout): Likewise. + (elf_x86_64_plt_layout): Likewise. + (elf_x86_64_link_hash_table): Likewise. + (elf_x86_64_plt): Likewise. + (elf_x86_64_lazy_plt): Likewise. + (elf_x86_64_non_lazy_plt): Likewise. + (elf_x86_64_link_hash_table_create): Likewise. + (bfd_elf64_bfd_link_hash_table_create): Likewise. + (bfd_elf32_bfd_link_hash_table_create): Likewise. + (elf_x86_64_lazy_plt): Updated. + (elf_x86_64_non_lazy_plt): Likewise. + (elf_x86_64_lazy_bnd_plt): Likewise. + (elf_x86_64_non_lazy_bnd_plt): Likewise. + (elf_x86_64_lazy_ibt_plt): Likewise. + (elf_x32_lazy_ibt_plt): Likewise. + (elf_x86_64_non_lazy_ibt_plt): Likewise. + (elf_x32_non_lazy_ibt_plt): Likewise. + (elf_x86_64_allocate_dynrelocs): Likewise. + (elf_x86_64_size_dynamic_sections): Likewise. + (elf_x86_64_relocate_section): Likewise. + (elf_x86_64_finish_dynamic_symbol): Likewise. + (elf_x86_64_finish_dynamic_sections): Likewise. + (elf_x86_64_get_synthetic_symtab): Likewise. + (elf_x86_64_link_setup_gnu_properties): Likewise. + (elf_x86_64_nacl_plt): Likewise. + * elfxx-x86.c: Include "objalloc.h", "elf/i386.h" and + "elf/x86-64.h". + (ELF32_DYNAMIC_INTERPRETER): New. + (ELF64_DYNAMIC_INTERPRETER): Likewise. + (ELFX32_DYNAMIC_INTERPRETER): Likewise. + (_bfd_x86_elf_link_hash_table_create): Likewise. + (_bfd_x86_elf_link_hash_table_free): Renamed to ... + (elf_x86_link_hash_table_free): This. Make it static. + * elfxx-x86.h: Don't include "objalloc.h". + (ABI_64_P): New. + (elf_x86_lazy_plt_layout): Likewise. + (elf_x86_non_lazy_plt_layout): Likewise. + (elf_x86_plt_layout): Likewise. + (_bfd_x86_elf_link_hash_table_create): Likewise. + (bfd_elf64_bfd_link_hash_table_create): Likewise. + (bfd_elf32_bfd_link_hash_table_create): Likewise. + (elf_x86_link_hash_table): Add plt, lazy_plt, non_lazy_plt, + srelplt2 and next_tls_desc_index. + (_bfd_x86_elf_link_hash_table_free): Removed. + +2017-08-30 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_perform_relocation): Correct microMIPS + branch offset interpretation. + +2017-08-30 H.J. Lu + + PR binutils/22032 + * opncls.c (bfd_close_all_done): Call _close_and_cleanup. + +2017-08-30 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_next_tls_desc_index): Removed. + (elf_x86_64_srelplt2): Likewise. + +2017-08-30 Alan Modra + + * elf64-ppc.c (struct ppc_link_hash_table): Add do_tls_opt. + (ppc64_elf_tls_optimize): Set it. + (ppc64_elf_relocate_section): Nop addis on TPREL16_HA, and convert + insn on TPREL16_LO and TPREL16_LO_DS relocs to use r13 when + addis would add zero. + * elf32-ppc.c (struct ppc_elf_link_hash_table): Add do_tls_opt. + (ppc_elf_tls_optimize): Set it. + (ppc_elf_relocate_section): Nop addis on TPREL16_HA, and convert + insn on TPREL16_LO relocs to use r2 when addis would add zero. + +2017-08-30 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): When optimizing + __tls_get_addr call sequences to LE, don't move the addi down + to the nop. Replace the bl with addi and leave the nop alone. + +2017-08-29 H.J. Lu + + * elf32-i386.c (elf_i386_pie_finish_undefweak_symbol): + Re-indent. + * elf64-x86-64.c (elf_x86_64_finish_local_dynamic_symbol): + Likewise. + (elf_x86_64_pie_finish_undefweak_symbol): Likewise. + +2017-08-29 H.J. Lu + + * Makefile.am (BFD32_BACKENDS): Add elfxx-x86.lo. + (BFD64_BACKENDS): Likewise. + (BFD32_BACKENDS_CFILES): Add elfxx-x86.c. + (BFD64_BACKENDS_CFILES): Likewise. + * Makefile.in: Regenerated. + * configure.ac (bfd_backends): Add elfxx-x86.lo together with + elf32-i386.lo and elf64-x86-64.lo. + * configure: Regenerated. + * elf32-i386.c: Include "elfxx-x86.h" instead of "sysdep.h", + "bfd.h", "bfdlink.h", "libbfd.h", "elf-bfd.h", "bfd_stdint.h", + "objalloc.h" and "hashtab.h". + (ELIMINATE_COPY_RELOCS): Removed. + (UNDEFINED_WEAK_RESOLVED_TO_ZERO):Likewise. + (SYMBOL_NO_COPYRELOC): Likewise. + (elf_i386_link_hash_entry): Likewise. + (GOT_UNKNOWN): Likewise. + (GOT_NORMAL): Likewise. + (GOT_TLS_GD): Likewise. + (elf_i386_hash_entry): Likewise. + (elf_i386_obj_tdata): Likewise. + (elf_i386_tdata): Likewise. + (elf_i386_local_got_tls_type): Likewise. + (elf_i386_local_tlsdesc_gotent): Likewise. + (elf_i386_hash_table): Likewise. + (elf_i386_link_hash_newfunc): Likewise. + (elf_i386_local_htab_hash): Likewise. + (elf_i386_local_htab_eq): Likewise. + (elf_i386_get_local_sym_hash): Likewise. + (elf_i386_link_hash_table_free): Likewise. + (elf_i386_copy_indirect_symbol): Likewise. + (elf_i386_fixup_symbol): Likewise. + (elf_i386_readonly_dynrelocs): Likewise. + (elf_i386_always_size_sections): Likewise. + (elf_i386_set_tls_module_base): Likewise. + (elf_i386_dtpoff_base): Likewise. + (compare_relocs): Likewise. + (elf_i386_hash_symbol): Likewise. + (elf_i386_parse_gnu_properties): Likewise. + (elf_i386_merge_gnu_properties): Likewise. + (elf_i386_link_check_relocs): Likewise. + (elf_i386_merge_symbol_attribute): Likewise. + (bfd_elf32_bfd_link_check_relocs): Likewise. + (elf_backend_copy_indirect_symbol): Likewise. + (elf_backend_always_size_sections): Likewise. + (elf_backend_omit_section_dynsym): Likewise. + (elf_backend_hash_symbol): Likewise. + (elf_backend_fixup_symbol): Likewise. + (elf_backend_parse_gnu_properties): Likewise. + (elf_backend_merge_gnu_properties): Likewise. + (elf_backend_merge_symbol_attribute): Likewise. + (elf_i386_mkobject): Updated. + (elf_i386_link_hash_table_create): Likewise. + (elf_i386_check_tls_transition): Likewise. + (elf_i386_tls_transition): Likewise. + (elf_i386_convert_load_reloc): Likewise. + (elf_i386_check_relocs): Likewise. + (elf_i386_adjust_dynamic_symbol): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_convert_load): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol ): Likewise. + (elf_i386_finish_dynamic_sections): Likewise. + (elf_i386_output_arch_local_syms): Likewise. + (elf_i386_get_synthetic_symtab): Likewise. + (elf_i386_link_setup_gnu_properties): Likewise. + (elf_i386_link_hash_table): Use elf_x86_link_hash_table, instead + of elf_link_hash_table, as base. + (elf_i386_next_tls_desc_index): New. + (elf_i386_srelplt2): Likewise. + (elf_i386_plt): Likewise. + (elf_i386_lazy_plt): Likewise. + (elf_i386_non_lazy_plt): Likewise. + * elf32-x86-64.c: Include "elfxx-x86.h" instead of "sysdep.h", + "bfd.h", "bfdlink.h", "libbfd.h", "elf-bfd.h", "bfd_stdint.h", + "objalloc.h" and "hashtab.h". + (ELIMINATE_COPY_RELOCS): Removed. + (UNDEFINED_WEAK_RESOLVED_TO_ZERO):Likewise. + (SYMBOL_NO_COPYRELOC): Likewise. + (elf_x86_64_link_hash_entry): Likewise. + (GOT_UNKNOWN): Likewise. + (GOT_NORMAL): Likewise. + (GOT_TLS_GD): Likewise. + (elf_x86_64_hash_entry): Likewise. + (elf_x86_64_obj_tdata): Likewise. + (elf_x86_64_tdata): Likewise. + (elf_x86_64_local_got_tls_type): Likewise. + (elf_x86_64_local_tlsdesc_gotent): Likewise. + (elf_x86_64_hash_table): Likewise. + (elf_x86_64_link_hash_newfunc): Likewise. + (elf_x86_64_local_htab_hash): Likewise. + (elf_x86_64_local_htab_eq): Likewise. + (elf_x86_64_get_local_sym_hash): Likewise. + (elf_x86_64_link_hash_table_free): Likewise. + (elf_x86_64_copy_indirect_symbol): Likewise. + (elf_x86_64_fixup_symbol): Likewise. + (elf_x86_64_readonly_dynrelocs): Likewise. + (elf_x86_64_always_size_sections): Likewise. + (elf_x86_64_set_tls_module_base): Likewise. + (elf_x86_64_dtpoff_base): Likewise. + (compare_relocs): Likewise. + (elf_x86_64_merge_symbol_attribute): Likewise. + (elf_x86_64_hash_symbol): Likewise. + (elf_x86_64_parse_gnu_properties): Likewise. + (elf_x86_64_merge_gnu_properties): Likewise. + (elf_x86_64_link_check_relocs): Likewise. + (elf_backend_copy_indirect_symbol): Likewise. + (elf_backend_always_size_sections): Likewise. + (bfd_elf64_bfd_link_check_relocs): Likewise. + (elf_backend_merge_symbol_attribute): Likewise. + (elf_backend_hash_symbol): Likewise. + (elf_backend_omit_section_dynsym): Likewise. + (elf_backend_fixup_symbol): Likewise. + (elf_backend_parse_gnu_properties): Likewise. + (elf_backend_merge_gnu_properties): Likewise. + (bfd_elf32_bfd_link_check_relocs): Likewise. + (elf_x86_64_mkobject): Updated. + (elf_x86_64_link_hash_table_create): Likewise. + (elf_x86_64_check_tls_transition): Likewise. + (elf_x86_64_tls_transition): Likewise. + (elf_x86_64_convert_load_reloc): Likewise. + (elf_x86_64_check_relocs): Likewise. + (elf_x86_64_adjust_dynamic_symbol): Likewise. + (elf_x86_64_allocate_dynrelocs): Likewise. + (elf_x86_64_convert_load): Likewise. + (elf_x86_64_size_dynamic_sections): Likewise. + (elf_x86_64_relocate_section): Likewise. + (elf_x86_64_finish_dynamic_symbol ): Likewise. + (elf_x86_64_finish_dynamic_sections): Likewise. + (elf_x86_64_output_arch_local_syms): Likewise. + (elf_x86_64_get_synthetic_symtab): Likewise. + (elf_x86_64_link_setup_gnu_properties): Likewise. + (elf_x86_64_link_hash_table): Use elf_x86_link_hash_table, + instead of elf_link_hash_table, as base. + (elf_x86_64_next_tls_desc_index): New. + (elf_x86_64_srelplt2): Likewise. + (elf_x86_64_plt): Likewise. + (elf_x86_64_lazy_plt): Likewise. + (elf_x86_64_non_lazy_plt): Likewise. + * elfxx-x86.c: New file. + * elfxx-x86.h: Likewise. + +2017-08-29 H.J. Lu + + * elf32-i386.c (elf_i386_get_synthetic_symtab): Simplify bad + return. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. + +2017-08-29 H.J. Lu + + * elf32-i386.c (elf_i386_get_synthetic_symtab): Check valid PLT + sections before checking dynamic relocations and free invalid + PLT section contents. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. + +2017-08-28 H.J. Lu + + * elf-bfd.h (_bfd_elf_ifunc_get_synthetic_symtab): Removed. + * elf-ifunc.c (_bfd_elf_ifunc_get_synthetic_symtab): Likewise. + 2017-08-28 H.J. Lu PR binutils/22018