X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=08dfa79e46169351030221b6cd39b81fe389417a;hb=9866ffe25a0fe73f5153f2720650baf0dd9cc828;hp=9f5c9a11f05d097284cdb41012a2cfdd2c5aa6f2;hpb=0d702cfe5d9195f2ba8d110120374a8da6d20c73;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9f5c9a11f0..08dfa79e46 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,1003 @@ +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 + * elf32-i386.c (elf_i386_get_synthetic_symtab): Check for valid + PLT section size. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. + +2017-08-27 H.J. Lu + + * elf32-i386.c (elf_i386_link_hash_newfunc): Initialize + def_protected. + * elf64-x86-64.c (elf_x86_64_link_hash_newfunc): Likewise. + +2017-08-26 H.J. Lu + + PR ld/21997 + * elf-bfd.h (elf_obj_tdata): Use ENUM_BITFIELD on object_id, + dyn_lib_class and has_gnu_symbols. Change bad_symtab to bitfield. + Add a has_no_copy_on_protected bitfield. + (elf_has_no_copy_on_protected): New. + * elf-properties.c (_bfd_elf_parse_gnu_properties): Set + elf_has_no_copy_on_protected for GNU_PROPERTY_NO_COPY_ON_PROTECTED. + (elf_merge_gnu_property_list): Likewise. + (_bfd_elf_link_setup_gnu_properties): Set extern_protected_data + to FALSE for elf_has_no_copy_on_protected. + * elf32-i386.c (SYMBOL_NO_COPYRELOC): New. + (elf_i386_link_hash_entry): Add def_protected. + (elf_i386_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC + when checking info->nocopyreloc. + (elf_i386_link_setup_gnu_properties): Don't set + extern_protected_data here. + (elf_i386_merge_symbol_attribute): New function. + (elf_backend_merge_symbol_attribute): New. + * elf64-x86-64.c (SYMBOL_NO_COPYRELOC): New. + (elf_x86_64_link_hash_entry): Add def_protected. + (elf_x86_64_need_pic): Report protected symbol for def_protected. + (elf_x86_64_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC + when checking info->nocopyreloc. + (elf_x86_64_relocate_section): Also check for R_X86_64_PC32 + relocation run-time overflow and unresolvable R_X86_64_32S + relocation against protected data symbol defined in shared object + with GNU_PROPERTY_NO_COPY_ON_PROTECTED. + (elf_x86_64_link_setup_gnu_properties): Don't set + extern_protected_data here. + (elf_x86_64_merge_symbol_attribute): New function. + (elf_backend_merge_symbol_attribute): New. + +2017-08-26 Alan Modra + + * elf32-ppc.c (must_be_dyn_reloc): Use bfd_link_dll. Comment. + (ppc_elf_check_relocs): Only set DF_STATIC_TLS in shared libs. + (ppc_elf_relocate_section): Comment fix. + * elf64-ppc.c (must_be_dyn_reloc): Use bfd_link_dll. Comment. + (ppc64_elf_check_relocs): Only set DF_STATIC_TLS in shared libs. + Support dynamic relocs for TPREL16 when non-pic too. + (dec_dynrel_count): Adjust TPREL16 handling as per check_relocs. + (ppc64_elf_relocate_section): Support dynamic relocs for TPREL16 + when non-pic too. + +2017-08-25 H.J. Lu + + * elf32-i386.c (elf_i386_link_hash_entry): Remove redundant + "symbol" in comments. + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Likewise. + +2017-08-24 H.J. Lu + + PR ld/22001 + * elf64-x86-64.c (elf_x86_64_relocate_section): Check for + R_X86_64_PC32 relocation run-time overflow and unresolvable + R_X86_64_32S relocation with -z nocopyreloc. + +2017-08-24 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Revert the last change. + Undefined symbols may not have a type. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2017-08-23 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_need_pic): Add an argument for + bfd_link_info. Report shared, PIE or PDE object based on + bfd_link_info. + (elf_x86_64_check_relocs): Update elf_x86_64_need_pic call. + (elf_x86_64_relocate_section): Likewise. + +2017-08-23 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Increment PLT count only + for function symbols. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2017-08-23 H.J. Lu + + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Set + extern_protected_data to FALSE if GNU_PROPERTY_NO_COPY_ON_PROTECTED + is set on any input relocatable file. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Likewise. + +2017-08-23 Alan Modra + + PR 21988 + * elf64-ppc.c (ensure_undef_dynamic): Rename from + ensure_undefweak_dynamic. Handle undefined too. + * elf32-ppc.c (ensure_undef_dynamic): Likewise. + * elf32-hppa.c (ensure_undef_dynamic): Likewise. + (allocate_dynrelocs): Discard undefined non-default visibility + relocs first. Make undefined syms dynamic. Tidy goto. + +2017-08-21 Alan Modra + H.J. Lu + + PR ld/21964 + * elf-bfd.h (SYMBOLIC_BIND): Return TRUE for __start/__stop symbols. + * elflink.c (bfd_elf_define_start_stop): Rewrite. + +2017-08-21 Hans-Peter Nilsson + + PR ld/20125 + * elf64-mmix.c (mmix_elf_relax_section): Correct handling of + undefined weak symbols. + +2017-08-18 Nick Clifton + + PR binutils/21962 + * tekhex.c (getsym): Fix check for source pointer walking off the + end of the input buffer. + +2017-08-17 Szabolcs Nagy + + PR ld/18808 + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Skip IFUNC + relocations in debug sections, change abort to _bfd_error_handler. + +2017-08-14 Nick Clifton + + PR 21957 + * elf.c (setup_group): Check for an empty or very small group + section. + * po/bfd.pot: Regenerate. + +2017-08-14 Alan Modra + + PR 21441 + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't add + alignment padding here. + * elflink.c (bfd_elf_discard_info): Add .eh_frame padding here + in a reverse pass over sections. + +2017-08-11 H.J. Lu + + PR binutils/21943 + * elf32-i386.c (elf_i386_get_synthetic_symtab): Allocate space + for @plt suffixes first. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. + +2017-08-08 Nick Clifton + + PR 21916 + * elf-attrs.c (_bfd_elf_parse_attributes): Complain about very + small section lengths. + * elf.c (_bfd_elf_setup_sections): Skip empty entries in the group + table. + (elfcore_grok_freebsd_prstatus): Add checks to make sure that + there is enough data present in the note. + +2017-08-08 Alan Modra + + PR 21017 + * elf32-microblaze.c (microblaze_elf_check_relocs): Don't bump + got.refcount for GOTOFF relocs, just create .got section. + +2017-08-07 H.J. Lu + + * elflink.c (elf_link_add_object_symbols): Move common symbol + check after bed->common_definition. + +2017-08-07 Alan Modra + + PR 21910 + * elflink.c (bfd_elf_final_link): Don't segfault when sections + needed to define various dynamic tags have been discarded. + +2017-08-07 Nick Clifton + + PR 21884 + * elf32-i386.c (elf_i386_link_setup_gnu_properties): If the dynobj + has not been set then use the bfd returned by + _bfd_elf_link_setup_gnu_properties. If that is null then search + through all the input bfds selecting the first normal, ELF format + one. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Likewise. + +2017-08-06 H.J. Lu + + * elf32-i386.c (elf_i386_link_hash_entry): Change tls_get_addr + to 1 bit. + (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 0. + (elf_i386_check_tls_transition): Check tls_get_addr directly. + (elf_i386_convert_load_reloc): Update tls_get_addr check. + (elf_i386_link_check_relocs): New function. + (bfd_elf32_bfd_link_check_relocs): New. + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Change tls_get_addr + to 1 bit. + (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 0. + (elf_x86_64_check_tls_transition): Check tls_get_addr directly. + (elf_x86_64_convert_load_reloc): Update tls_get_addr check. + (elf_x86_64_link_check_relocs): New function. + (bfd_elf64_bfd_link_check_relocs): New. + (bfd_elf32_bfd_link_check_relocs): Likewise. + +2017-08-06 H.J. Lu + + PR ld/21903: + * elflink.c (elf_link_add_object_symbols): Treat common symbol + as undefined for --no-define-common. + +2017-08-05 Alan Modra + + * elf32-hppa.c (elf32_hppa_set_gp): Don't require an + hppa_link_hash_table. + +2017-08-02 Max Filippov + + * xtensa-isa.c (xtensa_isa_init): Don't update lookup table + entries for sysregs with negative indices. + +2017-08-01 Andreas Krebbel + + * elf32-s390.c (elf_s390_finish_dynamic_sections): Skip if it + isn't the S/390 specific elf data. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + +2017-07-31 Kuan-Lin Chen + + * elfxx-riscv.c (riscv_elf_add_sub_reloc): New function. + * (howto_table) [R_RISCV_ADD8]: Use riscv_elf_add_sub_reloc. + [R_RISCV_ADD16]: Likewise. + [R_RISCV_ADD32]: Likewise. + [R_RISCV_ADD64]: Likewise. + [R_RISCV_SUB6]: Likewise. + [R_RISCV_SUB8]: Likewise. + [R_RISCV_SUB16]: Likewise. + [R_RISCV_SUB32]: Likewise. + [R_RISCV_SUB64]: Likewise. + +2017-07-31 Alan Modra + + * elf64-ppc.c (ppc64_elf_tls_setup): Warn on --plt-localentry + without ld.so checks. + +2017-07-29 Alan Modra + + PR 21847 + * elf64-ppc.c (struct ppc_link_hash_entry): Add non_zero_localentry. + (ppc64_elf_merge_symbol): Set non_zero_localentry. + (is_elfv2_localentry0): Test non_zero_localentry. + (ppc64_elf_tls_setup): Default to --no-plt-localentry. + +2017-07-28 Andreas Krebbel + + * elf32-s390.c (elf_s390_finish_dynamic_sections): Add NULL + pointer check for htab->elf.irelplt. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + +2017-07-27 Nick Clifton + + PR 21840 + * mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab + size is -1. + * nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion + with error return. + * section.c (bfd_make_section_with_flags): Fail if the name or bfd + are NULL. + * vms-alpha.c (bfd_make_section_with_flags): Correct computation + of end pointer. + (evax_bfd_print_emh): Check for invalid string lengths. + +2017-07-25 Nick Clifton + + * po/fr.po: Updated French translation. + +2017-07-25 Benjamin Green + + PR 21824 + * elf32-msp430.c (msp430_elf_relax_section): Allow conversion of + 16-bit absolute branches into 10-bit pc-relative branches on the + MSP430 as well as the MSP430X. + +2017-07-25 Alan Modra + + * elf64-ppc.c (struct map_stub): Add tls_get_addr_opt_bctrl. + (stub_eh_frame_size): New function. + (ppc_size_one_stub): Set group tls_get_addr_opt_bctrl. + (group_sections): Init group tls_get_addr_opt_bctrl. + (ppc64_elf_size_stubs): Update sizing and initialization of + .eh_frame. Iteration over stubs via group list. + (ppc64_elf_build_stubs): Iterate over stubs via group list. + (ppc64_elf_finish_dynamic_sections): Update finalization of + .eh_frame. + +2017-07-24 Nick Clifton + + PR 21813 + * mach-o.c (bfd_mach_o_canonicalize_relocs): Pass the base address + of the relocs to the canonicalize_one_reloc routine. + * mach-o.h (struct bfd_mach_o_backend_data): Update the prototype + for the _bfd_mach_o_canonicalize_one_reloc field. + * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add + res_base parameter. Use to check for corrupt pair relocs. + * mach-o-aarch64.c (bfd_mach_o_arm64_canonicalize_one_reloc): + Likewise. + * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): + Likewise. + * mach-o-x86-64.c (bfd_mach_o_x86_64_canonicalize_one_reloc): + Likewise. + + * vms-alpha.c (_bfd_vms_slurp_eihd): Make sure that there is + enough data in the record before attempting to parse it. + (_bfd_vms_slurp_eeom): Likewise. + + (_bfd_vms_slurp_egsd): Check for an invalid section index. + (image_set_ptr): Likewise. + (alpha_vms_slurp_relocs): Likewise. + + (alpha_vms_object_p): Check for a truncated record. + +2017-07-24 Nick Clifton + + PR 21803 + * reloc.c (_bfd_unrecognized_reloc): New function. Reports + an unrecognized reloc and sets the bfd_error value. + * libbfd.h: Regenerate. + * elf32-arm.c (elf32_arm_final_link_relocate): Use the new + function. + * elf32-i386.c (elf_i386_relocate_section): Likewise. + * elf32-tilepro.c (tilepro_elf_relocate_section): Likewise. + * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Likewise. + * elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise. + +2017-07-23 Alan Modra + + * elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to + restore of LR. + +2017-07-19 Szabolcs Nagy + + PR ld/18841 + * elfnn-aarch64.c (elfNN_aarch64_reloc_type_class): Return + reloc_class_ifunc for ifunc symbols. + +2017-07-19 Nick Clifton + + PR 21787 + * archive.c (bfd_generic_archive_p): If the bfd does not have the + correct magic bytes at the start, set the error to wrong format + and clear the format selector before returning NULL. + +2017-07-19 Nick Clifton + + PR 21786 + * coff-rs6000.c (_bfd_strntol): New function. + (_bfd_strntoll): New function. + (GET_VALUE_IN_FIELD): New macro. + (EQ_VALUE_IN_FIELD): new macro. + (_bfd_xcoff_slurp_armap): Use new macros. + (_bfd_xcoff_archive_p): Likewise. + (_bfd_xcoff_read_ar_hdr): Likewise. + (_bfd_xcoff_openr_next_archived_file): Likewise. + (_bfd_xcoff_stat_arch_elt): Likewise. + * coff64-rs6000.c (_bfd_strntol): New function. + (_bfd_strntoll): New function. + (GET_VALUE_IN_FIELD): New macro. + (xcoff64_slurp_armap): Use new macros. + +2017-07-19 Claudiu Zissulescu + John Eric Martin + + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf32-arc.c (JLI): Define. + * reloc.c: Add JLI relocations. + +2017-07-18 Nick Clifton + + PR 21775 + * coff-sh.c: Fix spelling typos. + * compress.c: Likewise. + * cpu-pdp11.c: Likewise. + * ecofflink.c: Likewise. + * elf-m10300.c: Likewise. + * elf.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-v850.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-x86-64.c: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfxx-mips.c: Likewise. + * som.c: Likewise. + * sunos.c: Likewise. + * vms-alpha.c: Likewise. + * xcofflink.c: Likewise. + +2017-07-18 Nick Clifton + + PR binutils/21781 + * coffcode.h (handle_COMDAT): Replace abort with an error message + and return. + +2017-07-17 H.J. Lu + + PR ld/21782 + * elf64-x86-64.c (elf_x86_64_relocate_section): Limit PIC check + to shared library. + +2017-07-17 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent. + +2017-07-16 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Don't optimize + __tls_index GOT entries when using __tls_get_addr_opt stub. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + +2017-07-12 Alan Modra + + * po/es.po: Update from translationproject.org/latest/bfd/. + * po/fi.po: Likewise. + * po/fr.po: Likewise. + * po/id.po: Likewise. + * po/ja.po: Likewise. + * po/ro.po: Likewise. + * po/ru.po: Likewise. + * po/sr.po: Likewise. + * po/sv.po: Likewise. + * po/tr.po: Likewise. + * po/uk.po: Likewise. + * po/vi.po: Likewise. + * po/zh_CN.po: Likewise. + * po/hr.po: New file from translationproject.org. + * configure.ac (ALL_LINGUAS): Add hr. Sort. + * configure: Regenerate. + +2017-07-12 Nick Clifton + + Fix compile time warnings using gcc 7.1.1. + * elf32-xtensa.c (elf_xtensa_get_plt_section): Increase length of + plt_name buffer. + (elf_xtensa_get_gotplt_section): Increase length of got_name + buffer. + * mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add a + default return of FALSE. + * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Add a + default return of FALSE. + +2017-07-12 Alan Modra + + * binary.c (binary_set_section_contents): Don't print filepos in + error message. + (coff_write_object_contents): Cast size_t for error message. + (coff_slurp_line_table): Don't use bfd_vma symndx. + (coff_slurp_reloc_table): Remove unneeded cast. + * dwarf2.c (read_section): Cast bfd_int64_t to long long for + error message. + (find_abstract_instance_name): Likewise. + * elf32-arm.c (arm_type_of_stub): Correct error arg order. + (bfd_elf32_arm_stm32l4xx_erratum_scan): Don't cast error arg. + (elf32_arm_check_relocs): Make r_symndx an int. + * elf32-cris.c (cris_elf_check_relocs): Delete extraneous %s in + format string. + * elf32-metag.c (elf_metag_relocate_section): Delete extra error + message arg. + * elf32-nds32.c (nds32_elf_ex9_build_hash_table): Rewrite bogus + error message. + * elf32-i386.c (elf_i386_check_relocs): Make r_symndx an int. + * elf32-s390.c (elf_s390_check_relocs): Likewise. + * elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise. + * elf32-tilepro.c (tilepro_elf_check_relocs): Likewise. + * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise. + * elf64-s390.c (elf_s390_check_relocs): Likewise. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Likewise. + * elfnn-riscv.c (riscv_elf_check_relocs): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. + * elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise. + * elf64-mmix.c (_bfd_mmix_after_linker_allocation): Cast size_t args + and use %lu for error message. + * elflink.c (elf_link_adjust_relocs): Delete extra error message arg. + * mmo.c (mmo_scan): Make stab_loc a file_ptr. Cast expression for + error message. + + * elf32-arm.c (elf32_arm_tls_relax): Correct format string and args + in error message. + (elf32_arm_final_link_relocate): Likewise. + * coff-arm.c (bfd_arm_process_before_allocation): Likewise. + * coffcode.h (styp_to_sec_flags): Likewise. + * cofflink.c (_bfd_coff_write_global_sym): Likewise. + * ecoff.c (_bfd_ecoff_slurp_symbol_table): Likewise. + * elf32-arc.c (arc_elf_merge_private_bfd_data): Likewise. + * elf32-bfin.c (bfinfdpic_check_relocs): Likewise. + (elf32_bfin_merge_private_bfd_data): Likewise. + * elf32-cris.c (cris_elf_relocate_section): Likewise. + * elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise. + * elf32-i370.c (i370_elf_merge_private_bfd_data): Likewise. + (i370_elf_relocate_section): Likewise. + * elf32-iq2000.c (iq2000_elf_merge_private_bfd_data): Likewise. + * elf32-m32c.c (m32c_elf_merge_private_bfd_data): Likewise. + * elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. + * elf32-mcore.c (mcore_elf_relocate_section): Likewise. + * elf32-mep.c (mep_elf_merge_private_bfd_data): Likewise. + * elf32-mt.c (mt_elf_merge_private_bfd_data): Likewise. + * elf64-sparc.c (elf64_sparc_merge_private_bfd_data): Likewise. + * elfxx-mips.c (mips_elf_merge_obj_e_flags): Likewise. + (_bfd_mips_elf_merge_private_bfd_data): Likewise. + * ieee.c (ieee_write_id, read_id): Likewise. + * mach-o.c (bfd_mach_o_write_contents): Likewise. + (bfd_mach_o_layout_commands, bfd_mach_o_read_section_32): Likewise. + (bfd_mach_o_read_section_64, bfd_mach_o_read_symtab_symbol): Likewise. + (bfd_mach_o_read_command, bfd_mach_o_header_p): Likewise. + * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Likewise. + * stabs.c (_bfd_link_section_stabs): Likewise. + + * coff-arm.c (coff_arm_relocate_section): Use L modifier in error + format. + * coff-mcore.c (coff_mcore_relocate_section): Likewise. + * coff-ppc.c (coff_ppc_relocate_section): Likewise. + * coff-rs6000.c (xcoff_reloc_type_toc): Likewise. + * coff-sh.c (sh_relax_section): Likewise. + (sh_relax_delete_bytes, sh_swap_insns): Likewise. + * coff-tic80.c (coff_tic80_relocate_section): Likewise. + * coffcode.h (coff_slurp_reloc_table): Likewise. + * coffgen.c (_bfd_coff_get_external_symbols): Likewise. + (_bfd_coff_read_string_table): Likewise. + * cofflink.c (_bfd_coff_generic_relocate_section): Likewise. + * compress.c (bfd_get_full_section_contents): Likewise. + * dwarf2.c (read_formatted_entries, decode_line_info): Likewise. + * elf-m10300.c (mn10300_elf_relocate_section): Likewise. + * elf.c (bfd_elf_string_from_elf_section): Likewise. + * elf32-arc.c (arc_special_overflow_checks): Likewise. + * elf32-arm.c (elf32_arm_tls_relax): Likewise. + (elf32_arm_final_link_relocate, elf32_arm_relocate_section): Likewise. + (elf32_arm_write_section): Likewise. + * elf32-bfin.c (bfin_relocate_section): Likewise. + (bfinfdpic_relocate_section): Likewise. + * elf32-hppa.c (hppa_build_one_stub): Likewise. + (final_link_relocate, elf32_hppa_relocate_section): Likewise. + * elf32-i386.c (elf_i386_tls_transition): Likewise. + (elf_i386_relocate_section): Likewise. + * elf32-ip2k.c (ip2k_final_link_relocate): Likewise. + * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise. + * elf32-m32r.c (m32r_elf_relocate_section): Likewise. + * elf32-m68k.c (elf_m68k_relocate_section): Likewise. + * elf32-metag.c (elf_metag_relocate_section): Likewise. + * elf32-nds32.c (unrecognized_reloc_msg): Likewise. + (nds32_elf_relax_longcall1, nds32_elf_relax_longcall2): Likewise. + (nds32_elf_relax_longcall3, nds32_elf_relax_longjump1): Likewise. + (nds32_elf_relax_longjump2, nds32_elf_relax_longjump3): Likewise. + (nds32_elf_relax_longcall4, nds32_elf_relax_longcall5): Likewise. + (nds32_elf_relax_longcall6, nds32_elf_relax_longjump4): Likewise. + (nds32_elf_relax_longjump5, nds32_elf_relax_longjump6): Likewise. + (nds32_elf_relax_longjump7, nds32_elf_relax_loadstore): Likewise. + (nds32_elf_relax_ptr, nds32_elf_ex9_build_hash_table): Likewise. + * elf32-nios2.c (nios2_elf32_relocate_section): Likewise. + * elf32-rx.c (UNSAFE_FOR_PID): Likewise. + * elf32-s390.c (invalid_tls_insn, elf_s390_relocate_section): Likewise. + * elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise. + * elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise. + * elf32-sh.c (sh_elf_relax_section): Likewise. + (sh_elf_relax_delete_bytes, sh_elf_swap_insns): Likewise. + (sh_elf_relocate_section): Likewise. + * elf32-sh64.c (shmedia_prepare_reloc): Likewise. + * elf32-spu.c (spu_elf_relocate_section): Likewise. + * elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise. + * elf32-tilepro.c (tilepro_elf_relocate_section): Likewise. + * elf32-v850.c (v850_elf_relax_section): Likewise. + * elf32-vax.c (elf_vax_check_relocs): Likewise. + (elf_vax_relocate_section): Likewise. + * elf32-xtensa.c (elf_xtensa_relocate_section): Likewise. + (extend_ebb_bounds_forward, extend_ebb_bounds_backward): Likewise. + (compute_text_actions, compute_ebb_proposed_actions): Likewise. + (do_fix_for_relocatable_link): Likewise. + * elf64-alpha.c (elf64_alpha_relax_got_load): Likewise. + (elf64_alpha_relax_with_lituse): Likewise. + * elf64-hppa.c (elf64_hppa_finish_dynamic_symbol): Likewise. + (elf_hppa_final_link_relocate): Likewise. + * elf64-ia64-vms.c (elf64_ia64_relax_section): Likewise. + (elf64_ia64_choose_gp, elf64_ia64_relocate_section): Likewise. + (elf64_vms_link_add_object_symbols): Likewise. + * elf64-mmix.c (mmix_elf_perform_relocation): Likewise. + (mmix_final_link_relocate): Likewise. + * elf64-s390.c (invalid_tls_insn): Likewise. + (elf_s390_relocate_section): Likewise. + * elf64-sh64.c (sh_elf64_relocate_section): Likewise. + * elf64-x86-64.c (elf_x86_64_tls_transition): Likewise. + (elf_x86_64_relocate_section): Likewise. + * elfcode.h (elf_slurp_symbol_table): Likewise. + * elfcore.h (elf_core_file_p): Likewise. + * elflink.c (elf_link_read_relocs_from_section): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Likewise. + (elfNN_aarch64_relocate_section): Likewise. + * elfnn-ia64.c (elfNN_ia64_relax_section): Likewise. + (elfNN_ia64_choose_gp, elfNN_ia64_relocate_section): Likewise. + * elfnn-riscv.c (riscv_elf_relocate_section): Likewise. + * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. + (_bfd_mips_elf_relocate_section): Likewise. + (_bfd_mips_elf_finish_dynamic_symbol, mips_finish_exec_plt): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise. + * elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise. + * ieee.c (ieee_slurp_external_symbols): Likewise. + * ihex.c (ihex_write_object_content): Likewise. + * mach-o.c (bfd_mach_o_build_exec_seg_command): Likewise. + * merge.c (_bfd_merged_section_offset): Likewise. + * mmo.c (mmo_write_loc_chunk): Likewise. + (mmo_write_object_contents): Likewise. + * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Likewise. + * stabs.c (_bfd_link_section_stabs): Likewise. + * xcofflink.c (xcoff_link_add_symbols, xcoff_find_tc0): Likewise. + +2017-07-11 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Fix typo. + +2017-07-11 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Emit "unexpected + instruction" error using _bfd_error_handler, not einfo. + +2017-07-10 Nick Clifton + + * coffcode.h (coff_slurp_symbol_table): Do not include an entry + for C_AIX_WEAKEXT if it has the same value as C_WEAKEXT. + +2017-07-07 John Baldwin + + * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PTLWPINFO. + +2017-07-07 Alan Modra + + * coffcode.h (coff_slurp_symbol_table): Handle C_AIX_WEAKEXT. + +2017-07-07 Alan Modra + + * bfd.c (_doprnt): Replace "L" with "ll" when printing bfd_vma + as long long. Move code replacing "ll" with "I64", and simplify. + +2017-07-06 H.J. Lu + + * bfd.c (_doprnt): Convert 'L' to 'l' when setting wide_width + to 1. + +2017-07-05 H.J. Lu + + * dwarf2.c (line_info_add_include_dir_stub): Replace time with + xtime. + (line_info_add_file_name): Likewise. + (decode_line_info): Likewise. + 2017-07-04 Tristan Gingold * version.m4: Bump version to 2.29.51