2017-07-25 Tristan Gingold * version.m4: Bump version to 2.28.1 * configure: Regenerate. 2017-07-25 Tristan Gingold * development.sh: Set development to false. 2017-06-22 Eric Christopher Backport from mainline 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-20 Thomas Preud'homme Backport from mainline 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-06-13 Nick Clifton Import this fix from the mainline sources: 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-07 Nick Clifton Import this fix from upstream: 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-06-05 Alan Modra PR 21529 * linker.c (_bfd_generic_link_output_symbols): Handle BSF_GNU_UNIQUE. 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-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-01-17 Kuan-Lin Chen * elfnn-riscv.c (riscv_elf_object_p): New function. 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_dynsym_hash_dynstr): Also call `_bfd_elf_link_renumber_dynsyms' if the backend has requested it. (elf_gc_sweep): Likewise. 2017-04-26 Maciej W. Rozycki * elflink.c (elf_gc_sweep): Only call `_bfd_elf_link_renumber_dynsyms' if dynamic sections have been created. 2017-04-24 H.J. Lu PR ld/21425 * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks. 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-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-10 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-03-07 Alan Modra PR 21224 PR 20519 * elf64-ppc.c (ppc64_elf_relocate_section): Add missing dyn_relocs check. 2017-03-07 Alan Modra Apply from master 2017-03-02 Alan Modra * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo. 2017-03-02 Tristan Gingold * version.m4: Bump version to 2.28.0 * configure: Regenerate. 2017-03-02 Tristan Gingold * development.sh: Set development to true. 2017-03-02 Tristan Gingold * version.m4: Bump version to 2.28 * configure: Regenerate. 2017-03-02 Tristan Gingold * development.sh: Set development to false. 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 * 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 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-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 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 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-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-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-15 H.J. Lu PR ld/21168 * elf32-i386.c (elf_i386_relocate_section): Allow "lea foo@GOT, %reg" in PIC. 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 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-13 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-13 Maciej W. Rozycki * elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout to access the hash table. 2017-02-13 Maciej W. Rozycki * elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on non-NULL `htab' to the beginning. 2017-02-03 Alan Modra * elf32-hppa.c (ensure_undef_weak_dynamic): New function. (allocate_plt_static, allocate_dynrelocs): Use it. 2017-02-03 Alan Modra * elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for .PARISC.unwind section. 2017-02-02 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-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-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-13 H.J. Lu Backport from master 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-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-13 H.J. Lu Backport from master 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. 2017-01-10 H.J. Lu 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. 2017-01-13 H.J. Lu Backport from master 2017-01-10 H.J. Lu * elf32-i386.c (elf_i386_size_dynamic_sections): Set plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt. 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-04 James Clarke * elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free if relocs are cached. 2017-01-02 Alan Modra 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. 2017-01-02 Alan Modra Update year range in copyright notice of all files. For older changes see ChangeLog-2016 Copyright (C) 2017 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Local Variables: mode: change-log left-margin: 8 fill-column: 74 version-control: never End: