X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2FChangeLog;h=3c8fcf3ab747a896ce147d9c8de9378ccb774443;hb=691d2e9af211ff8dd5fa8c96cb961b73a78394d7;hp=959cf066530d54d57eaba567929964cca8bb1dd8;hpb=280958942b74f3164708700f195188c4d3446f58;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 959cf06653..3c8fcf3ab7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4848 +1,159 @@ -2017-10-19 H.J. Lu +2018-01-18 Alan Modra - PR ld/22263 - * elfxx-tilegx.c (tilegx_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (tilegx_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (tilegx_elf_relocate_section): Likewise. + * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink. + * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align. + (ppc64_elf_build_stubs): Likewise. -2017-10-19 H.J. Lu +2018-01-17 Nick Clifton - PR ld/22263 - * elf32-tilepro.c (tilepro_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (tilepro_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (tilepro_elf_relocate_section): Likewise. + * po/ru.po: Updated Russian translation. + * po/uk/po: Updated Ukranian translation. -2017-10-19 H.J. Lu +2018-01-17 Alan Modra - PR ld/22263 - * elfxx-sparc.c (sparc_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (_bfd_sparc_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (_bfd_sparc_elf_relocate_section): Likewise. + * elf64-ppc.c (ppc64_elf_build_stubs): Silence gcc warning. -2017-10-18 H.J. Lu +2018-01-17 Alan Modra - * elf32-tilepro.c (tilepro_elf_gc_mark_hook): Call - _bfd_generic_link_add_one_symbol to mark __tls_get_addr. - * elfxx-tilegx.c (tilegx_elf_gc_mark_hook): Likewise. - -2017-10-17 H.J. Lu - - * elf32-microblaze.c (microblaze_elf_check_relocs): Check for - indirect and warning symbols. - -2017-10-17 Alan Modra - - PR 22307 - * elf-properties.c (_bfd_elf_parse_gnu_properties): Compare datasz - against size left rather than comparing pointers. Reorganise loop. - -2017-10-17 Alan Modra - - PR 22306 - * aoutx.h (aout_get_external_symbols): Handle stringsize of zero, - and error for any other size that doesn't cover the header word. - -2017-10-16 H.J. Lu - - * elf-bfd.h (elf_backend_data): Remove gc_sweep_hook. - * elf32-arm.c (elf32_arm_gc_sweep_hook): Removed. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-bfin.c (bfin_gc_sweep_hook): Likewise. - (bfinfdpic_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-cr16.c (elf32_cr16_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-lm32.c (lm32_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-m68k.c (elf_m68k_got_entry): Remove elf_m68k_gc_sweep_hook - from comments. - (elf_m68k_remove_got_entry_type): Removed. - (elf_m68k_find_got_entry_ptr): Likewise. - (elf_m68k_remove_got_entry): Likewise. - (elf_m68k_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-mcore.c (mcore_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-metag.c (elf_metag_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-microblaze.c (elf_backend_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-mips.c (elf_backend_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-nds32.c (nds32_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-nios2.c (nios2_elf32_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-or1k.c (or1k_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-ppc.c (ppc_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-sparc.c (elf_backend_gc_sweep_hook): Likewise. - * elf32-tic6x.c (elf32_tic6x_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-tilegx.c (elf_backend_gc_sweep_hook): Likewise. - * elf32-tilepro.c (tilepro_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-alpha.c (elf64_alpha_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-mips.c (elf_backend_gc_sweep_hook): Likewise. - * elf64-mmix.c (mmix_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-ppc.c (elf_backend_gc_sweep_hook): Likewise. - (ppc64_elf_gc_sweep_hook): Likewise. - * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-sparc.c (elf_backend_gc_sweep_hook): Likewise. - * elf64-tilegx.c (elf_backend_gc_sweep_hook): Likewise. - * elflink.c (elf_link_add_object_symbols): Don't call - _bfd_elf_link_check_relocs here. - (gc_sweep_hook_fn): Removed. - (elf_gc_sweep): Remove gc_sweep_hook. - * elfnn-aarch64.c (elfNN_aarch64_gc_sweep_hook): Removed. - (elf_backend_gc_sweep_hook): Likewise. - * elfnn-riscv.c (riscv_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise. - * elfxx-mips.h (_bfd_mips_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise. - * elfxx-sparc.h (_bfd_sparc_elf_gc_sweep_hook): Likewise. - * elfxx-target.h (elf_backend_gc_sweep_hook): Likewise. - (elfNN_bed): Remove elf_backend_gc_sweep_hook. - * elfxx-tilegx.c (tilegx_elf_gc_sweep_hook): Removed. - * elfxx-tilegx.h (tilegx_elf_gc_sweep_hook): Likewise. - -2017-10-14 H.J. Lu - - * elf32-i386.c (elf_i386_backend_data): Removed. - (get_elf_i386_backend_data): Likewise. - (elf_i386_arch_bed): Replace elf_i386_backend_data with - elf_x86_backend_data. - (elf_i386_get_synthetic_symtab): Likewise. - (elf_i386_nacl_arch_bed): Likewise. - (elf_i386_vxworks_arch_bed): Likewise. - (elf_i386_relocate_section): Check target_os instead of - is_vxworks. - (elf_i386_finish_dynamic_symbol): Likewise. - (elf_i386_finish_dynamic_sections): Use htab->plt0_pad_byte. - Check target_os instead of is_vxworks. - (elf_i386_link_setup_gnu_properties): Remove normal_target and - is_vxworks. Initialize plt0_pad_byte. - * elf64-x86-64.c (elf_x86_64_backend_data); Removed. - (get_elf_x86_64_arch_data): Likewise. - (get_elf_x86_64_backend_data): Likewise. - (elf_x86_64_arch_bed): Replace elf_x86_64_backend_data with - elf_x86_backend_data. - (elf_x86_64_get_synthetic_symtab): Likewise. - (elf_x86_64_nacl_arch_bed): Likewise. - (elf_x86_64_link_setup_gnu_properties): Remove is_vxworks and - normal_target. Initialize plt0_pad_byte. - * elfxx-x86.c (elf_x86_allocate_dynrelocs): Check target_os - instead of is_vxworks. - (_bfd_x86_elf_size_dynamic_sections): Likewise. - (_bfd_x86_elf_finish_dynamic_sections): Likewise. - (_bfd_x86_elf_adjust_dynamic_symbol): Likewise. - (_bfd_x86_elf_link_hash_table_create): Initialize target_os. - (_bfd_x86_elf_link_setup_gnu_properties): Remove is_vxworks. - Update normal_target. Set up plt0_pad_byte. Check target_os - instead of is_vxworks. - * elfxx-x86.h (elf_x86_target_os): New. - (elf_x86_backend_data): Likewise. - (get_elf_x86_backend_data): Likewise. - (elf_x86_link_hash_table): Remove is_vxworks. Add plt0_pad_byte - and target_os. - (elf_x86_init_table): Remove normal_target and is_vxworks. Add - plt0_pad_byte. - -2017-10-14 H.J. Lu - - * elf32-i386.c (elf_i386_finish_dynamic_sections): Call - _bfd_x86_elf_finish_dynamic_sections. - * elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Likewise. - * elfxx-x86.c (_bfd_x86_elf_finish_dynamic_sections): New - function. - * elfxx-x86.h (_bfd_x86_elf_finish_dynamic_sections): New - prototype. - -2017-10-14 H.J. Lu - - PR ld/21384 - * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't - hide symbol which was forced to be dynamic. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-cris.c (cris_elf_relocate_section): Don't generate - dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (cris_elf_check_relocs): Don't allocate dynamic relocation - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-sh.c (allocate_dynrelocs): Discard dynamic relocations - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (sh_elf_relocate_section): Don't generate dynamic relocation if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-s390.c (allocate_dynrelocs): Discard dynamic - relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elf_s390_relocate_section): Don't generate dynamic relocation - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - * elf64-s390.c (allocate_dynrelocs): Discard dynamic - relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elf_s390_relocate_section): Don't generate dynamic relocation - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-nios2.c (nios2_elf32_relocate_section): Don't generate - dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_dynrelocs): Discard dynamic relocations if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-microblaze.c (microblaze_elf_relocate_section): Don't - generate dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is - true. - (allocate_dynrelocs): Discard dynamic relocations if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-m68k.c (elf_m68k_check_relocs): Don't allocate dynamic - relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elf_m68k_adjust_dynamic_symbol): Don't make symbol dynamic if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elf_m68k_relocate_section): Don't generate dynamic relocation - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-hppa.c (ensure_undef_dynamic): Don't make undefined - symbol dynamic if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_dynrelocs): Discard dynamic relocations if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elf32_hppa_relocate_section): Don't generate dynamic - relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elfnn-ia64.c (elfNN_ia64_check_relocs): Don't allocate - dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_fptr): Don't allocate function pointer if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_dynrel_entries): Don't allocate dynamic relocation - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (set_got_entry): Don't set GOT entry if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (set_pltoff_entry): Don't set PLTOFF entry if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (elfNN_ia64_relocate_section): Don't install dynamic relocation - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elfxx-mips.c (mips_elf_calculate_relocation): Don't generate - dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_dynrelocs): Don't allocate dynamic relocations if - UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-arm.c (elf32_arm_final_link_relocate): Don't generate - dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (allocate_dynrelocs_for_symbol): Discard dynamic relocations - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elf32-tilepro.c (allocate_dynrelocs): Discard dynamic - relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (tilepro_elf_relocate_section): Don't generate dynamic - relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - * elfxx-tilegx.c (allocate_dynrelocs): Discard dynamic - relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - (tilegx_elf_relocate_section): Don't generate dynamic - relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - PR ld/22269 - * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Don't - generate dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is - true. - (elfNN_aarch64_allocate_dynrelocs): Discard dynamic relocations - if UNDEFWEAK_NO_DYNAMIC_RELOC is true. - -2017-10-14 H.J. Lu - - * elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Moved to ... - * elf-bfd.h (UNDEFWEAK_NO_DYNAMIC_RELOC): Here. - * elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Removed. - -2017-10-12 James Bowman - - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - * elf32-ft32.c: Add HOWTO R_FT32_15. - * reloc.c: Add BFD_RELOC_FT32_15. - -2017-10-12 Nick Clifton - - * reloc.c (enum bfd_reloc_status): Start values at 2. - * bfd-in2.h: Regenerate. - * elfnn-aarch64.c (aarch64_relocate): Invert sense of function, so - that a TRUE return indicates success. Compare the result of - calling _bfd_aarch64_elf_put_addend against bfd_reloc_ok. - (build_one_stub): Change sense of tests against aarch64_relocate - return value. - (elfNN_aarch64_tls_relax): Return bfd_reloc_notsupported, rather - than FALSE, when an error is detected. - (elfNN_aarch64_final_link_relocate): Likewise. - -2017-10-12 H.J. Lu - - * elf32-i386.c (elf_backend_hide_symbol): New. - * elf64-x86-64.c (elf_backend_hide_symbol): Likewise. - * elfxx-x86.c (_bfd_x86_elf_hide_symbol): Likewise. - * elfxx-x86.h (_bfd_x86_elf_hide_symbol): Likewise. - -2017-10-12 Alan Modra - - * elflink.c (_bfd_elf_adjust_dynamic_symbol): Call - elf_backend_hide_symbol, not _bfd_elf_link_hash_hide_symbol. - (bfd_elf_define_start_stop): Likewise. - -2017-10-12 Alan Modra - - * elf32-nds32.c (nds32_elf_size_dynamic_sections): Set .interp - when executable rather than non-PIC. - * elf32-score.c (s3_bfd_score_elf_size_dynamic_sections): Likewise. - * elf32-score7.c (s7_bfd_score_elf_size_dynamic_sections): Likewise. - -2017-10-11 Maciej W. Rozycki - - * elf-bfd.h (elf_backend_data): Add `linux_prpsinfo64_ugid16' - member. - * elf-linux-core.h (elf_external_linux_prpsinfo64): Rename to... - (elf_external_linux_prpsinfo64_ugid32): ... this. - (swap_linux_prpsinfo32_out): Rename to... - (swap_linux_prpsinfo32_ugid32_out): ... this. - (elf_external_linux_prpsinfo64_ugid16): New structure. - (swap_linux_prpsinfo64_ugid16_out): New function. - * elfxx-target.h [!elf_backend_linux_prpsinfo64_ugid16] - (elf_backend_linux_prpsinfo64_ugid16): Define. - (elfNN_bed): Initialize `linux_prpsinfo64_ugid16' member. - * elf.c (elfcore_write_linux_prpsinfo64): Handle both variants - of the 64-bit Linux core PRPSINFO note. - * elf64-sh64.c (elf_backend_linux_prpsinfo64_ugid16): Define. - -2017-10-11 Maciej W. Rozycki - - * elf-bfd.h (elf_backend_data): Add `linux_prpsinfo32_ugid16' - member. - (elfcore_write_ppc_linux_prpsinfo32): Remove prototype. - * elf32-ppc.c (elfcore_write_ppc_linux_prpsinfo32): Remove. - (elf_external_ppc_linux_prpsinfo32) - (swap_ppc_linux_prpsinfo32_out): Move to... - * elf-linux-core.h (elf_external_linux_prpsinfo32_ugid32) - (swap_linux_prpsinfo32_ugid32_out): ... these. - (elf_external_linux_prpsinfo32): Rename to... - (elf_external_linux_prpsinfo32_ugid16): ... this. - (swap_linux_prpsinfo32_out): Rename to... - (swap_linux_prpsinfo32_ugid16_out): ... this. - * elfxx-target.h [!elf_backend_linux_prpsinfo32_ugid16] - (elf_backend_linux_prpsinfo32_ugid16): Define. - (elfNN_bed): Initialize `linux_prpsinfo32_ugid16' member. - * elf.c (elfcore_write_linux_prpsinfo32): Handle both variants - of the 32-bit Linux core PRPSINFO note. - * elf32-am33lin.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-arm.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-cris.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-frv.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-i386.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-m32r.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-m68k.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-s390.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-sh.c (elf_backend_linux_prpsinfo32_ugid16): Define. - * elf32-sparc.c (elf_backend_linux_prpsinfo32_ugid16): Define. - -2017-10-11 Maciej W. Rozycki - - * elf-linux-core.h (elf_external_linux_prpsinfo64): Move the - `gap' member ahead of `pr_flag'. - -2017-10-11 Pedro Alves - - * bfd.c (_doprnt): Rename to ... - (_bfd_doprnt): ... this. - (error_handler_internal): Adjust. - -2017-10-10 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Set GOT refcount to 1 - instead of incrementing it. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2017-10-10 Renlin Li - - PR ld/21402 - * elf32-arm.c (allocate_dynrelocs_for_symbol): Only make undefined weak - symbols into dynamic. - -2017-10-09 H.J. Lu - - PR ld/22274 - * elfnn-riscv.c (riscv_elf_link_hash_table): Add max_alignment. - (riscv_elf_link_hash_table_create): Initialize max_alignment to - (bfd_vma) -1. - (_bfd_riscv_relax_section): Cache the max alignment of output - sections if possible. - -2017-10-10 Alan Modra - - * elf64-ppc.c (ppc64_elf_before_check_relocs): Set sec_type for - .opd whenever .opd is present and non-zero size. Move code - setting abiversion to/from output file earlier. Only set - u.opd.func_sec when --gc-sections. Read relocs and set up - u.opd.func_sec values here.. - (ppc64_elf_check_relocs): ..rather than here. Simplify opd - section tests. - (ppc64_elf_edit_opd): Don't set sec_type for .opd here. - -2017-10-09 H.J. Lu - - * elf-m10300.c (mn10300_elf_check_relocs): Don't free cached - isymbuf. - -2017-10-09 H.J. Lu - - * elf32-bfin.c (bfin_size_dynamic_sections): Don't create the - .interp section with "ld --no-dynamic-linker". - -2017-10-09 Alan Modra - - PR 22212 - * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free - funcinfo_hash_table and varinfo_hash_table. - -2017-10-08 H.J. Lu - - * elf32-sh.c (readonly_dynrelocs): Dump dynamic relocation - in read-only section with minfo. - (sh_elf_size_dynamic_sections): Likewise. - -2017-10-08 H.J. Lu - - * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Remove - a strayed comment. - -2017-10-08 H.J. Lu - - * elfxx-tilegx.c (tilegx_elf_finish_dynamic_sections): Set - this_hdr.sh_entsize only if section size > 0. - -2017-10-08 H.J. Lu - - * elfxx-x86.c (elf_x86_allocate_dynrelocs): Reformat. - -2017-10-07 H.J. Lu - - * elfxx-sparc.c (readonly_dynrelocs): Dump dynamic relocation - in read-only section with minfo. - (_bfd_sparc_elf_size_dynamic_sections): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Update - comments. - -2017-10-06 John Baldwin - - * elf-bfd.h (struct elf_backend_data): Add - `elf_backend_grok_freebsd_prstatus'. - * elf.c (elfcore_grok_freebsd_note): Call - `elf_backend_grok_freebsd_prstatus' to handle NT_PRSTATUS if - present. - * elfn32-mips.c (elf_n32_mips_grok_freebsd_prstatus): New - function. - (elf_backend_grok_freebsd_prstatus): Define. - * elfxx-target.h (elf_backend_grok_freebsd_prstatus): Define. - (elfNN_bed): Initialize `elf_backend_grok_freebsd_prstatus'. - -2017-10-06 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Replace has_got_reloc - and has_non_got_reloc with zero_undefweak. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - * elfxx-x86.c (_bfd_x86_elf_link_hash_newfunc): Initialize - zero_undefweak to 1. - (_bfd_x86_elf_copy_indirect_symbol): Replace has_got_reloc and - has_non_got_reloc with zero_undefweak. - * elfxx-x86.h (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Replace - has_got_reloc and has_non_got_reloc with zero_undefweak. - (elf_x86_link_hash_entry): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (COPY_INPUT_RELOC_P): Add "do/while(0);". - (VERIFY_COPY_RELOC): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (VERIFY_COPY_RELOC): New. - * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use it. - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (VERIFY_PLT_ENTRY): New. - * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use it. - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (COPY_INPUT_RELOC_P): New. - * elf32-i386.c (elf_i386_relocate_section): Use it. - * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. - -2017-10-06 H.J. Lu - - * elf32-i386.c (X86_SIZE_TYPE_P): New. - (elf_i386_relocate_section): Use GENERATE_DYNAMIC_RELOCATION_P. - * elf64-x86-64.c (X86_SIZE_TYPE_P): New. - (elf_x86_64_relocate_section): Use GENERATE_DYNAMIC_RELOCATION_P. - * elfxx-x86.h (GENERATE_DYNAMIC_RELOCATION_P): New. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (POINTER_LOCAL_IFUNC_P): New. - (PLT_LOCAL_IFUNC_P): Likewise. - * elf32-i386.c (elf_i386_relocate_section): Use them. - * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (GENERATE_RELATIVE_RELOC_P): New. - * elf32-i386.c (elf_i386_relocate_section): Use it. - * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (RESOLVED_LOCALLY_P): New. - * elf32-i386.c (elf_i386_relocate_section): Use it. - * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. - -2017-10-06 H.J. Lu - - * elf32-i386.c (X86_PCREL_TYPE_P): New. - (elf_i386_check_relocs): Use NEED_DYNAMIC_RELOCATION_P. - * elf64-x86-64.c (IS_X86_64_PCREL_TYPE): Renamed to ... - (X86_PCREL_TYPE_P): This. - (elf_x86_64_check_relocs): Use NEED_DYNAMIC_RELOCATION_P. - Replace IS_X86_64_PCREL_TYPE with X86_PCREL_TYPE_P. - (elf_x86_64_relocate_section): Replace IS_X86_64_PCREL_TYPE with - X86_PCREL_TYPE_P. - * elfxx-x86.h (NEED_DYNAMIC_RELOCATION_P): New. - -2017-10-06 H.J. Lu - - * elfxx-x86.h (TLS_TRANSITION_IE_TO_LE_P): New. - * elf32-i386.c (elf_i386_tls_transition): Use it. - * elf64-x86-64.c (elf_x86_64_tls_transition): Likewise. - -2017-10-05 H.J. Lu - - * elf32-ppc.c (readonly_dynrelocs): Add a link_info argument. - Dump dynamic relocation in read-only section with minfo if - needed. - (ppc_elf_adjust_dynamic_symbol): Pass NULL to readonly_dynrelocs. - (maybe_set_textrel): Likewise. - (ppc_elf_size_dynamic_sections): Dump dynamic relocation in - read-only section with minfo. - -2017-10-05 John Baldwin - - * elf.c (elfcore_grok_freebsd_note): Handle NT_ARM_VFP. - -2017-10-05 H.J. Lu - - * elf32-tilepro.c (readonly_dynrelocs): Dump dynamic relocation - in read-only section with minfo. - (tilepro_elf_size_dynamic_sections): Likewise. - * elfxx-tilegx.c (readonly_dynrelocs): Likewise. - (tilegx_elf_size_dynamic_sections): Likewise. - -2017-10-05 Pedro Alves - - PR 22245 - * bfd.c (bfd_set_error): Revert 2017-10-04 change. Remove - ellipsis parameter. Split out bfd_error_on_input code to.. - (bfd_set_input_error): .. New function. - * archive.c (_bfd_write_archive_contents): Use bfd_set_input_error. - * vms-lib.c (_bfd_vms_lib_write_archive_contents): Likewise. - * bfd-in2.h: Regenerate. - -2017-10-05 Alan Modra - - * elflink.c (elf_link_input_bfd): Correct ctor/dtor in init_array/ - fini_array error value. - -2017-10-05 Alan Modra - - PR 21167 - * elf.c (_bfd_elf_setup_sections): Don't trim reloc sections from - groups. - (_bfd_elf_init_reloc_shdr): Pass sec_hdr, use it to copy SHF_GROUP - flag from section. - (elf_fake_sections): Adjust calls. Exit immediately on failure. - (bfd_elf_set_group_contents): Add associated reloc section indices - to group contents. - -2017-10-04 Alan Modra - - * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't sort or - classify symbols for ELFv2. - -2017-10-04 Pavel I. Kryukov - - PR 22245 - * bfd.c (bfd_set_error): Avoid UB on passing arg to va_start that - undergoes default promotion. - * bfd-in2.h: Regenerate. - -2017-10-02 Alan Modra - - * elf32-ppc.c (ppc_elf_relocate_section): Fix comment typo. - * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. - -2017-10-01 Alan Modra - - PR 21957 - * dwarf2.c (new_line_sorts_after): Remove end_sequence comparison. - (add_line_info): Always put end_sequence last. - -2017-10-01 Alan Modra - - PR 22047 - * dwarf2.c (read_section): Allocate buffer with extra byte for - bfd_simple_get_relocated_section_contents rather than copying - afterwards. - -2017-09-29 Alan Modra - - * merge.c (merge_strings): Return FALSE on malloc failure. - (_bfd_merge_sections): Return failures from record_section and - merge_strings. - -2017-09-28 Alan Modra - - PR 22220 - * elflink.c (_bfd_elf_merge_symbol): Set non_ir_ref_dynamic in - a case where plugin_notice isn't called. - -2017-09-27 Kuan-Lin Chen - - * elf32-nds32.c (nds32_elf_relax_section): Fix a tautological - comparison. - -2017-09-26 H.J. Lu - - PR ld/22199 - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't pass - output_bfd to info->callbacks->minfo. - -2017-09-26 Nick Clifton - - PR 22172 - * elf64-x86-64.c (elf_x86_64_info_to_howto): Do not trigger an - assertion failure if elf_x86_64_rtype_to_howto has already issued - an error message. - -2017-09-26 Alan Modra - - PR 22210 - * dwarf2.c (read_formatted_entries): Use read_attribute_value to - read data. - -2017-09-26 Nick Clifton - - PR 22210 - * dwarf2.c (read_formatted_entries): Fail early if we know that - the loop parsing data entries will overflow the end of the - section. - -2017-09-26 Alan Modra - - PR 22209 - * dwarf2.c (struct comp_unit): Delete sec_info_ptr field. - (find_abstract_instance_name): Calculate DW_FORM_ref_addr relative - to stash->info_ptr_memory, and check die_ref is within that memory. - Set info_ptr_end correctly when another CU is refd. Check die_ref - for DW_FORM_ref4 etc. is within CU. - -2017-09-26 Alan Modra - - PR 22205 - * dwarf2.c (concat_filename): Return "" on NULL filename. - (read_formatted_entries): Init "fe". - (decode_line_info ): Use line_info_add_file_name. - -2017-09-26 Alan Modra - - PR 22204 - * dwarf2.c (decode_line_info): Ensure line_ptr stays within - bounds in inner loop. - -2017-09-25 Alan Modra - - PR 22202 - * dwarf1.c (parse_die): Sanity check pointer against section limit - before dereferencing. - (parse_line_table): Likewise. - -2017-09-25 Alan Modra - - PR 22201 - * dwarf2.c (scan_unit_for_symbols): Ignore DW_AT_name unless it - has string form. - (parse_comp_unit): Likewise. - -2017-09-25 Alan Modra - - PR 22200 - * dwarf2.c (read_formatted_entries): Error on format_count zero. - -2017-09-24 Alan Modra - - PR 22197 - * opncls.c (bfd_get_debug_link_info_1): Properly check that crc is - within section bounds. - -2017-09-24 Alan Modra - - PR 22191 - * dwarf2.c (decode_line_info): Properly free line sequences on error. - -2017-09-24 Alan Modra - - PR 22187 - * dwarf2.c (find_abstract_instance_name): Add orig_info_ptr and - pname param. Return status. Make name const. Don't abort, - return an error. Formatting. Exit if current info_ptr matches - orig_info_ptr. Update callers. - (scan_unit_for_symbols): Start at nesting_level of zero. Make - nested_funcs an array of structs for extensibility. Formatting. - -2017-09-24 Alan Modra - - PR 22186 - * dwarf2.c (decode_line_info): Fail on lh.line_range of zero - rather than dividing by zero. - -2017-09-24 Alan Modra - - PR 22169 - * dwarf2.c (decode_line_info): Correct .debug_line unit_length check. - -2017-09-24 Alan Modra - - PR 22167 - * dwarf2.c (scan_unit_for_symbols): Check u.blk->data is non-NULL. - -2017-09-24 Alan Modra - - PR 22166 - * elf.c (_bfd_elf_slurp_version_tables): Test sh_info on - SHT_GNU_verneed section for sanity. Don't zalloc memory for - verref. - -2017-09-22 H.J. Lu - - PR binutils/22170 - * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Guard against - corrupted PLT. - -2017-09-22 H.J. Lu - - PR binutils/22163 - * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Also return - -1 if bfd_canonicalize_dynamic_reloc returns 0. - -2017-09-22 Pedro Alves - Alan Modra - - * version.h: Add comment. - -2017-09-21 Andreas Arnez - - * elf.c (elfcore_grok_note): For the cases NT_S390_GS_CB and - NT_S390_GS_BC, correct the previously swapped invocations of - elfcore_grok_s390_gs_bc and elfcore_grok_s390_gs_cb. - -2017-09-19 Alan Modra - - PR 21441 - * elf64-ppc.c (ppc64_elf_build_stubs): Don't check glink_eh_frame - size. - -2017-09-19 Alan Modra - - PR 22150 - * elflink.c (bfd_elf_size_dynamic_sections): Garbage collect - symbols before calculating verrefs. Don't renumber dynsyms - after gc. Exclude .gnu.version when zero or one dynsym. - Localize some vars and reindent. - -2017-09-18 H.J. Lu - - PR ld/22148 - * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Check error - return from bfd_canonicalize_dynamic_reloc. - -2017-09-15 Alan Modra - - PR 22116 - * archive.c (bfd_ar_hdr_from_filesystem): Detect when status.st_size - overflows bfd_size_type. - -2017-09-14 H.J. Lu - - PR ld/22135 - * elf32-i386.c (elf_i386_convert_load_reloc): Add an argument - to indicate if conversion is performed. - (elf_i386_check_relocs): Cache section contents and relocations - if conversion is performed. - * elf64-x86-64.c (elf_x86_64_check_relocs): Cache section - contents and relocations if conversion is performed. - -2017-09-14 Nick Clifton - - PR binutils/22113 - * peXXigen.c (pe_print_idata): Extend check for HintName vector - entries. - -2017-09-13 H.J. Lu - - * elfxx-x86.h: Fix a typo in comments. - -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 - * 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 - * configure: Regenerate. - -2017-07-04 Jiong Wang - - * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Remove the - sanity check at the head of this function. - -2017-07-04 Jan Kratochvil - - * dwarf2.c (struct dwarf2_debug): Add fields dwarf_line_str_buffer and - dwarf_line_str_size. - (struct attr_abbrev): Add field implicit_const. - (dwarf_debug_sections): Add .debug_line_str. - (enum dwarf_debug_section_enum): Add debug_line_str and debug_max. - (dwarf_debug_section_assert): Add static assertion. - (read_indirect_line_string): New. - (read_abbrevs): Support DW_FORM_implicit_const. - (is_str_attr): Support DW_FORM_line_strp. - (read_attribute_value): Support DW_FORM_line_strp and - DW_FORM_implicit_const. - (read_attribute): Support DW_FORM_implicit_const. - (line_info_add_include_dir, line_info_add_include_dir_stub): - (line_info_add_file_name, read_formatted_entries): New. - (decode_line_info, parse_comp_unit): Support DWARF 5. - (_bfd_dwarf2_cleanup_debug_info): Free dwarf_line_str_buffer. - -2017-07-03 Egeyar Bagcioglu - - * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Remove the - abort statement that was put for symbols that are not dynamic. - -2017-07-03 Tristan Gingold - - * po/bfd.pot: Regenerate - -2017-07-03 Alan Modra - - * bfd.c (_doprnt): Rewrite "ll" and "L" modifiers to "I64" for - __MSVCRT__. Support "L" modifier for bfd_vma. Formatting. - * elf.c (setup_group): Use "Lx" to print sh_size. - (_bfd_elf_setup_sections): Remove unnecessary cast and print - unknown section type in hex. - (copy_special_section_fields): Style fix. - (bfd_section_from_shdr): Correct format for sh_link. Use a - common error message for all the variants of unrecognized - section types. - (assign_file_positions_for_load_sections): Use "Lx" for lma - adjust error message. - (assign_file_positions_for_non_load_sections): Formatting. - (rewrite_elf_program_header): Formatting. Use "Lx" for - bfd_vma values in error messages. - * elfcode.h (elf_slurp_reloc_table_from_section): Cast - ELF_R_SYM value to type expected by format. - * elflink.c (elf_link_read_relocs_from_section): Use "Lx" - in error messages. - (elf_link_add_object_symbols): Use "Lu" for symbol sizes. - (elf_link_input_bfd): Use "Lx" for r_info. - (bfd_elf_gc_record_vtinherit): Use "Lx" for offset. - -2017-07-03 Alan Modra - - * bfd.c (bfd_scan_vma): Don't use long long unless HAVE_LONG_LONG. - * coff-rs6000.c (FMT20): Handle hosts with 64-bit long and - Microsoft C library variant of long long format specifier. - (PRINT20): Cast value to bfd_uint64_t not long long. - * coffcode.h (coff_print_aux): Use BFD_VMA_FMT. - * coff-x86_64.c (coff_amd64_reloc): Use bfd_uint64_t rather than - long long. Don't cast to bfd_vma. - * elf32-score.c (score3_bfd_getl48): Likewise. - * vms-alpha.c (_bfd_vms_slurp_eisd): Likewise. - -2017-07-03 Alan Modra - - * elf.c (_bfd_elf_print_private_bfd_data): Use BFD_VMA_FMT to - print d_tag. - (bfd_elf_print_symbol): Don't cast symbol->flags. - (_bfd_elf_symbol_from_bfd_symbol): Likewise. - * elf32-ppc.c (ppc_elf_begin_write_processing): Correct - _bfd_error_handler argument order. - (ppc_elf_merge_private_bfd_data): Don't cast flags. - -2017-07-03 Alan Modra - - * configure.ac: Invoke AC_CHECK_TYPES for long long. Invoke - AC_TYPE_LONG_DOUBLE. - * configure: Regenerate. - * config.in: Regenerate. - -2017-06-29 Andrew Waterman - - * elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol): Fix TLS copy - relocs. - -2017-06-29 Egeyar Bagcioglu - - * elfxx-sparc.c (allocate_dynrelocs): Don't make a symbol dynamic - unless it is undefined weak. - * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Set the flag - relative_reloc to direct non-dynamic symbols to R_SPARC_RELATIVE - relocation. - * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): If symbol - is not dynamic in PIC, abort. - -2017-06-29 Jiong Wang - - PR ld/21402 - * elfnn-aarch64.c (elfNN_aarch64_allocate_dynrelocs): Only make - undefined weak symbols into dynamic. - (elfNN_aarch64_final_link_relocate): Generate runtime RELATIVE - relocation for non-dynamic symbols. - (elfNN_aarch64_finish_dynamic_symbol): Add sanity check. - -2017-06-29 Jiong Wang - - * elfnn-aarch64.c (aarch64_relocation_aginst_gp_p): New function. - (elfNN_aarch64_final_link_relocate): Delete duplicated code for - BFD_RELOC_AARCH64_LD64_GOTOFF_LO15, BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC, - BFD_RELOC_AARCH64_MOVW_GOTOFF_G1. - * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Optimize the - support for them. - -2017-06-29 Andreas Arnez - - * elf-bfd.h (elfcore_write_s390_gs_cb): Add prototype. - (elfcore_write_s390_gs_bc): Likewise. - * elf.c (elfcore_grok_s390_gs_cb): New function. - (elfcore_grok_s390_gs_bc): New function. - (elfcore_grok_note): Call them. - (elfcore_write_s390_gs_cb): New function. - (elfcore_write_s390_gs_bc): New function. - (elfcore_write_register_note): Call them. - -2017-06-28 H.J. Lu - - * libbfd.c (_bfd_generic_get_section_contents): Don't call - bfd_get_file_size. Check archive element size. - (_bfd_generic_get_section_contents_in_window): Likewise. - -2017-06-28 H.J. Lu - - * bfd-in2.h: Regenerated. - * bfdio.c (bfd_get_size): Change return type to ufile_ptr. - (bfd_get_file_size): Likewise. - -2017-06-28 Maciej W. Rozycki - Matthew Fortune - - * archures.c (bfd_mach_mips_interaptiv_mr2): New macro. - * cpu-mips.c (I_interaptiv_mr2): New enum value. - (arch_info_struct): Add "mips:interaptiv-mr2" entry. - * elfxx-mips.c (_bfd_elf_mips_mach) : New - case. - (mips_set_isa_flags) : Likewise. - (bfd_mips_isa_ext) : Likewise. - (print_mips_isa_ext) : Likewise. - (mips_mach_extensions): Add `bfd_mach_mipsisa32r3' and - `bfd_mach_mips_interaptiv_mr2' entries. - * bfd-in2.h: Regenerate. - -2017-06-27 Nick Clifton - - * tekhex.c (pass_over): Revert accidental conversion of a local - array to a static array. - -2017-06-27 Senthil Kumar Selvaraj - - PR ld/13402 - * elf32-avr.c (elf32_avr_adjust_diff_reloc_value): Adjust - reloc addend if necessary. Adjust diff only if - shrinked_insn_address < end_address. - -2017-06-27 Alan Modra - - PR binutils/21665 - * libbfd.c (_bfd_generic_get_section_contents): Warning fix. - (_bfd_generic_get_section_contents_in_window): Likewise. - -2017-06-26 Kuan-Lin Chen - - * elfnn-riscv.c (perform_relocation): Support the new - R_RISCV_32_PCREL relocation. - (riscv_elf_relocate_section): Likewise. - * elfxx-riscv.c (howto_table): Likewise. - (riscv_reloc_map): Likewise. - * bfd-in2.h (BFD_RELOC_RISCV_32_PCREL): New relocation. - * libbfd.h: Regenerate. - -2017-06-27 Alan Modra - - PR binutils/21665 - * libbfd.c (_bfd_generic_get_section_contents): Delete abort. - Use unsigned file pointer type, and remove cast. - * libbfd.c (_bfd_generic_get_section_contents_in_window): Likewise. - Add "count", not "sz". - -2017-06-26 Pedro Alves - - PR binutils/21665 - * libbfd.c (_bfd_generic_get_section_contents): Add "count", not - "sz". - -2017-06-26 H.J. Lu - - PR binutils/21665 - * libbfd.c (_bfd_generic_get_section_contents_in_window): Add - a missing line. - -2017-06-26 Maciej W. Rozycki - - * cpu-mips.c (arch_info_struct): Mark the 4010 32-bit. - * elfxx-mips.c (mips_set_isa_flags) : Set - E_MIPS_ARCH_2 rather than E_MIPS_ARCH_3 in `e_flags'. - (mips_mach_extensions): Mark `bfd_mach_mips4010' as extending - `bfd_mach_mips6000' rather than `bfd_mach_mips4000'. - -2017-06-26 H.J. Lu - - PR binutils/21665 - * compress.c (bfd_get_full_section_contents): Don't check the - file size here. - * libbfd.c (_bfd_generic_get_section_contents): Check for and - reject a section whose size + offset is greater than the size - of the entire file. - (_bfd_generic_get_section_contents_in_window): Likewise. - -2017-06-26 Nick Clifton - - PR binutils/21670 - * tekhex.c (getvalue): Check for the source pointer exceeding the - end pointer before the first byte is read. - -2017-06-26 Nick Clifton - - PR binutils/21665 - * opncls.c (get_build_id): Check that the section is big enough - to contain the whole note. - * compress.c (bfd_get_full_section_contents): Check for and reject - a section whose size is greater than the size of the entire file. - * elf32-v850.c (v850_elf_copy_notes): Allow for the ouput to not - contain a notes section. - -2017-06-26 Andreas Krebbel - - * elf64-s390.c (elf_s390_additional_program_headers): Add NULL - pointer checks. - (elf_s390_modify_segment_map): Likewise. - (bfd_elf_s390_set_options): Lisewise. - -2017-06-26 Alan Modra - - * elflink.c (_bfd_elf_link_create_dynstrtab): Don't make dynobj - a --just-syms bfd. - (_bfd_elf_size_group_sections): Skip --just-syms bfds. - (bfd_elf_size_dynamic_sections): Ignore .note.GNU-stack and - .preinit_array on --just-syms bfds. - (_bfd_elf_gc_mark_extra_sections): Skip --just-syms bfds. - (elf_gc_sweep, bfd_elf_parse_eh_frame_entries): Likewise. - (bfd_elf_gc_sections, bfd_elf_discard_info): Likewise. - -2017-06-25 Sergei Trofimovich - - * elf.c (find_link): Bounds check "hint". - -2017-06-24 Thomas Preud'homme - - * elf32-arm.c (using_thumb_only): Update list of architectures in - BFD_ASSERT for which the logic is valid. - (using_thumb2_bl): Likewise. - (using_thumb2): Likewise and return true for ARMv8-R. - (arch_has_arm_nop): Likewise. - (tag_cpu_arch_combine): New v8r table for ARMv8-R Tag_CPU_arch - merging logic. Update commentis for value 15 of v8m_baseline, - v8m_mainline and v4t_plus_v6_m arrays. Use v8r array to decide - merging of value 15 of Tag_CPU_arch. - -2017-06-23 Jiong Wang - - * reloc.c (BFD_RELOC_AARCH64_ADR_GOTPAGE): Rename to - BFD_RELOC_AARCH64_ADR_GOT_PAGE - * bfd-in2.h: Regenerate. - -2017-06-22 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Move - the error_alignment label forward. Properly align program - property note section. - -2017-06-22 Eric Christopher - - * elf32-arm.c (elf32_arm_final_link_relocate): Use labs rather than - abs to fix a truncation warning. - -2017-06-22 H.J. Lu - - * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Resolve - local undefined weak symbol to 0. - * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Likewise. - -2017-06-22 H.J. Lu - - * elf32-i386.c (elf_i386_merge_gnu_properties): If info->shstk - is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK. - (elf_i386_link_setup_gnu_properties): If info->shstk is set, - turn on GNU_PROPERTY_X86_FEATURE_1_IBT. - * elf64-x86-64.c (elf_x86_64_merge_gnu_properties): If - info->shstk is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK. - (elf_x86_64_link_setup_gnu_properties): If info->shstk is set, - turn on GNU_PROPERTY_X86_FEATURE_1_IBT. - -2017-06-22 H.J. Lu - - * elf32-i386.c (elf_i386_lazy_ibt_plt0_entry): New. - (elf_i386_lazy_ibt_plt_entry): Likewise. - (elf_i386_pic_lazy_ibt_plt0_entry): Likewise. - (elf_i386_non_lazy_ibt_plt_entry): Likewise. - (elf_i386_pic_non_lazy_ibt_plt_entry): Likewise. - (elf_i386_eh_frame_lazy_ibt_plt): Likewise. - (elf_i386_lazy_plt_layout): Likewise. - (elf_i386_non_lazy_plt_layout): Likewise. - (elf_i386_link_hash_entry): Add plt_second. - (elf_i386_link_hash_table): Add plt_second and - plt_second_eh_frame. - (elf_i386_allocate_dynrelocs): Use the second PLT if needed. - (elf_i386_size_dynamic_sections): Use .plt.got unwind info for - the second PLT. Check the second PLT. - (elf_i386_relocate_section): Use the second PLT to resolve - PLT reference if needed. - (elf_i386_finish_dynamic_symbol): Fill and use the second PLT if - needed. - (elf_i386_finish_dynamic_sections): Set sh_entsize on the - second PLT. Generate unwind info for the second PLT. - (elf_i386_plt_type): Add plt_second. - (elf_i386_get_synthetic_symtab): Support the second PLT. - (elf_i386_parse_gnu_properties): Support - GNU_PROPERTY_X86_FEATURE_1_AND. - (elf_i386_merge_gnu_properties): Support - GNU_PROPERTY_X86_FEATURE_1_AND. If info->ibt is set, turn - on GNU_PROPERTY_X86_FEATURE_1_IBT - (elf_i386_link_setup_gnu_properties): If info->ibt is set, - turn on GNU_PROPERTY_X86_FEATURE_1_IBT. Use IBT-enabled PLT - for info->ibtplt, info->ibt or GNU_PROPERTY_X86_FEATURE_1_IBT - is set on all relocatable inputs. - * elf64-x86-64.c (elf_x86_64_lazy_ibt_plt_entry): New. - (elf_x32_lazy_ibt_plt_entry): Likewise. - (elf_x86_64_non_lazy_ibt_plt_entry): Likewise. - (elf_x32_non_lazy_ibt_plt_entry): Likewise. - (elf_x86_64_eh_frame_lazy_ibt_plt): Likewise. - (elf_x32_eh_frame_lazy_ibt_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_get_synthetic_symtab): Support the second PLT. - (elf_x86_64_parse_gnu_properties): Support - GNU_PROPERTY_X86_FEATURE_1_AND. - (elf_x86_64_merge_gnu_properties): Support - GNU_PROPERTY_X86_FEATURE_1_AND. If info->ibt is set, turn - on GNU_PROPERTY_X86_FEATURE_1_IBT - (elf_x86_64_link_setup_gnu_properties): If info->ibt is set, - turn on GNU_PROPERTY_X86_FEATURE_1_IBT. Use IBT-enabled PLT - for info->ibtplt, info->ibt or GNU_PROPERTY_X86_FEATURE_1_IBT - is set on all relocatable inputs. - -2017-06-22 Nick Clifton - - PR binutils/21649 - * som.c (setup_sections): NUL terminate the space_strings buffer. - Check that the space.name field does not index beyond the end of - the space_strings buffer. - -2017-06-21 Nick Clifton - - PR binutils/21646 - * coff-sh.c (sh_reloc): Check for an out of range reloc. - -2017-06-21 Nick Clifton - - PR binutils/21639 - * vms-misc.c (_bfd_vms_save_sized_string): Use unsigned int as - type of the size parameter. - (_bfd_vms_save_counted_string): Add second parameter - the maximum - length of the counted string. - * vms.h (_bfd_vms_save_sized_string): Update prototype. - (_bfd_vms_save_counted_string): Likewise. - * vms-alpha.c (_bfd_vms_slurp_eisd): Update calls to - _bfd_vms_save_counted_string. - (_bfd_vms_slurp_ehdr): Likewise. - (_bfd_vms_slurp_egsd): Likewise. - (Parse_module): Likewise. - -2017-06-21 Alan Modra - - * elf64-ppc.c (ppc64_elf_size_stubs): Test for localentry:0 plt - calls before tocsave calls. - (ppc64_elf_relocate_section): Allow localentry:0 plt calls without - following nop. - -2017-06-21 Nick Clifton - - PR binutils/21645 - * reloc.c (bfd_generic_get_relocated_section_contents): Fail if - bfd_get_full_section_contents returns no contents. - -2017-06-21 Nick Clifton - - PR binutils/21638 - * vms-alpha.c (_bfd_vms_slurp_egsd): Check for an undersized - record. - -2017-06-21 Nick Clifton - - PR binutils/21637 - * vms-alpha.c (_bfd_vms_slurp_egsd): Check for an empty section - list. - (image_set_ptr): Likewise. - (alpha_vms_fix_sec_rel): Likewise. - (alpha_vms_slurp_relocs): Likewise. - -2017-06-21 Nick Clifton - - PR binutils/21633 - * ieee.c (ieee_slurp_sections): Check for a NULL return from - read_id. - (ieee_archive_p): Likewise. - (ieee_object_p): Likewise. - -2017-06-21 Nick Clifton - - PR binutils/21640 - * elf.c (setup_group): Zero the group section pointer list after - allocation so that loops can be caught. Check for NULL pointers - when processing a group list. - -2017-06-20 Andreas Krebbel - - * elf-s390.h: New file. - * elf64-s390.c (struct elf_s390_link_hash_table): Add params - field. - (elf_s390_additional_program_headers): New function. - (elf_s390_modify_segment_map): New function. - (bfd_elf_s390_set_options): New function. - (elf_backend_additional_program_headers) - (elf_backend_modify_segment_map): Add macro definitions. - -2017-06-19 H.J. Lu - - PR ld/21626 - * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Check - the DYNAMIC bit instead of bfd_count_sections. - -2017-06-19 Nick Clifton - - PR binutils/21618 - * vms-alpha.c (evax_bfd_print_emh): Check for insufficient record - length. - (evax_bfd_print_eeom): Likewise. - (evax_bfd_print_egsd): Check for an overlarge record length. - (evax_bfd_print_etir): Likewise. - -2017-06-19 Nick Clifton - - PR binutils/21612 - * libieee.h (struct common_header_type): Add end_p field. - * ieee.c (this_byte_and_next): Do not advance input_p beyond - end_p. - (read_id): Check for a length that exceeds the remaining bytes in - the input buffer. - (ieee_seek): Initialise end_p. - (ieee_archive_p): Likewise. - (ieee_object_p): Likewise. - -2017-06-19 Nick Clifton - - PR binutils/21611 - * vms-alpha.c (_bfd_vms_slurp_eihs): Check for invalid offset - before reading the EIHS structure entries. - -2017-06-19 Nick Clifton - - PR binutils/21615 - * vms-alpha.c (_bfd_vms_slurp_egsd): Use unsigned int for - gsd_size. Check that there are enough bytes remaining to read the - type and size of the next egsd. Check that the size of the egsd - does not exceed the size of the record. - -2017-06-19 Alan Modra - - * config.bfd: Correct targ_underscore for cris. - -2017-06-18 Alan Modra - - * config.bfd: Correct targ_underscore for epiphany, ip2k, - m32c, mn10200, pru, rl78, rx, crisv32 and v850. - -2017-06-16 Nick Clifton - - * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Do not fail if the - bucketlist is empty because there are no symbols to add to the - list. - -2017-06-16 Alan Modra - - PR ld/20022 - PR ld/21557 - PR ld/21562 - PR ld/21571 - * targets.c (struct bfd_target): Add _bfd_define_start_stop. - (BFD_JUMP_TABLE_LINK): Likewise. - * elf-bfd.h (bfd_elf_define_start_stop): Declare. - * elflink.c (_bfd_elf_gc_mark_rsec): Update comment. - (bfd_elf_define_start_stop): New function. - * linker.c (bfd_generic_define_start_stop): New function. - * coff64-rs6000.c (rs6000_xcoff64_vec, rs6000_xcoff64_aix_vec): Init - new field. - * aout-adobe.c (aout_32_bfd_define_start_stop): Define. - * aout-target.h (MY_bfd_define_start_stop): Define. - * aout-tic30.c (MY_bfd_define_start_stop): Define. - * binary.c (binary_bfd_define_start_stop): Define. - * bout.c (b_out_bfd_define_start_stop): Define. - * coff-alpha.c (_bfd_ecoff_bfd_define_start_stop): Define. - * coff-mips.c (_bfd_ecoff_bfd_define_start_stop): Define. - * coff-rs6000.c (_bfd_xcoff_bfd_define_start_stop): Define. - * coffcode.h (coff_bfd_define_start_stop): Define. - * elfxx-target.h (bfd_elfNN_bfd_define_start_stop): Define. - * i386msdos.c (msdos_bfd_define_start_stop): Define. - * i386os9k.c (os9k_bfd_define_start_stop): Define. - * ieee.c (ieee_bfd_define_start_stop): Define. - * ihex.c (ihex_bfd_define_start_stop): Define. - * libbfd-in.h (_bfd_nolink_bfd_define_start_stop): Define. - * mach-o-target.c (bfd_mach_o_bfd_define_start_stop): Define. - * mmo.c (mmo_bfd_define_start_stop): Define. - * nlm-target.h (nlm_bfd_define_start_stop): Define. - * oasys.c (oasys_bfd_define_start_stop): Define. - * pef.c (bfd_pef_bfd_define_start_stop): Define. - * plugin.c (bfd_plugin_bfd_define_start_stop): Define. - * ppcboot.c (ppcboot_bfd_define_start_stop): Define. - * som.c (som_bfd_define_start_stop): Define. - * srec.c (srec_bfd_define_start_stop): Define. - * tekhex.c (tekhex_bfd_define_start_stop): Define. - * versados.c (versados_bfd_define_start_stop): Define. - * vms-alpha.c (vms_bfd_define_start_stop): Define. - (alpha_vms_bfd_define_start_stop): Define. - * xsym.c (bfd_sym_bfd_define_start_stop): Define. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2017-06-16 Jiong Wang - - * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use - SYMBOL_REFERENCES_LOCAL. - -2017-06-15 Jiong Wang - - PR ld/21532 - * elfnn-aarch64.c (ELIMINATE_COPY_RELOCS): Set to 1. - (elfNN_aarch64_final_link_relocate): Also propagate relocations to - runtime for if there needs copy relocation elimination. - (need_copy_relocation_p): New function. Return true for symbol with - pc-relative references and if it's against read-only sections. - (elfNN_aarch64_adjust_dynamic_symbol): Use need_copy_relocation_p. - (elfNN_aarch64_check_relocs): Allocate dynrelocs for relocation types - that are related with accessing external objects. - (elfNN_aarch64_gc_sweep_hook): Sync the relocation types with the change - in elfNN_aarch64_check_relocs. - -2017-06-15 Nick Clifton - - PR binutils/21582 - * ieee.c (ieee_object_p): Use a static buffer to avoid compiler - bugs. - PR binutils/21581 - (ieee_archive_p): Likewise. - -2017-06-15 Nick Clifton - - PR binutils/21579 - * vms-alpha.c (_bfd_vms_slurp_etir): Extend check of cmd_length. - -2017-06-14 Max Filippov - - * elf32-xtensa.c (elf_xtensa_be_plt_entry, - elf_xtensa_le_plt_entry): Add dimension for the ABI to arrays, - keep both windowed and call0 ABI PLT definitions. - (elf_xtensa_create_plt_entry): Use selected ABI to choose upper - elf_xtensa_*_plt_entry endex. - (ELF_MAXPAGESIZE): Fix at minimal supported MMU page size. - -2017-06-14 Nick Clifton - - PR binutils/21578 - * elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid - flag value. - -2017-06-14 Nick Clifton - - PR binutils/21589 - * vms-alpha.c (_bfd_vms_get_value): Add an extra parameter - the - maximum value for the ascic pointer. Check that name processing - does not read beyond this value. - (_bfd_vms_slurp_etir): Add checks for attempts to read beyond the - end of etir record. - -2017-06-14 Nick Clifton - - PR binutils/21591 - * versados.c (versados_mkobject): Zero the allocated tdata structure. - (process_otr): Check for an invalid offset in the otr structure. - -2017-06-14 Sebastian Huber - - * config.bfd (epiphany-*-elf): Accept epiphany-*-*. - -2017-06-13 H.J. Lu - - PR ld/20022 - PR ld/21557 - PR ld/21562 - PR ld/21571 - * elf-bfd.h (elf_link_hash_entry): Add start_stop. Change the - vtable field to a union. - (_bfd_elf_is_start_stop): Removed. - * elf32-i386.c (elf_i386_convert_load_reloc): Also check for - __start_SECNAME and __stop_SECNAME symbols. - * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise. - * elflink.c (_bfd_elf_is_start_stop): Removed. - (_bfd_elf_gc_mark_rsec): Check start_stop instead of calling - _bfd_elf_is_start_stop. - (elf_gc_propagate_vtable_entries_used): Skip __start_SECNAME and - __stop_SECNAME symbols. Updated. - (elf_gc_smash_unused_vtentry_relocs): Likewise. - (bfd_elf_gc_record_vtinherit): Likewise. - (bfd_elf_gc_record_vtentry): Likewise. - -2017-06-13 Nick Clifton - - PR ld/21524 - * elflink.c (elf_link_adjust_relocs): Generate an error when - encountering a reloc against a symbol removed by garbage - collection. - -2017-06-12 H.J. Lu - - * elf-bfd.h (elf_backend_data): Add struct bfd_link_info * - to merge_gnu_properties. - * elf-properties.c (elf_merge_gnu_properties): Add struct - bfd_link_info * and pass it to merge_gnu_properties. - (elf_merge_gnu_property_list): Add struct bfd_link_info * - and pass it to elf_merge_gnu_properties. - (_bfd_elf_link_setup_gnu_properties): Pass info to - elf_merge_gnu_property_list. - * elf32-i386.c (elf_i386_merge_gnu_properties): Add struct - bfd_link_info *. - * elf64-x86-64.c (elf_x86_64_merge_gnu_properties): Likewise. - -2017-06-11 Joe Zbiciak - - PR 21564 - * binary.c (binary_set_section_contents): Scale lma by octets - per byte to set filepos. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_check_relocs): Fixed conditions to generate - dynamic sections. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_size_dynamic_sections): Changed condition to - require TEXTREL. - -2017-06-08 Cupertino Miranda - - * arc-got.h (relocate_fix_got_relocs_for_got_info): Added TCB_SIZE to - patched section contents for TLS IE reloc. - * elf32-arc.c: Remove TCB_SIZE preprocessor macro. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Added "call" to - RELOC_FOR_GLOBAL_SYMBOL macro. - -2018-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Small refactor and condition - changes. - -2017-06-08 Cupertino Miranda - - * config/tc-arc.c (md_undefined_symbol): Changed. - * config/tc-arc.h (DYNAMIC_STRUCT_NAME): Removed. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Fixed reassign of indirect - symbols. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (elf_arc_check_relocs): Added condition to disable - warning and "Bad value" for local symbols ARC_32 or ARC_32_ME relocs. - -2017-06-08 Cupertino Miranda - - * elf32-arc.c (ADD_RELA): Changed to only work when dynamic - object is created. - -2017-06-08 Richard Earnshaw - - * elf32-arm.c (elf32_arm_merge_eabi_attributes): Remove assertion - that the input bfd has Tag_FP_ARCH non-zero if Tag_ABI_HardFP_use - is non-zero. Add clarifying comments. - -2017-06-08 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Set local IFUNC symbol - name. Use local IFUNC symbol name string to report unsupported - non-PIC call to IFUNC function. - (elf_i386_relocate_section): Dump local IFUNC name with minfo - when generating R_386_IRELATIVE relocation. - (elf_i386_finish_dynamic_symbol): Likewise. - * elf_x86_64_check_relocs (elf_x86_64_check_relocs): Set local - IFUNC symbol name. - (elf_x86_64_relocate_section): Dump local IFUNC name with minfo - when generating R_X86_64_IRELATIVE relocation. - (elf_x86_64_finish_dynamic_symbol): Likewise. - -2017-06-06 Jose E. Marchesi - - * elf.c (setup_group): Make sure BFD sections are created for all - group sections in the input file when processing SHF_GROUP - sections. - (bfd_section_from_shdr): Avoid duplicating logic already - implemented in `setup_group'. - -2017-06-06 Daniel Bonniot de Ruisselet - - PR binutils/21546 - * peXXigen.c (pe_print_idata): Use the address of the first thunk - if the hint address is zero. - -2017-06-06 James Clarke - - PR ld/19579 - * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Check - ELF_COMMON_DEF_P for common symbols. - -2017-06-06 Andrew Burgess - - * elf.c (_bfd_elf_make_section_from_shdr): Don't initially mark - SEC_GROUP sections as SEC_EXCLUDE. - (bfd_elf_set_group_contents): Replace use of abort with an assert. - (assign_section_numbers): Use resolve_section_groups flag instead - of relocatable link type. - (_bfd_elf_init_private_section_data): Use resolve_section_groups - flag instead of checking the final_link flag for part of the - checks in here. Fix white space as a result. - * elflink.c (elf_link_input_bfd): Use resolve_section_groups flag - instead of relocatable link type. - (bfd_elf_final_link): Likewise. - -2017-06-06 Jose E. Marchesi - - * elfxx-mips.c (_bfd_mips_elf_relocate_section): Remove unused - variable `bed'. - * elf32-score.c (score_elf_final_link_relocate): Likewise. - (s3_bfd_score_elf_check_relocs): Likewise. - * elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise. - (score_elf_final_link_relocate): Likewise. - (s7_bfd_score_elf_check_relocs): Likewise. - -2017-06-06 Jose E. Marchesi - - * elflink.c (init_reloc_cookie_rels): Remove unused variable - `bed'. - -2017-06-06 Maciej W. Rozycki - - * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Subtract `count' - from `reloc_count' rather than decrementing it. - * elf.c (bfd_section_from_shdr): Multiply the adjustment to - `reloc_count' by `int_rels_per_ext_rel'. - * elf32-score.c (score_elf_final_link_relocate): Do not multiply - `reloc_count' by `int_rels_per_ext_rel' for last relocation - entry determination. - (s3_bfd_score_elf_check_relocs): Likewise. - * elf32-score7.c (score_elf_final_link_relocate): Likewise. - (s7_bfd_score_elf_relocate_section): Likewise. - (s7_bfd_score_elf_check_relocs): Likewise. - * elf64-mips.c (mips_elf64_get_reloc_upper_bound): Remove - prototype and function. - (mips_elf64_slurp_one_reloc_table): Do not update `reloc_count'. - (mips_elf64_slurp_reloc_table): Assert that `reloc_count' is - triple rather than once the sum of REL and RELA relocation entry - counts. - (bfd_elf64_get_reloc_upper_bound): Remove macro. - * elflink.c (_bfd_elf_link_read_relocs): Do not multiply - `reloc_count' by `int_rels_per_ext_rel' for internal relocation - storage allocation size determination. - (elf_link_input_bfd): Multiply `.ctors' and `.dtors' section's - size by `int_rels_per_ext_rel'. Do not multiply `reloc_count' - by `int_rels_per_ext_rel' for last relocation entry - determination. - (bfd_elf_final_link): Do not multiply `reloc_count' by - `int_rels_per_ext_rel' for internal relocation storage - allocation size determination. - (init_reloc_cookie_rels): Do not multiply `reloc_count' by - `int_rels_per_ext_rel' for last relocation entry determination. - (elf_gc_smash_unused_vtentry_relocs): Likewise. - * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. - (_bfd_mips_elf_relocate_section): Likewise. - -2017-06-05 Alan Modra - - PR 21529 - * linker.c (_bfd_generic_link_output_symbols): Handle BSF_GNU_UNIQUE. - -2017-06-01 John Baldwin - - * elf.c (elfcore_grok_freebsd_psinfo): Use ELF header class to - determine structure sizes. - (elfcore_grok_freebsd_prstatus): Likewise. - -2017-06-01 Alan Modra - - * elf64-ppc.c (struct ppc_link_hash_table): Add has_plt_localentry0. - (ppc64_elf_merge_symbol_attribute): Merge localentry bits from - dynamic objects. - (is_elfv2_localentry0): New function. - (ppc64_elf_tls_setup): Default params->plt_localentry0. - (plt_stub_size): Adjust size for tls_get_addr_opt stub. - (build_tls_get_addr_stub): Use a simpler stub when r2 is not saved. - (ppc64_elf_size_stubs): Leave stub_type as ppc_stub_plt_call for - optimized localentry:0 stubs. - (ppc64_elf_build_stubs): Save r2 in ELFv2 __glink_PLTresolve. - (ppc64_elf_relocate_section): Leave nop unchanged for optimized - localentry:0 stubs. - (ppc64_elf_finish_dynamic_sections): Set PPC64_OPT_LOCALENTRY in - DT_PPC64_OPT. - * elf64-ppc.h (struct ppc64_elf_params): Add plt_localentry0. - -2017-05-30 Casey Smith - - PR ld/21523 - * elf32-arm.c (elf32_arm_final_link_relocate): Install an absolute - value when processing the R_ARM_THM_ALU_PREL_11_0 reloc. - -2017-05-30 Anton Kolesov Anton.Kolesov@synopsys.com - - * cpu-arc.c (arc_compatible): New function. - -2017-05-30 Anton Kolesov - - * cpu-arc.c (arch_info_struct): Remove duplicate ARC600 entry. - -2017-05-30 H.J. Lu - - PR binutils/21519 - * bfdio.c (bfd_get_file_size): New function. - * bfd-in2.h: Regenerated. - -2017-05-23 Dilian Palauzov - - * elf32-arc.c (arc_elf_merge_attributes): Add fall through - comments. - -2017-05-22 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use - dynobj instead of htab->elf.dynobj. - -2017-05-19 Maciej W. Rozycki - - * elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype - and function. - (mips_elf64_canonicalize_dynamic_reloc): Likewise. - (mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the - actual number of internal relocations retrieved. Adjust - function description. - (bfd_elf64_canonicalize_reloc): Remove macro. - (bfd_elf64_canonicalize_dynamic_reloc): Likewise. - -2017-05-19 Jose E. Marchesi - - * archures.c (bfd_mach_sparc_v9m8): Define. - (bfd_mach_sparc_v8plusm8): Likewise. - (bfd_mach_sparc_v9_p): Adjust to M8. - (bfd_mach_sparc_64bit_p): Likewise. - * aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and - bfd_mach_sparc_v8plusm8. - * bfd-in2.h: Regenerated. - * cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and - sparc:v8plusm8. - * elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle - bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw - capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and - SHA3. - * elf32-sparc.c (elf32_sparc_final_write_processing): Handle - bfd_mach_sparc_v8plusm8. - -2017-05-19 Alan Modra - - * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep - debug and special sections when no non-note alloc sections in an - object are kept. - -2017-05-18 Alan Modra - - * arc-got.h: Don't compare boolean values against TRUE or FALSE. - * elf-m10300.c: Likewise. - * elf.c: Likewise. - * elf32-arc.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-m68k.c: Likewise. - * elf32-nds32.c: Likewise. - * elf32-tilepro.c: Likewise. - * elflink.c: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-riscv.c: Likewise. - * elfxx-tilegx.c: Likewise. - * mach-o.c: Likewise. - * peXXigen.c: Likewise. - * vms-alpha.c: Likewise. - * vms-lib.c: Likewise. - -2017-05-17 H.J. Lu - - PR ld/20882 - * elflink.c (elf_gc_mark_debug_section): New function. - (_bfd_elf_gc_mark_extra_sections): Mark any debug sections - referenced by kept debug sections. - -2017-05-16 Alan Modra - - * elf-m10300.c: Rename occurrences of non_ir_ref. - * elf32-arm.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-cr16.c: Likewise. - * elf32-cris.c: Likewise. - * elf32-d10v.c: Likewise. - * elf32-dlx.c: Likewise. - * elf32-fr30.c: Likewise. - * elf32-frv.c: Likewise. - * elf32-hppa.c: Likewise. - * elf32-i370.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-iq2000.c: Likewise. - * elf32-lm32.c: Likewise. - * elf32-m32c.c: Likewise. - * elf32-m32r.c: Likewise. - * elf32-m68hc1x.c: Likewise. - * elf32-m68k.c: Likewise. - * elf32-mcore.c: Likewise. - * elf32-metag.c: Likewise. - * elf32-microblaze.c: Likewise. - * elf32-moxie.c: Likewise. - * elf32-msp430.c: Likewise. - * elf32-mt.c: Likewise. - * elf32-nios2.c: Likewise. - * elf32-or1k.c: Likewise. - * elf32-ppc.c: Likewise. - * elf32-rl78.c: Likewise. - * elf32-s390.c: Likewise. - * elf32-score.c: Likewise. - * elf32-score7.c: Likewise. - * elf32-sh.c: Likewise. - * elf32-tic6x.c: Likewise. - * elf32-tilepro.c: Likewise. - * elf32-v850.c: Likewise. - * elf32-vax.c: Likewise. - * elf32-xstormy16.c: Likewise. - * elf32-xtensa.c: Likewise. - * elf64-alpha.c: Likewise. - * elf64-hppa.c: Likewise. - * elf64-ia64-vms.c: Likewise. - * elf64-mmix.c: Likewise. - * elf64-ppc.c: Likewise. - * elf64-s390.c: Likewise. - * elf64-sh64.c: Likewise. - * elf64-x86-64.c: Likewise. - * elflink.c: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-ia64.c: Likewise. - * elfnn-riscv.c: Likewise. - * elfxx-mips.c: Likewise. - * elfxx-sparc.c: Likewise. - * elfxx-tilegx.c: Likewise. - * linker.c: Likewise. - -2017-05-16 Alan Modra - - * elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic. - * elflink.c (elf_link_add_object_symbols): Update to use - non_ir_ref_dynamic. - (elf_link_input_bfd): Test non_ir_ref_dynamic in addition to - non_ir_ref. - * linker.c (_bfd_generic_link_add_one_symbol): Likewise. - -2017-05-15 Maciej W. Rozycki - - * elfxx-mips.c (print_mips_ases): Handle MIPS16e2 ASE. - -2017-05-12 H.J. Lu - - * elf32-i386.c (elf_i386_parse_gnu_properties): Merge - GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED - properties. - * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. - -2017-05-11 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_hash_entry): Rename plt_bnd - to plt_second. - (elf_x86_64_link_hash_table): Rename plt_bnd/plt_bnd_eh_frame - to plt_second/plt_second_eh_frame. - (elf_x86_64_link_hash_newfunc): Updated. - (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_plt_type): Rename plt_bnd to plt_second. - (elf_x86_64_get_synthetic_symtab): Updated. Also scan the - .plt.sec section. - (elf_backend_setup_gnu_properties): Updated. Create the - .plt.sec section instead of the .plt.sec section. - -2017-05-11 H.J. Lu - - * elf32-i386.c (elf_i386_allocate_dynrelocs): Partially revert - commit 25070364b0ce33eed46aa5d78ebebbec6accec7e. - * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewse. - -2017-05-10 Jose E. Marchesi - - * elf64-sparc.c (elf64_sparc_set_reloc): New function. - (bfd_elf64_set_reloc): Define. - (elf64_sparc_write_relocs): Use `canon_reloc_count'. - -2017-05-10 Jose E. Marchesi - - * targets.c (BFD_JUMP_TABLE_RELOCS): Add NAME##_set_reloc. - (struct bfd_target): New field _bfd_set_reloc. - * bfd.c (bfd_set_reloc): Call backend _set_bfd. - * reloc.c (_bfd_generic_set_reloc): New function. - * coffcode.h (coff_set_reloc): Define to _bfd_generic_set_reloc. - * nlm-target.h (nlm_set_reloc): Likewise. - * coff-rs6000.c (_bfd_xcoff_set_reloc): Likewise. - * aout-tic30.c (MY_set_reloc): Likewise. - * aout-target.h (MY_set_reloc): Likewise. - * elfxx-target.h (bfd_elfNN_set_reloc): Likewise. - * coff-alpha.c (_bfd_ecoff_set_reloc): Likewise. - * mach-o-target.c (bfd_mach_o_set_reloc): Likewise. - * vms-alpha.c (alpha_vms_set_reloc): Likewise. - * aout-adobe.c (aout_32_set_reloc): Likewise. - * bout.c (b_out_set_reloc): Likewise. - * coff-mips.c (_bfd_ecoff_set_reloc): Likewise. - * i386os9k.c (aout_32_set_reloc): Likewise. - * ieee.c (ieee_set_reloc): Likewise. - * oasys.c (oasys_set_reloc): Likewise. - * som.c (som_set_reloc): Likewise. - * versados.c (versados_set_reloc): Likewise. - * coff64-rs6000.c (rs6000_xcoff64_vec): Add - _bfd_generic_set_reloc. - (rs6000_xcoff64_aix_vec): LIkewise. - * libbfd.c (_bfd_norelocs_set_reloc): New function. - * libbfd-in.h: Prototype for _bfd_norelocs_set_reloc. - * i386msdos.c (msdos_set_reloc): Define to - _bfd_norelocs_set_reloc. - * elfcode.h (elf_set_reloc): Define. - * bfd-in2.h: Regenerated. - -2017-05-10 H.J. Lu - - PR ld/21481 - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Use .plt.bnd - for IFUNC function address. - -2017-05-10 Claudiu Zissulescu - - * elf32-arc.c (FEATURE_LIST_NAME): Define. - (CONFLICT_LIST): Likewise. - (opcode/arc-attrs.h): Include. - (arc_elf_print_private_bfd_data): Print OSABI v4 flag. - (arc_extract_features): New file. - (arc_stralloc): Likewise. - (arc_elf_merge_attributes): Likewise. - (arc_elf_merge_private_bfd_data): Use object attributes. - (bfd_arc_get_mach_from_attributes): New function. - (arc_elf_object_p): Use object attributes. - (arc_elf_final_write_processing): Likewise. - (elf32_arc_obj_attrs_arg_type): New function. - (elf32_arc_obj_attrs_handle_unknown): Likewise. - (elf32_arc_section_from_shdr): Likewise. - (elf_backend_obj_attrs_vendor): Define. - (elf_backend_obj_attrs_section): Likewise. - (elf_backend_obj_attrs_arg_type): Likewise. - (elf_backend_obj_attrs_section_type): Likewise. - (elf_backend_obj_attrs_handle_unknown): Likewise. - (elf_backend_section_from_shdr): Likewise. - -2017-05-09 Andrew Goedhart - - PR ld/21458 - * elf32-arm.c (elf32_arm_final_link_relocate): Set the bottom bit - of the value when resolving a R_ARM_THM_ALU_PREL_11_0 relocation - and the destination is a Thumb symbol. - -2017-05-08 H.J. Lu - - * elf32-i386.c (elf_i386_get_synthetic_symtab): Add missing - initializer to silence GCC 4.2. - * lf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. - -2017-05-08 H.J. Lu - - * elf64-x86-64.c (PLT_ENTRY_SIZE): Renamed to ... - (LAZY_PLT_ENTRY_SIZE): This. - (NON_LAZY_PLT_ENTRY_SIZE): New. - (elf_x86_64_plt0_entry): Renamed to ... - (elf_x86_64_lazy_plt0_entry): This. - (elf_x86_64_plt_entry): Renamed to ... - (elf_x86_64_lazy_plt_entry): This. - (elf_x86_64_bnd_plt0_entry): Renamed to ... - (elf_x86_64_lazy_bnd_plt0_entry): This. - (elf_x86_64_legacy_plt_entry): Removed. - (elf_x86_64_bnd_plt_entry): Renamed to ... - (elf_x86_64_lazy_bnd_plt_entry): This. - (elf_x86_64_legacy_plt2_entry): Renamed to ... - (elf_x86_64_non_lazy_plt_entry): This. - (elf_x86_64_bnd_plt2_entry): Renamed to ... - (elf_x86_64_non_lazy_bnd_plt_entry): This. - (elf_x86_64_eh_frame_plt): Renamed to ... - (elf_x86_64_eh_frame_lazy_plt): This. - (elf_x86_64_eh_frame_bnd_plt): Renamed to ... - (elf_x86_64_eh_frame_lazy_bnd_plt): This. - (elf_x86_64_eh_frame_plt_got): Renamed to ... - (elf_x86_64_eh_frame_non_lazy_plt): This. - (elf_x86_64_lazy_plt_layout): New. - (elf_x86_64_non_lazy_plt_layout): Likewise. - (elf_x86_64_plt_layout): Likewise. - (elf_x86_64_backend_data): Remove PLT layout information. Add - os for target system. - (GET_PLT_ENTRY_SIZE): Removed. - (elf_x86_64_lazy_plt): New. - (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_arch_bed): Updated. - (elf_x86_64_link_hash_table): Add plt, lazy_plt and non_lazy_plt. - (elf_x86_64_create_dynamic_sections): Removed. - (elf_x86_64_check_relocs): Don't check elf.dynobj. Don't call - _bfd_elf_create_ifunc_sections nor _bfd_elf_create_got_section. - (elf_x86-64_adjust_dynamic_symbol): Updated. - (elf_x86_64_allocate_dynrelocs): Updated. Pass 0 as PLT header - size to _bfd_elf_allocate_ifunc_dyn_relocs and don't allocate - size for PLT0 if there is no PLT0. Get plt_entry_size from - non_lazy_plt for non-lazy PLT entries. - (elf_x86_64_size_dynamic_sections): Updated. Get plt_entry_size - from non_lazy_plt for non-lazy PLT entries. - (elf_x86-64_relocate_section): Updated. Properly get PLT index - if there is no PLT0. - (elf_x86_64_finish_dynamic_symbol): Updated. Fill the first slot - in the PLT entry with generic PLT layout. Fill the non-lazy PLT - entries with non-lazy PLT layout. Don't fill the second and third - slots in the PLT entry if there is no PLT0. - (elf_x86_64_finish_dynamic_sections): Updated. Don't fill PLT0 - if there is no PLT0. Set sh_entsize on the .plt.got section. - (compare_relocs): New. - (elf_x86_64_plt_type): Likewise. - (elf_x86_64_plt): Likewise. - (elf_x86_64_nacl_plt): New. Forward declaration. - (elf_x86_64_get_plt_sym_val): Removed. - (elf_x86_64_get_synthetic_symtab): Rewrite to check PLT sections - against all dynamic relocations. - (elf_x86_64_link_setup_gnu_properties): New function. - (elf_backend_create_dynamic_sections): Updated. - (elf_backend_setup_gnu_properties): New. - (elf_x86_64_nacl_plt): New. - (elf_x86_64_nacl_arch_bed): Updated. - -2017-05-08 H.J. Lu - - * elf32-i386.c (PLT_ENTRY_SIZE): Renamed to ... - (LAZY_PLT_ENTRY_SIZE): This. - (NON_LAZY_PLT_ENTRY_SIZE): New. - (elf_i386_plt0_entry): Renamed to ... - (elf_i386_lazy_plt0_entry): This. - (elf_i386_plt_entry): Renamed to ... - (elf_i386_lazy_plt_entry): This. - (elf_i386_pic_plt0_entry): Renamed to ... - (elf_i386_pic_lazy_plt0_entry): This. - (elf_i386_pic_plt_entry): Renamed to ... - (elf_i386_pic_lazy_plt_entry): This. - (elf_i386_got_plt_entry): Renamed to ... - (elf_i386_non_lazy_plt_entry): This. - (elf_i386_pic_got_plt_entry): Renamed to ... - (elf_i386_pic_non_lazy_plt_entry): This. - (elf_i386_eh_frame_plt): Renamed to ... - (elf_i386_eh_frame_lazy_plt): This. - (elf_i386_eh_frame_plt_got): Renamed to ... - (elf_i386_eh_frame_non_lazy_plt): This. - (elf_i386_plt_layout): Renamed to ... - (elf_i386_lazy_plt_layout): This. Remove eh_frame_plt_got and - eh_frame_plt_got_size. - (elf_i386_non_lazy_plt_layout): New. - (elf_i386_plt_layout): Likewise. - (elf_i386_non_lazy_plt): Likewise. - (GET_PLT_ENTRY_SIZE): Removed. - (elf_i386_plt): Renamed to ... - (elf_i386_lazy_plt): This. - (elf_i386_backend_data): Remove plt. Rename is_vxworks to os. - (elf_i386_arch_bed): Updated. - (elf_i386_link_hash_table): Add plt, lazy_plt and non_lazy_plt. - (elf_i386_create_dynamic_sections): Removed. - (elf_i386_check_relocs): Don't check elf.dynobj. Don't call - _bfd_elf_create_ifunc_sections nor _bfd_elf_create_got_section. - (elf_i386_adjust_dynamic_symbol): Updated. - (elf_i386_allocate_dynrelocs): Updated. Pass 0 as PLT header - size to _bfd_elf_allocate_ifunc_dyn_relocs and don't allocate - size for PLT0 if there is no PLT0. - (elf_i386_size_dynamic_sections): Updated. Check whether GOT - output section is discarded only if GOT isn't empty. - (elf_i386_relocate_section): Updated. Properly get PLT index - if there is no PLT0. - (elf_i386_finish_dynamic_symbol): Updated. Don't fill the - second and third slots in the PLT entry if there is no PLT0. - (elf_i386_finish_dynamic_sections): Updated. Don't fill PLT0 - if there is no PLT0. Set sh_entsize on the .plt.got section. - (elf_i386_nacl_plt): Forward declaration. - (elf_i386_get_plt_sym_val): Removed. - (elf_i386_get_synthetic_symtab): Rewrite to check PLT sections - against all dynamic relocations. - (elf_i386_link_setup_gnu_properties): New function. - (elf_backend_create_dynamic_sections): Updated. - (elf_backend_setup_gnu_properties): New. - (elf_i386_nacl_plt): Updated. - (elf_i386_nacl_arch_bed): Likewise. - (elf_i386_vxworks_arch_bed): Likewise. - -2017-05-08 Thomas Preud'homme - - * elflink.c (elf_output_implib): Remove executable flag from import - library bfd. - * elf32-arm.c (elf32_arm_filter_implib_symbols): Assert that the import - library is a relocatable object file. - -2017-05-01 Senthil Kumar Selvaraj - - PR ld/21404 - * elf32-avr.c (avr_should_move_sym): New function. - (avr_should_reduce_sym_size): Likewise. - (avr_should_increase_sym_size): Likewise. - (elf32_avr_relax_delete_bytes): Adjust symbol values - and sizes by calling new functions. - -2017-05-01 Palmer Dabbelt - - * config.bfd (riscv32-*): Enable rv64. - -2017-05-02 Alan Modra - - PR 21384 - * elflink.c (bfd_elf_link_mark_dynamic_symbol): Test h->non_elf - rather than h->root.type == bfd_link_hash_new. - (bfd_elf_record_link_assignment): Similarly, call - bfd_elf_link_mark_dynamic_symbol when h->non_elf. - -2017-04-29 Alan Modra - - PR 21432 - * reloc.c (reloc_offset_in_range): New function. - (bfd_perform_relocation, bfd_install_relocation): Use it. - (_bfd_final_link_relocate): Likewise. - -2017-04-28 H.J. Lu - - * elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got - before using .plt.got. - * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. - -2017-04-27 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "=" - instead of "+=" to update 0. - -2017-04-27 H.J. Lu - - * elf32-i386.c (elf_i386_create_dynamic_sections): Create the - .plt.got section here. - (elf_i386_check_relocs): Don't create the .plt.got section. - * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create - the .plt.got and .plt.bnd sections here. - (elf_x86_64_check_relocs): Don't create the .plt.got nor - .plt.bnd sections. - -2017-04-27 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove - has_bnd_reloc. - (elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc. - (elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc. - (elf_x86_64_check_relocs): Don't set has_bnd_reloc. - (elf_x86_64_finish_dynamic_symbol): Check bndplt instead of - has_bnd_reloc. - -2017-04-27 H.J. Lu - - * elf-bfd.h (elf_backend_data): Change setup_gnu_properties - to return bfd *. - (_bfd_elf_link_setup_gnu_properties): Return bfd *. - * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return - the first relocatable ELF input with GNU properties. - -2017-04-27 H.J. Lu - - * elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify - VxWorks for non-PIC. - -2017-04-27 Alan Modra - - * elf-bfd.h (struct elf_backend_data): Make asection param of - elf_backend_eh_frame_address_size const. - (_bfd_elf_eh_frame_address_size): Likewise. - * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise. - * elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise. - * elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise. - * elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise. - * elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise. - (next_cie_fde_offset): Constify params. - (offset_adjust, adjust_eh_frame_local_symbols): Likewise. - -2017-04-27 Alan Modra - - * elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len. - (_bfd_elf_adjust_eh_frame_global_symbol): Declare. - * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and - aug_data_len. - (offset_adjust): New function. - (_bfd_elf_adjust_eh_frame_global_symbol): Likewise. - (adjust_eh_frame_local_symbols): Likewise. - (_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols - after changing anything. Return true if anything changed. - * elflink.c (bfd_elf_discard_info): If .eh_frame changed, call - _bfd_elf_adjust_eh_frame_global_symbol for globals. - -2017-04-27 Alan Modra - - * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index - when force_local. - -2017-04-27 Alan Modra - - * elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. - (ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it. - (ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise. - (ppc_elf_relocate_section): Likewise. Delete silly optimisation - for undef and undefweak dyn_relocs. - * elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. - (ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it. - (allocate_got, allocate_dynrelocs): Likewise. - (ppc64_elf_relocate_section): Likewise. - -2017-04-26 H.J. Lu - - * elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add - DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section. - * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys - add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section. - -2017-04-26 Nick Clifton - - PR binutils/21434 - * reloc.c (bfd_perform_relocation): Check for a negative address - in the reloc. - -2017-04-26 Maciej W. Rozycki - - PR ld/21334 - * elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms' - member. - * elfxx-target.h [!elf_backend_always_renumber_dynsyms] - (elf_backend_always_renumber_dynsyms): Define. - (elfNN_bed): Initialize `always_renumber_dynsyms' member. - * elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define. - * elflink.c (bfd_elf_size_dynamic_sections): Also call - `_bfd_elf_link_renumber_dynsyms' if the backend has requested - it. - (bfd_elf_size_dynsym_hash_dynstr): Likewise. - -2017-04-26 Maciej W. Rozycki - - * elflink.c (bfd_elf_size_dynamic_sections): Only call - `_bfd_elf_link_renumber_dynsyms' after section GC if dynamic - sections have been created. - -2017-04-26 Nick Clifton - - PR binutils/21431 - * compress.c (bfd_init_section_compress_status): Check the return - value from bfd_malloc. - -2017-04-24 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add - no_finish_dynamic_symbol. - (elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to - 0. - (elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined - weak symbol, don't make it dynamic. - (elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC, - set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE - relocation for GOT reference. - (elf_x86_64_finish_dynamic_symbol): Abort if - no_finish_dynamic_symbol isn't 0. - -2017-04-24 H.J. Lu - - PR ld/21402 - * elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't - undefined weak symbol, don't make it dynamic. - (elf_i386_relocate_section): If a symbol isn't dynamic in PIC, - set no_finish_dynamic_symbol and generate R_386_RELATIVE - relocation for R_386_GOT32. - -2017-04-24 H.J. Lu - - PR ld/21425 - * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks. - -2017-04-23 Alan Modra - - PR 21414 - * section.c (GLOBAL_SYM_INIT): Make available in bfd.h. - * elf.c (lcomm_sym): New. - (_bfd_elf_large_com_section): Use lcomm_sym section symbol. - * bfd-in2.h: Regenerate. - -2017-04-23 Alan Modra - - PR 21412 - * elf-bfd.h (struct elf_backend_data ): Change - parameters and comment. - (_bfd_elf_get_reloc_section): Delete. - (_bfd_elf_plt_get_reloc_section): Declare. - * elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section): - New functions. Don't blindly skip over assumed .rel/.rela prefix. - Extracted from.. - (_bfd_elf_get_reloc_section): ..here. Delete. - (assign_section_numbers): Call elf_get_reloc_section. - * elf64-ppc.c (elf_backend_get_reloc_section): Define. - * elfxx-target.h (elf_backend_get_reloc_section): Update. - -2017-04-23 Alan Modra - - PR 21409 - * dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when - no symbols. - -2017-04-21 H.J. Lu - - PR ld/21402 - * elf32-i386.c (elf_i386_link_hash_entry): Add - no_finish_dynamic_symbol. - (elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0. - (elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak - symbol, don't make it dynamic in PIE. - (elf_i386_relocate_section): If a symbol isn't dynamic in PIE, - set no_finish_dynamic_symbol and generate R_386_RELATIVE - relocation for R_386_GOT32 - (elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol - isn't 0. - -2017-04-21 H.J. Lu - - PR ld/19617 - PR ld/21086 - * elflink.c (elf_link_add_object_symbols): Require - --no-dynamic-linker with -E/--dynamic-list when creating - dynamic sections. - -2017-04-20 Maciej W. Rozycki - - * elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE - if forced local. - -2017-04-20 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about - dynamic symbol sorting. - -2017-04-20 H.J. Lu - - PR ld/21382 - * elflink.c (elf_link_add_object_symbols): Preserve - dynamic_ref_after_ir_def when restoring the symbol table for - unneeded dynamic object. - -2017-04-19 H.J. Lu - - PR ld/21401 - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort - on on undefined IFUNC symbol in the second PLT. - -2017-04-19 Wedson Almeida Filho - - * peXXigen.c (pe_print_reloc): Correct chunk_end. - -2017-04-19 Alan Modra - - * elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak - or make dynamic for info->dynamic_undefined_weak 0 and 1. - * elf32-ppc.c:Formatting. - (ensure_undefweak_dynamic): Don't make dynamic when - info->dynamic_undefined_weak is zero. - (allocate_dynrelocs): Discard undefweak dyn_relocs for - info->dynamic_undefined_weak. Discard undef dyn_relocs when - not default visibility. Discard undef and undefweak - dyn_relocs earlier. - (ppc_elf_relocate_section): Adjust to suit. - * elf64-ppc.c: Formatting. - (ensure_undefweak_dynamic): Don't make dynamic when - info->dynamic_undefined_weak is zero. - (allocate_dynrelocs): Discard undefweak dyn_relocs for - info->dynamic_undefined_weak. Discard them earlier. - -2017-04-17 H.J. Lu - - PR ld/21389 - * elflink.c (bfd_elf_size_dynamic_sections): Get soname index - before generating the version definition section. - -2017-04-17 Alan Modra - - * elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking - state when a regular object file defines a symbol with - incompatible type to that defined by an earlier shared lib. - -2017-04-13 Alan Modra - - * coffcode.h: Wrap some overly long _bfd_error_handler args. - * elf.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-mep.c: Likewise. - * elf64-ia64-vms.c: Likewise. - * elf64-x86-64.c: Likewise. - * elflink.c: Likewise. - * elfnn-ia64.c: Likewise. - * elfxx-mips.c: Likewise. - -2017-04-13 Alan Modra - - * aoutx.h: Use %B and %A in error messages throughout file. - * aout-cris.c: Likewise. - * archive.c: Likewise. - * binary.c: Likewise. - * coff-rs6000.c: Likewise. - * coff-tic4x.c: Likewise. - * coffcode.h: Likewise. - * coffgen.c: Likewise. - * cofflink.c: Likewise. - * coffswap.h: Likewise. - * cpu-arm.c: Likewise. - * elf-eh-frame.c: Likewise. - * elf-m10300.c: Likewise. - * elf.c: Likewise. - * elf32-arc.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-frv.c: Likewise. - * elf32-iq2000.c: Likewise. - * elf32-m32c.c: Likewise. - * elf32-microblaze.c: Likewise. - * elf32-nds32.c: Likewise. - * elf32-rl78.c: Likewise. - * elf32-rx.c: Likewise. - * elf32-score.c: Likewise. - * elf32-score7.c: Likewise. - * elf32-sh64.c: Likewise. - * elf32-v850.c: Likewise. - * elf32-vax.c: Likewise. - * elf32-visium.c: Likewise. - * elf64-ia64-vms.c: Likewise. - * elf64-mmix.c: Likewise. - * elf64-sh64.c: Likewise. - * elfcode.h: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-ia64.c: Likewise. - * elfxx-mips.c: Likewise. - * hpux-core.c: Likewise. - * ieee.c: Likewise. - * ihex.c: Likewise. - * linker.c: Likewise. - * merge.c: Likewise. - * mmo.c: Likewise. - * oasys.c: Likewise. - * pdp11.c: Likewise. - * peXXigen.c: Likewise. - * rs6000-core.c: Likewise. - * vms-alpha.c: Likewise. - * xcofflink.c: Likewise. - -2017-04-13 Alan Modra - - * bfd.c (PRINT_TYPE): Define. - (_doprnt): New function. - (error_handler_internal): Use _doprnt. - * coff-arm.c: Put %A and %B arguments to _bfd_error_handler - calls in their natural order, throughout file. - * coff-mcore.c: Likewise. - * coff-ppc.c: Likewise. - * coff-tic80.c: Likewise. - * cofflink.c: Likewise. - * elf-s390-common.c: Likewise. - * elf.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-m32r.c: Likewise. - * elf32-msp430.c: Likewise. - * elf32-spu.c: Likewise. - * elf64-ia64-vms.c: Likewise. - * elf64-sparc.c: Likewise. - * elf64-x86-64.c: Likewise. - * elflink.c: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-ia64.c: Likewise. - * elfxx-mips.c: Likewise. - -2017-04-13 Alan Modra - - * elf32-arm.c (arm_type_of_stub): Supply missing args to "long - branch veneers" error. Fix double space and format message. - * elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg. - * elf64-ppc.c (tocsave_find): Supply missing %B arg. - -2017-04-13 Alan Modra - - * bfd-in2.h: Regenerate. - -2017-04-11 H.J. Lu - - * elf-properties.c (_bfd_elf_parse_gnu_properties): Remove the - extra `\n' in warning/error messages. - * elf32-i386.c (elf_i386_parse_gnu_properties): Likewise. - * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. - -2017-04-11 H.J. Lu - - * elf-properties.c (_bfd_elf_parse_gnu_properties): Ignore - processor-specific properties with generic ELF target vector. - -2017-04-10 Qing Zhao - - * elf32-sparc.c (elf_backend_fixup_symbol): New. - * elf64-sparc.c (elf_backend_fixup_symbol): New. - * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. - (_bfd_sparc_elf_link_hash_entry): Add has_got_reloc and - has_non_got_reloc. - (link_hash_newfunc): Initialize has_got_reloc and - has_non_got_reloc. - (_bfd_sparc_elf_size_dynamic_sections): Set interp to .interp - section. - (_bfd_sparc_elf_copy_indirect_symbol): Copy has_got_reloc and - has_non_got_reloc. - (_bfd_sparc_elf_check_relocs): Set has_got_reloc and - has_non_got_reloc. - (_bfd_sparc_elf_fixup_symbol): New function. - (allocate_dynrelocs): Don't allocate space for dynamic - relocations and discard relocations against resolved undefined - weak symbols in executable. Don't make resolved undefined weak - symbols in executable dynamic. Keep dynamic non-GOT/non-PLT - relocation against undefined weak symbols in PIE. - (_bfd_sparc_elf_relocate_section): Don't generate dynamic - relocations against resolved undefined weak symbols in PIE - (_bfd_sparc_elf_finish_dynamic_symbol): Keep PLT/GOT entries - without ynamic PLT/GOT relocations for resolved undefined weak - symbols. - Don't generate dynamic relocation against resolved undefined - weak symbol in executable. - (pie_finish_undefweak_symbol): New function. - (_bfd_sparc_elf_finish_dynamic_sections): Call - pie_finish_undefweak_symbol on all symbols in PIE. - * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add interp. - (_bfd_sparc_elf_fixup_symbol): New function. - -2017-04-10 Nick Clifton - - * config.bfd: Remove ns32k from obsolete list. - -2017-04-10 Alan Modra - - PR 21287 - * elf.c (special_sections_f): Match .fini_array and .fini_array.*. - (special_sections_i): Likewise for .init_array. - (special_sections_p): Likewise for .preinit_array. - -2017-04-07 H.J. Lu - - PR ld/19579 - PR ld/21306 - * elf32-s390.c (elf_s390_finish_dynamic_symbol): Check - ELF_COMMON_DEF_P for common symbols. - * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. - * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. - * elflink.c (_bfd_elf_merge_symbol): Revert commits - 202ac193bbbecc96a4978d1ac3d17148253f9b01 and - 07492f668d2173da7a2bda3707ff0985e0f460b6. - -2017-04-07 Pedro Alves - - * opncls.c (bfd_get_debug_link_info): Rename to... - (bfd_get_debug_link_info_1): ... this. Change type of second - parameter to void pointer. Adjust. - (bfd_get_debug_link_info): Reimplement on top of - bfd_get_debug_link_info_1. - (separate_debug_file_exists, separate_alt_debug_file_exists): - Change type of second parameter to void pointer. Adjust. - (get_func_type, check_func_type): Change type of second parameter - to void pointer. - (find_separate_debug_file): Add 'func_data' parameter. Pass it to - the callback functions instead of passing the address of a local. - (bfd_follow_gnu_debuglink): Pass address of unsigned long local to - find_separate_debug_file. - (get_alt_debug_link_info_shim): Change type of second parameter to - void pointer. Adjust. - (bfd_follow_gnu_debugaltlink): Adjust to pass NULL to - find_separate_debug_file. - (get_build_id_name, bfd_boolean check_build_id_file): Change type - of second parameter to void pointer. Adjust. - (bfd_follow_build_id_debuglink): Pass address of bfd_build_id - pointer local to find_separate_debug_file. - -2017-04-07 Tristan Gingold - - * coffgen.c (_bfd_coff_gc_mark_hook): Handle PE weak - external symbols with a definition. - (_bfd_coff_gc_mark_extra_sections): Fix typo. - -2017-04-07 Alan Modra - - * po/SRC-POTFILES.in: Regenerate. - -2017-04-05 Alan Modra - - * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT - reference counting. - -2017-04-02 Jon Turney - - (_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than - numbers for DataDirectory entry indicies passed to - add_data_entry(). - -2017-04-04 H.J. Lu - - * elf.c (get_program_header_size): Add a GNU_MBIND segment for - each GNU_MBIND section and align GNU_MBIND section to page size. - (_bfd_elf_map_sections_to_segments): Create a GNU_MBIND - segment for each GNU_MBIND section. - (_bfd_elf_init_private_section_data): Copy sh_info from input - for GNU_MBIND section. - -2017-04-03 Palmer Dabbelt - - * elfnn-riscv.c (GP_NAME): Delete. - (riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL. - (_bfd_riscv_relax_lui): Likewise. - -2017-04-04 Nick Clifton - - PR binutils/21342 - * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer - dereference. - (bfd_elf_final_link): Only initialize the extended symbol index - section if there are extended symbol tables to list. - -2017-04-03 H.J. Lu - - * Makefile.am (BFD32_BACKENDS): Add elf-properties.lo. - (BFD32_BACKENDS_CFILES): Add elf-properties.c. - * configure.ac (elf): Add elf-properties.lo. - * Makefile.in: Regenerated. - * configure: Likewise. - * elf-bfd.h (elf_property_kind): New. - (elf_property): Likewise. - (elf_property_list): Likewise. - (elf_properties): Likewise. - (_bfd_elf_parse_gnu_properties): Likewise. - (_bfd_elf_get_property): Likewise. - (_bfd_elf_link_setup_gnu_properties): Likewise. - (elf_backend_data): Add parse_gnu_properties, merge_gnu_properties - and setup_gnu_properties. - (elf_obj_tdata): Add properties. - * elf-properties.c: New file. - * elf32-i386.c (elf_i386_parse_gnu_properties): New. - (elf_i386_merge_gnu_properties): Likewise. - (elf_backend_parse_gnu_properties): Likewise. - (elf_backend_merge_gnu_properties): Likewise. - * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. - (elf_x86_64_merge_gnu_properties): Likewise. - (elf_backend_parse_gnu_properties): Likewise. - (elf_backend_merge_gnu_properties): Likewise. - * elfxx-target.h (elf_backend_merge_gnu_properties): Likewise. - (elf_backend_parse_gnu_properties): Likewise. - (elf_backend_setup_gnu_properties): Likewise. - (elfNN_bed): Add elf_backend_parse_gnu_properties, - elf_backend_merge_gnu_properties and - elf_backend_setup_gnu_properties. - -2017-03-30 Pip Cet - - * elf32-wasm32.c: Add relocation code, two relocs. - * reloc.c: Add wasm32 relocations. - * libbfd.h: Regenerate. - * bfd-in2.h: Regenerate. - * bfd/po/bfd.pot: Regenerate. - -2017-03-29 Nick Clifton - - PR binutils/18025 - * coff-bfd.h (struct coff_section_data): Add new fields: - saved_bias and bias. - * coffgen.c (coff_find_nearest_line_with_names): Cache the bias - computed for PE binaries. - * dwarf2.c (scan_unit_for_symbols): Only warn once about each - missing abbrev. - -2017-03-28 Hans-Peter Nilsson - - PR ld/16044 - * elf32-cris.c (elf_cris_adjust_gotplt_to_got): Adjust BFD_ASSERT - to handle a local symbol with a hash-symbol-entry; without PLT. - Add BFD_ASSERT for an incidental case with GOT entry present. - (cris_elf_check_relocs): Increment PLT refcount only if the symbol - isn't forced-or-set local. - -2017-03-27 Pip Cet - - * wasm-module.c: New file to support WebAssembly modules. - * wasm-module.h: New file to support WebAssembly modules. - * doc/webassembly.texi: Start documenting wasm-module.c. - * config.bfd: Add wasm_vec. - * targets.c: Likewise. - * configure.ac: Likewise. - * Makefile.am: Add entries for wasm-module.c. - * Makefile.in: Regenerate. - * configure: Regenerate. - * po/SRC-POTFILES.in: Regenerate. - -2017-03-27 Pip Cet - - * cpu-wasm32.c: New file to support wasm32 architecture. - * elf32-wasm32.c: New file to support wasm32 architecture. - * Makefile.am: Add wasm32 architecture. - * archures.c: Likewise. - * config.bfd: Likewise. - * configure.ac: Likewise. - * targets.c: Likewise. - * Makefile.in: Regenerate. - * bfd-in2.h: Regenerate. - * configure: Regenerate. - * po/SRC-POTFILES.in: Regenerate. - -2017-03-20 Alan Modra - - PR 21266 - * elf64-ppc.c (compare_symbols): Stabilize sort. - -2017-03-18 Alan Modra - - * elf64-ppc.c (struct ppc_link_hash_table): Add - local_ifunc_resolver and maybe_local_ifunc_resolver. - (ppc_build_one_stub): Set flags on emitting dynamic - relocation to ifunc. - (ppc64_elf_relocate_section): Likewise. - (ppc64_elf_finish_dynamic_symbol): Likewise. - (ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with - local dynamic relocs to ifuncs. - * elf32-ppc.c (struct ppc_elf_link_hash_table): Add - local_ifunc_resolver and maybe_local_ifunc_resolver. - (ppc_elf_relocate_section): Set flag on emitting dynamic - relocation to ifuncs. + * elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier. + (CRSETEQ, BEQCTRM): Define. + (is_nonpic_glink_stub): Don't check bctr. + (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. + (ppc_elf_relax_section): Size speculation barrier. + (output_bctr): New function. + (write_glink_stub): Use output_bctr. + (ppc_elf_relocate_section): Use output_bctr for long branch stub. (ppc_elf_finish_dynamic_symbol): Likewise. - (ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local - dynamic relocs to ifuncs. - -2017-03-13 Nick Clifton - - PR binutils/21202 - * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to - BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. - (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to - BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc - names. - (IS_AARCH64_TLSDESC_RELOC): Likewise. - (elfNN_aarch64_howto_table): Likewise. - (aarch64_tls_transition_without_check): Likewise. - (aarch64_reloc_got_type): Likewise. - (elfNN_aarch64_final_link_relocate): Likewise. - (elfNN_aarch64_tls_relax): Likewise. - (elfNN_aarch64_relocate_section): Likewise. - (elfNN_aarch64_gc_sweep_hook): Likewise. - (elfNN_aarch64_check_relocs): Likewise. - * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. - (_bfd_aarch64_elf_resolve_relocation): Likewise. - -2017-03-11 Alan Modra - - * elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function - parameter is in fact used. Whitespace fixes. - * elf64-ppc.c: Likewise. - -2017-03-09 Sam Thursfield - - * rs6000-core.c (CORE_NEW): Simplify macro when - AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning. - -2017-03-07 Alan Modra - - PR 21224 - PR 20519 - * elf64-ppc.c (ppc64_elf_relocate_section): Add missing - dyn_relocs check. - -2017-03-05 Alan Modra - - * elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8. - * elf-eh-frame.c (size_of_output_cie_fde): Don't align here. - (next_cie_fde_offset): New function. - (_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8. - (_bfd_elf_discard_section_eh_frame): Align zero terminator to - four bytes. Align CIEs to four or eight bytes depending on - per_encoding_aligned8. Align FDEs according to their encoding. - Pad last FDE to output section alignment. - (_bfd_elf_write_section_eh_frame): Adjust to suit. Remove - assertion. - * elf64-ppc.c (glink_eh_frame_cie): Delete padding. - (ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c. - (ppc64_elf_finish_dynamic_sections): Adjust to suit. - -2017-03-02 Martin Bickel - - PR ld/21212 - * elf.c (rewrite_elf_program_header): Do not issue a warning for - empty segments which have a zero filesz, but a non-zero memsz. - -2017-03-02 Alan Modra - - * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo. - -2017-02-28 Alan Modra - - * elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change. - (ppc64_elf_relocate_section): Likewise. - -2017-02-28 Alan Modra - - PR 20995 - * elf32-nios2.c (nios2_elf32_relocate_section): Use htab - rather than elf32_nios2_hash_table or elf_hash_table. - (create_got_section): Likewise. - (nios2_elf32_finish_dynamic_symbol): Likewise. - (nios2_elf32_adjust_dynamic_symbol): Likewise. - (nios2_elf32_size_dynamic_sections): Likewise. - (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot - vars. Use htab equivalents directly instead. Don't create - all dynamic sections on needing just the GOT. Use a goto - rather than a fall-through with reloc test. Ensure - htab->dynobj is set when making dynamic sreloc section. - (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab - equivalent directly instead. Don't segfault on looking for - .dynamic when dynamic sections have not been created. Don't - segfault on .got.plt being discarded. - (nios2_elf32_size_dynamic_sections): Delete plt and got vars. - Don't set "relocs" on .rela.plt. Do handle .sbss. Delete - fixme and another not so relevant comment. - (nios2_elf_add_symbol_hook): Delete dynobj var. If not - already set, set hash table dynobj on creating .sbss. - -2017-02-28 Alan Modra - - * reloc.c (BFD_RELOC_PPC_16DX_HA): New. - * elf64-ppc.c (ppc64_elf_howto_raw ): New howto. - (ppc64_elf_reloc_type_lookup): Translate new bfd reloc. - (ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA. - (ppc64_elf_relocate_section): Likewise. - * elf32-ppc.c (ppc_elf_howto_raw ): New howto. - (ppc_elf_reloc_type_lookup): Translate new bfd reloc. - (ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc. - * libbfd.h: Regenerate. - * bfd-in2.h: Regenerate. - -2017-02-28 Alan Modra - - * elflink.c (_bfd_elf_create_dynamic_sections): Don't make - dynamic .data.rel.ro read-only. - * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section - rather than section flags when deciding where copy reloc goes. - * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise. - * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise. - * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise. - * elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise. - * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise. - * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise. - * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise. - * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise. - * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. - * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise. - * elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise. - * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise. - * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. - * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. - * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise. - * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise. - * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. - * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise. - * elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise. - -2017-02-28 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_perform_relocation): Also handle the - `jalr $0, $25' instruction encoding. - -2017-02-27 Nick Clifton - - PR ld/21180 - * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Avoid - generating a seg-fault when encountering a symbol that has been - deleted by garbage collection. - -2017-02-25 Alan Modra - - * elf32-arc.c (struct dynamic_sections): Delete. - (enum dyn_section_types): Delete. - (dyn_section_names): Delete. - (arc_create_dynamic_sections): Delete. - (elf_arc_finish_dynamic_sections): Don't call the above. Don't - segfault on discarded .rela.plt section. - (elf_arc_size_dynamic_sections): Formatting. Don't call - arc_create_dynamic_sections. Don't allocate memory for sections - handled by the generic linker. Correct code finding relocs in - read-only sections. Set SEC_EXCLUDE on zero size .got, - .got.plt, and .dynbss sections. Do set .interp for pies. - -2017-02-24 Andrew Waterman - - * elfnn-riscv.c (GP_NAME): New macro. - (riscv_global_pointer_value): Use it. - (_bfd_riscv_relax_lui): If symbol and global pointer are in same - output section, consider only that section's alignment. - -2017-02-23 Maciej W. Rozycki - - * elfxx-mips.h (_bfd_mips_relax_section): Remove prototype. - * elfxx-mips.c (_bfd_mips_relax_section): Remove function. - * elf64-mips.c (bfd_elf64_bfd_relax_section): Remove macro. - * elfn32-mips.c (bfd_elf32_bfd_relax_section): Likewise. - -2017-02-23 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation) - : Discard relocation if `cross_mode_jump_p' - or misaligned. - -2017-02-23 Alan Modra - - PR 20744 - * elf32-ppc.c (ppc_elf_howto_raw): Correct dst_mask on all VLE - 16D relocations. - (ppc_elf_vle_split16): Correct field mask and shift for 16D relocs. - (ppc_elf_relocate_section): Correct calculation for VLE SDAREL - relocs. - -2017-02-22 Maciej W. Rozycki - - PR ld/20828 - * elflink.c (bfd_elf_size_dynamic_sections): Move symbol version - processing ahead of the call to `elf_gc_sweep_symbol'. - -2017-02-22 Nick Clifton - - PR binutils/21193 - * opncls.c (bfd_create_gnu_debuglink_section): Give the newly - created section 4-byte alignment. - -2017-02-22 Alan Modra - - * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Don't segfault - on .got or .plt output section being discarded by script. - * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Likewise. Move - vxworks splt temp. - -2017-02-21 Alan Modra - - * elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only emit - DT_RELA, DT_RELASZ, and DT_RELAENT when DT_RELASZ is non-zero. - -2017-02-20 Alan Modra - - PR 21181 - * elflink.c (bfd_elf_final_link): Make DT_REL/DT_RELA zero - if DT_RELSZ/DT_RELASZ is zero. - -2017-02-17 Nick Clifton - - * compress.c (bfd_get_full_section_contents): Remember to reduce - compressed size by the sizeof the compression header when - decompressing the contents. - -2017-02-17 Pedro Alves - - * srec.c (Chunk): Rename to ... - (_bfd_srec_len): ... this. - (S3Forced): Rename to ... - (_bfd_srec_forceS3): ... this. - * objcopy.c: Adjust all references. - -2017-02-17 Pedro Alves - - * archive.c (bsd_write_armap): Rename to ... - (_bfd_bsd_write_armap): ... this. - (coff_write_armap): Rename to ... - (_bfd_coff_write_armap): ... this. - * libbfd-in.h (bsd_write_armap): Rename to ... - (_bfd_bsd_write_armap): ... this. - (coff_write_armap): Rename to ... - (_bfd_coff_write_armap): ... this. - * aout-target.h, aout-tic30.c: Adjust all users. - * libbfd.h: Regenerate. - -2017-02-17 Pedro Alves - - * bfd-in.h (bfd_read, bfd_write): Adjust to rename. - (warn_deprecated): Rename to ... - (_bfd_warn_deprecated): ... this. - * libbfd.c (warn_deprecated): Rename to ... - (_bfd_warn_deprecated): ... this. - * bfd-in2.h: Regenerate. - -2017-02-17 Pedro Alves - - * bfdio.c (real_ftell): Rename to ... - (_bfd_real_ftell): ... this. - (real_fseek): Rename to ... - (_bfd_real_fseek): ... this. - (real_fopen): Rename to ... - (_bfd_real_fopen): ... this. - * libbfd-in.h (real_ftell): Rename to ... - (_bfd_real_ftell): ... this. - (real_fseek): Rename to ... - (_bfd_real_fseek): ... this. - (real_fopen): Rename to ... - (_bfd_real_fopen): ... this. - * cache.c, dwarf2.c, opncls.c: Adjust all callers. - * libbfd.h: Regenerate. - -2017-02-17 Pedro Alves - - * dwarf2.c, elf-attrs.c, elf32-nds32.c: Adjust all callers. - * libbfd.c (read_unsigned_leb128): Rename to ... - (_bfd_read_unsigned_leb128): ... this. - (read_signed_leb128): Rename to ... - (_bfd_read_signed_leb128): ... this. - (safe_read_leb128): Rename to ... - (_bfd_safe_read_leb128): ... this. - * libbfd-in.h (read_unsigned_leb128): Rename to ... - (_bfd_read_unsigned_leb128): ... this. - (read_signed_leb128): Rename to ... - (_bfd_read_signed_leb128): ... this. - (safe_read_leb128): Rename to ... - (_bfd_safe_read_leb128): ... this. - * libbfd.h: Renegerate. - -2017-02-16 Andrew Burgess - - * dwarf2.c (_bfd_dwarf2_find_nearest_line): Perform symbol lookup - before trying to fine matching file and line information. - -2017-02-16 Andrew Burgess - - * dwarf2.c (struct dwarf2_debug): Add orig_bfd member. - (_bfd_dwarf2_slurp_debug_info): If stashed debug information does - not match current bfd, then reload debug information. Record bfd - we're loading debug info for in the stash. If we have debug - informatin in the cache then perform section placement before - returning. - -2017-02-16 Alan Modra - - PR 21000 - * elf-bfd.h (struct elf_backend_data): Add no_page_alias. - * elfxx-target.h (elf_backend_no_page_alias): Define. - (elfNN_bed): Init new field. - * elf.c (assign_file_positions_for_load_sections): If no_page_alias - ensure PT_LOAD segment starts on a new page. - * elf32-hppa.c (elf_backend_no_page_alias): Define. - -2017-02-16 Alan Modra - - PR 21132 - * elf32-hppa.c (allocate_plt_static): Allocate space for relocs - if pic. - -2017-02-16 Jiong Wang - - * bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED. - * bfd-in2.h: Regenerated. - -2017-02-15 H.J. Lu - - PR ld/21168 - * elf32-i386.c (elf_i386_relocate_section): Allow - "lea foo@GOT, %reg" in PIC. - -2017-02-15 H.J. Lu - - PR ld/20244 - * elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC - symbol name when reporting R_386_GOT32/R_386_GOT32X relocation - error against local IFUNC symbol without a base register for - PIC. - -2017-02-15 Maciej W. Rozycki - - * elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than - `%P: %H:' with `info->callbacks->einfo'. - (ppc_elf_relocate_section): Likewise. - * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. - (ppc64_elf_edit_toc): Likewise. - (ppc64_elf_relocate_section): Likewise. - -2017-02-14 Alan Modra - - * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support - --gc-keep-exported, and test versioned field of sym rather than - looking for @ in name. - -2017-02-13 Palmer Dabbelt - - * elfnn-riscv.c (riscv_global_pointer_value): Change _gp to - __global_pointer$. - -2017-02-13 Nick Clifton - - PR binutils/21151 - * dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid - unit length field. - -2017-02-07 Andrew Waterman - - * elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT - entry size if PLT header is written. - -2017-02-06 Sheldon Lobo - - Fix sparc64 dynamic relocation processing to use the dynamic - symbol count. - * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic' - to determine if bfd_get_symcount() or bfd_get_dynamic_symcount() - should be used. - -2017-02-03 Nick Clifton - - PR 21096 - * coffcode.h (coff_write_object_contents): Enlarge size of - s_name_buf in order to avoid compile time warning about possible - integer truncation. - * elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower - 32-bits of insn value before printing into buffer. - -2017-02-02 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_hash_sort_data): Add - `max_local_dynindx'. - (mips_elf_sort_hash_table): Handle it. - (mips_elf_sort_hash_table_f) : For forced local - symbols bump up `max_local_dynindx' rather than - `max_non_got_dynindx'. - -2017-02-02 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_hash_sort_data): Convert the - `min_got_dynindx', `max_unref_got_dynindx' and - `max_non_got_dynindx' members to the `bfd_size_type' data type. - (mips_elf_sort_hash_table): Adjust accordingly. - -2017-02-02 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout - to access the hash table. - -2017-02-02 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on - non-NULL `htab' to the beginning. - -2017-02-02 Maciej W. Rozycki - - * elflink.c (elf_gc_sweep): Wrap overlong line. - -2017-01-30 Maciej W. Rozycki - - * elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to... - (_bfd_mips_elf_linker_flags): ... this. Add another parameter. - * elfxx-mips.c (mips_elf_link_hash_table): Add - `ignore_branch_isa' member. - (mips_elf_perform_relocation): Do not treat an ISA mode mismatch - in branch relocation calculation as an error if - `ignore_branch_isa' has been set. - (_bfd_mips_elf_insn32): Rename to... - (_bfd_mips_elf_linker_flags): ... this. Rename the `on' - parameter to `insn32' and add an `ignore_branch_isa' parameter. - Handle the new parameter. - -2017-01-27 Hans-Peter Nilsson - - * elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused - local variable dynobj. - - PR ld/20995 - * elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro. - (elf_cris_adjust_dynamic_symbol): Place variables copied into the - executable from read-only sections into sdynrelro. - (elf_cris_finish_dynamic_symbol): Select sreldynrelro for - dynamic relocs in sdynrelro. - (elf_backend_want_dynrelro): Define. - -2017-01-25 Sebastian Huber - - * config.bfd (*-*-rtemsaout*): Mark as removed. - -2017-01-25 Sebastian Huber - - * config.bfd (powerpcle-*-rtems*): Do not mark as removed. - (arm-*-rtems*): Move to (arm*-*-eabi*). - (i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*). - (m68-*-rtems*): Move to (m68*-*-elf*). - -2017-01-25 Sebastian Huber - - * config.bfd (*-*-rtemscoff*): Mark as removed. - -2017-01-24 Maciej W. Rozycki - - PR ld/20828 - * elflink.c (bfd_elf_record_link_assignment): Revert last - change and don't ever clear `forced_local'. Set `mark' - unconditionally. - (elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within - file. - (elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'... - (bfd_elf_size_dynamic_sections): ... here. - * elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local' - and set `mark' instead in `__tls_get_addr_opt' processing. - * elf64-ppc.c (ppc64_elf_tls_setup): Likewise. - -2017-01-24 Alan Modra - - * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases - where dynamic relocs are preferable. Allow ifunc too. - (ensure_undefweak_dynamic): New function. - (allocate_dynrelocs): Use it here. Move plt handling last and - don't make symbols dynamic, simplifying loop. Only make undef - weak symbols with GOT entries dynamic. Correct condition - for GOT relocs. Handle dynamic relocs on ifuncs. Correct - comments. Remove goto. - (ppc_elf_relocate_section): Correct test for using dynamic - symbol on GOT relocs. Rearrange test for emitting GOT relocs - to suit. Set up explicit tls_index entries and implicit GOT - tls_index entries resolvable at link time for - __tls_get_addr_opt. Simplify test to clear mem for prelink. - * elf64-ppc.c (allocate_got): Correct condition for GOT relocs. - (ensure_undefweak_dynamic): New function. - (allocate_dynrelocs): Use it here. Only make undef weak symbols - with GOT entries dynamic. Remove unnecessary test of - WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling. - (ppc64_elf_relocate_section): Correct test for using dynamic - symbol on GOT relocs. Rearrange test for emitting GOT relocs - to suit. Set up explicit tls_index entries and implicit GOT - tls_index entries resolvable at link time for __tls_get_addr_opt. - Simplify expression to clear mem for prelink. - -2017-01-23 Yury Norov - - * elfnn-aarch64.c: Fix relaxations for ILP32 mode. - -2017-01-20 Jiong Wang - - * elfnn-aarch64.c (elf_aarch64_hash_symbol): New function. - (elf_backend_hash_symbol): Define. - -2017-01-18 Maciej W. Rozycki - - PR ld/20828 - * elflink.c (bfd_elf_record_link_assignment): Clear any - `forced_local' marking for DSO symbols that are not being - provided. - -2017-01-17 Kuan-Lin Chen - - * elfnn-riscv.c (riscv_elf_object_p): New function. - -2017-01-12 H.J. Lu - - PR ld/21038 - * elf64-x86-64.c (elf_x86_64_link_hash_table): Add - plt_bnd_eh_frame. - (elf_x86_64_check_relocs): Create .eh_frame section for the - .plt.bnd section. - (elf_x86_64_size_dynamic_sections): Allocate and initialize - .eh_frame section for the .plt.bnd section. - (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section - for the .plt.bnd section. - -2017-01-12 Nick Clifton - - PR binutils/20876 - * opncls.c (find_separate_debug_file): Add include_dirs - parameter. Only include the directory part of the bfd's filename - in search paths if include_dirs is true. Add a couple of extra - locations for looking for debug files. - ( bfd_follow_gnu_debuglink): Update invocation of - find_separate_debug_file. - (bfd_follow_gnu_debugaltlink): Likewise. - (get_build_id): New function: Finds the build-id of the given bfd. - (get_build_id_name): New function: Computes the name of the - separate debug info file for a bfd, based upon its build-id. - (check_build_id_file): New function: Checks to see if a separate - debug info file exists at the given location, and that its - build-id matches that of the original bfd. - (bfd_follow_build_id_debuglink): New function: Finds a separate - debug info file for a given bfd by using the build-id method. - * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id - method of locating a separate debug info file before using the - debuglink method. - * bfd-in2.h: Regenerate. - -2017-01-11 H.J. Lu - - PR ld/21038 - * elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New. - (elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and - elf_x86_64_eh_frame_plt_got. - (elf_x86_64_size_dynamic_sections): Get unwind info from - elf_x86_64_bnd_arch_bed for the BND PLT. - -2017-01-11 Jeremy Soller - - * config.bfd: Add entries for i686-redox and x86_64-redox. - -2017-01-10 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section - to 4 bytes. - * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align - .eh_frame section to 4 bytes for x32. - (elf_x86_64_check_relocs): Likewise. + (ppc_elf_finish_dynamic_sections): Use output_bctr. + * elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps. + * elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define. + (GLINK_PLTRESOLVE_SIZE): Size speculation barrier. + (size_global_entry_stubs): Handle speculation barrier sizing. + (plt_stub_size): Likewise. + (output_bctr): New function. + (build_plt_stub, build_tls_get_addr_stub): Output speculation + barrier. + (ppc_build_one_stub): Likewise for ppc_stub_plt_branch. + (ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch. + (build_global_entry_stubs): Output speculation barrier. + (ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub. + * elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps. + +2018-01-17 Alan Modra + + * elf32-ppc.c (GLINK_ENTRY_SIZE): Add parameters, handle + __tls_get_addr_opt, and alignment sizing. + (TLS_GET_ADDR_GLINK_SIZE): Delete. + (is_nonpic_glink_stub): Don't use GLINK_ENTRY_SIZE. + (ppc_elf_get_synthetic_symtab): Recognize stubs spaced at 4, 6, + or 8 insns. + (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. + (allocate_dynrelocs): Use new GLINK_ENTRY_SIZE. + (ppc_elf_size_dynamic_sections): Likewise. Size branch table + by PLT reloc count. + (write_glink_stub): Handle __tls_get_addr_opt stub. + Pad out to size given by GLINK_ENTRY_SIZE. + (ppc_elf_relocate_section): Adjust write_glink_stub call. + (ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_finish_dynamic_sections): Write PLTresolve without using + insn array since so many need rewriting. + * elf32-ppc.h (struct ppc_elf_params): Add plt_stub_align. + * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Rename from + GLINK_CALL_STUB_SIZE. Add htab param and evaluate to size without + nops. Adjust all uses. + (ppc64_elf_get_synthetic_symtab): Don't use GLINK_CALL_STUB_SIZE + in glink_vma calculation. + (struct ppc_link_hash_table): Add global_entry section pointer. + (create_linkage_sections): Create separate section for global + entry stubs. + (PPC_LO, PPC_HI, PPC_HA): Move earlier. + (size_global_entry_stubs): Handle sizing for aligned stubs. + (ppc64_elf_size_dynamic_sections): Handle global_entry alloc, + and don't stash end of glink branch table in rawsize. + (ppc_build_one_stub): Rewrite stub size calculations. + (build_global_entry_stubs): Use new section. + (ppc64_elf_build_stubs): Don't pad __glink_PLTresolve with nops. + Build lazy link stubs out to end of section. Build global entry + stubs in new section. + +2018-01-15 Nick Clifton + + * po/uk.po: Updated Ukranian translation. + +2018-01-13 Nick Clifton + + * po/bfd.pot: Regenerated. + +2018-01-13 Nick Clifton + + * version.m4: Bump version to 2.30.51 + * configure: Regenerate. -2017-01-10 H.J. Lu +2018-01-13 Nick Clifton - PR ld/20830 - * elf32-i386.c (elf_i386_eh_frame_plt_got): New. - (PLT_GOT_FDE_LENGTH): Likewise. - (elf_i386_plt_layout): Add eh_frame_plt_got and - eh_frame_plt_got_size. - (elf_i386_plt): Updated. - (elf_i386_link_hash_table): Add plt_got_eh_frame. - (elf_i386_check_relocs): Create .eh_frame section for .plt.got. - (elf_i386_size_dynamic_sections): Allocate and initialize - .eh_frame section for .plt.got. - (elf_i386_finish_dynamic_sections): Adjust .eh_frame section for - .plt.got. - (elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and - eh_frame_plt_got_size. - * elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New. - (PLT_GOT_FDE_LENGTH): Likewise. - (elf_x86_64_backend_data): Add eh_frame_plt_got and - eh_frame_plt_got_size. - (elf_x86_64_arch_bed): Updated. - (elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and - eh_frame_plt_got_size. - (elf_x86_64_nacl_arch_bed): Likewise. - (elf_x86_64_link_hash_table): Add plt_got_eh_frame. - (elf_x86_64_check_relocs): Create .eh_frame section for .plt.got. - (elf_x86_64_size_dynamic_sections): Allocate and initialize - .eh_frame section for .plt.got. - (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section - for .plt.got. + 2.30 branch created. -2017-01-10 H.J. Lu +2018-01-12 Jens Widell - * elf32-i386.c (elf_i386_size_dynamic_sections): Set - plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt. + * elf.c (setup_group): Optimize search for group by remembering + last found group and restarting search at that index. + * elf-bfd.h (struct elf_obj_tdata): Add group_search_offset field. -2017-01-09 Nick Clifton +2018-01-12 Gunther Nikl - * dwarf2.c (lookup_address_in_function_table): Return early if - there are no functions in the given comp unit, or if the high - address of the last function in the comp unit is less than the - desired address. + * aoutx.h (aout_link_check_ar_symbols): Remove default and handle + bfd_link_common_skip_none in switch. -2017-01-09 Nick Clifton +2018-01-12 Alan Modra - PR binutils/21013 - * coffgen.c (_bfd_coff_get_external_symbols): Generate an error - message if there are too many symbols to load. + PR ld/22649 + * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Ignore dynamic + references on forced local symbols. -2017-01-04 James Clarke +2018-01-12 Vlad Ivanov - * elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free - if relocs are cached. + * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when + .reginfo section has wrong size. -2017-01-03 Rich Felker +2018-01-11 H.J. Lu - PR ld/21017 - * elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry - for R_MICROBLAZE_GOTOFF_64. + PR ld/22393 + * elf.c (_bfd_elf_map_sections_to_segments): When generating + separate code and read-only data LOAD segments, create a new + LOAD segment if the previous section contains text and the + current section doesn't or vice versa. Don't put a writable + section in a read-only segment if there is a RELRO segment. -2017-01-03 Nick Clifton +2018-01-11 H.J. Lu - * mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time - warning about using a possibly uninitialised variable. + PR ld/22649 + * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Ignore dynamic + references on forced local symbols. -2017-01-02 Alan Modra +2018-01-11 H.J. Lu - * elf32-hppa.c (ensure_undef_weak_dynamic): New function. - (allocate_plt_static, allocate_dynrelocs): Use it. + PR ld/22677 + * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY, + INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-section. -2017-01-02 Alan Modra +2017-09-27 Kuan-Lin Chen - * elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for - .PARISC.unwind section. + PR 22662 + * elf32-nds32.c (nds32_elf_relax_loadstore): Fix a typographical error. -2017-01-02 Alan Modra +2018-01-03 John Baldwin - PR ld/20989 - * elfxx-sparc.c (gdop_relative_offset_ok): New function. - (_bfd_sparc_elf_relocate_section): Use it to validate GOT - indirect to GOT pointer relative code edit. + * elf.c (elfcore_grok_freebsd_note): Handle + NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and + NT_FREEBSD_PROCSTAT_VMMAP. -2017-01-02 Alan Modra +2018-01-03 Alan Modra Update year range in copyright notice of all files. -For older changes see ChangeLog-2016 +For older changes see ChangeLog-2017 -Copyright (C) 2017 Free Software Foundation, Inc. +Copyright (C) 2018 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright