+2016-12-23 Tristan Gingold <gingold@adacore.com>
+
+ * po/bfd.pot: Regenerate.
+
+2016-12-22 Alan Modra <amodra@gmail.com>
+
+ * libbfd-in.h (_bfd_vms_lib_slurp_armap): Use _bfd_noarchive function.
+ (_bfd_vms_lib_slurp_extended_name_table: Likewise.
+ (_bfd_vms_lib_construct_extended_name_table: Likewise.
+ (_bfd_vms_lib_truncate_arname: Likewise.
+ (_bfd_vms_lib_write_armap: Likewise.
+ (_bfd_vms_lib_read_ar_hdr: Likewise.
+ (_bfd_vms_lib_write_ar_hdr: Likewise.
+ * libbfd.h: Regenerate.
+
+2016-12-21: Yury Norov <ynorov@caviumnetworks.com>
+ Andreas Schwab <schwab@suse.de>
+
+ * cpu-aarch64.c: Fix word and address size declaration in
+ ilp32 mode in bfd_arch_info_type bfd_aarch64_arch_ilp32
+ structure.
+
+2016-12-20 Andrew Waterman <andrew@sifive.com>
+
+ * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Use
+ EF_RISCV_FLOAT_ABI_SOFT instead of EF_RISCV_SOFT_FLOAT.
+
+2016-12-20 Andrew Waterman <andrew@sifive.com>
+
+ * elfnn-riscv.c (bfd_riscv_get_max_alignment): Return bfd_vma
+ instead of unsigned int.
+
+2016-12-20 Andrew Waterman <andrew@sifive.com>
+ Kuan-Lin Chen <kuanlinchentw@gmail.com>
+
+ * reloc.c (BFD_RELOC_RISCV_TPREL_I): New relocation.
+ (BFD_RELOC_RISCV_TPREL_S): Likewise.
+ (BFD_RELOC_RISCV_RELAX): Likewise.
+ (BFD_RELOC_RISCV_CFA): Likewise.
+ (BFD_RELOC_RISCV_SUB6): Likewise.
+ (BFD_RELOC_RISCV_SET8): Likewise.
+ (BFD_RELOC_RISCV_SET8): Likewise.
+ (BFD_RELOC_RISCV_SET16): Likewise.
+ (BFD_RELOC_RISCV_SET32): Likewise.
+ * elfnn-riscv.c (perform_relocation): Handle the new
+ relocations.
+ (_bfd_riscv_relax_tls_le): Likewise.
+ (_bfd_riscv_relax_align): Likewise.
+ (_bfd_riscv_relax_section): Likewise.
+ (howto_table): Likewise.
+ (riscv_reloc_map): Likewise.
+ (relax_func_t): New type.
+ (_bfd_riscv_relax_call): Add reserve_size argument, which
+ controls the maximal offset pessimism. Correct type of max_alignment.
+ (_bfd_riscv_relax_lui): Likewise.
+ (_bfd_riscv_relax_tls_le): Likewise.
+ (_bfd_riscv_relax_align): Likewise.
+ (_bfd_riscv_relax_section): Compute the required reserve size
+ when relocating and use it to when calling relax_func.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Likewise.
+
+2016-12-20 Andrew Waterman <andrew@sifive.com>
+
+ * elfnn-riscv.c: Formatting and comment fixes throughout.
+ * elfxx-riscv.c: Likewise.
+ (howto_table): Change the src_mask field from MINUS_ONE to 0 for
+ R_RISCV_TLS_DTPMOD32, R_RISCV_TLS_DTPMOD64, R_RISCV_TLS_DTPREL32,
+ R_RISCV_TLS_DTPREL64, R_RISCV_TLS_TPREL32, R_RISCV_TLS_TPREL64.
+
+2016-12-20 Palmer Dabbelt <palmer@dabbelt.com>
+
+ * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Improve
+ error message when linking elf32 and elf64.
+
+2016-12-19 Christian Groessler <chris@groessler.org>
+
+ * elf32-arm.c (elf32_arm_popcount): Rename from 'popcount'. Make
+ 'sum' local variable signed.
+
+2016-12-16 fincs <fincs.alt1@gmail.com>
+
+ * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Add handling
+ for info->gc_keep_exported.
+ (bfd_elf_gc_sections): Likewise.
+
+2016-12-15 Alan Modra <amodra@gmail.com>
+
+ PR ld/20968
+ PR ld/20908
+ * elflink.c (bfd_elf_final_link): Revert 2016-12-02 change. Move
+ reloc counting code later after ELF flavour test.
+
+2016-12-14 Maciej W. Rozycki <macro@imgtec.com>
+
+ * bfd-in.h (elf_internal_abiflags_v0): New struct declaration.
+ (bfd_mips_elf_get_abiflags): New prototype.
+ * elfxx-mips.c (bfd_mips_elf_get_abiflags): New function.
+ * bfd-in2.h: Regenerate.
+
+2016-12-14 Yury Norov <ynorov@caviumnetworks.com>
+
+ * bfd/elfnn-aarch64.c: fix TLS relaxations for ilp32 where
+ TCB_SIZE is used.
+
+2016-12-13 Alan Modra <amodra@gmail.com>
+
+ * elf64-hppa.c (elf64_hppa_modify_segment_map): Don't add PHDR
+ for objcopy/strip or when a ld script specifies PHDRS.
+
+2016-12-13 Alan Modra <amodra@gmail.com>
+
+ * elf32-rx.c (elf32_rx_modify_program_headers): Don't adjust
+ segments that include the ELF file header or program headers.
+
+2016-12-08 Alan Modra <amodra@gmail.com>
+
+ PR ld/20932
+ * elflink.c (bfd_elf_record_link_assignment): Handle warning symbols.
+
+2016-12-07 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20932
+ * elflink.c (bfd_elf_record_link_assignment): Replace call to
+ abort with an error message and error return value.
+
+2016-12-06 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20931
+ * elf.c (copy_special_section_fields): Check for an invalid
+ sh_link field before attempting to follow it.
+
+ PR binutils/20929
+ * aoutx.h (squirt_out_relocs): Check for relocs without an
+ associated symbol.
+
+2016-12-06 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ok_lo_toc_insn): Add r_type param. Recognize
+ lq,lfq,lxv,lxsd,lxssp,lfdp,stq,stfq,stxv,stxsd,stxssp,stfdp.
+ Don't match lmd and stmd.
+
+2016-12-05 Alyssa Milburn <amilburn@zall.org>
+
+ * elfxx-sparc.c: Do not stop processing relocations after
+ partially relaxing a call with WDISP30.
+
+2016-12-05 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20905
+ * peicode.h (pe_ILF_object_p): Use strnlen to avoid running over
+ the end of the string buffer.
+
+ PR binutils/20907
+ * peicode.h (pe_ILF_build_a_bfd): Replace abort with error return.
+
+ PR binutils/20921
+ * aoutx.h (squirt_out_relocs): Check for and report any relocs
+ that could not be recognised.
+
+ PR binutils/20922
+ * elf.c (find_link): Check for null headers before attempting to
+ match them.
+
+ PR ld/20925
+ * aoutx.h (aout_link_add_symbols): Replace BFD_ASSERT with return
+ FALSE.
+
+ PR ld/20924
+ (aout_link_add_symbols): Fix off by one error checking for
+ overflow of string offset.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct ppc_link_hash_entry): Delete "was_undefined".
+ (struct ppc_link_hash_table): Delete "twiddled_syms". Add
+ "need_func_desc_adj".
+ (lookup_fdh): Link direct fdh sym via oh field and set flags.
+ (make_fdh): Make strong and weak undefined function descriptor
+ symbols.
+ (ppc64_elf_merge_symbol): New function.
+ (elf_backend_merge_symbol): Define.
+ (ppc64_elf_archive_symbol_lookup): Don't test undefweak for fake
+ function descriptors.
+ (add_symbol_adjust): Don't twiddle symbols to undefweak.
+ Propagate more ref flags to function descriptor symbol. Make
+ some function descriptor symbols dynamic.
+ (ppc64_elf_before_check_relocs): Only run add_symbol_adjust for
+ ELFv1. Set need_func_desc_adj. Don't fix undefs list.
+ (ppc64_elf_check_relocs): Set non_ir_ref for descriptors.
+ Don't call lookup_fdh here.
+ (ppc64_elf_gc_sections): New function.
+ (bfd_elf64_bfd_gc_sections): Define.
+ (ppc64_elf_gc_mark_hook): Mark descriptor.
+ (func_desc_adjust): Don't make fake function descriptor syms strong
+ here. Exit earlier on non-dotsyms. Take note of elf.dynamic
+ flag when deciding whether a dynamic function descriptor might
+ be needed. Transfer elf.dynamic and set elf.needs_plt. Move
+ plt regardless of visibility. Make descriptor dynamic if
+ entry sym is dynamic, not for other cases.
+ (ppc64_elf_func_desc_adjust): Don't run func_desc_adjust if
+ already done.
+ (ppc64_elf_edit_opd): Use oh field rather than lookup_fdh.
+ (ppc64_elf_size_stubs): Likewise.
+ (ppc_build_one_stub): Don't clear was_undefined. Only set sym
+ undefweak if stub symbol is defined.
+ (undo_symbol_twiddle, ppc64_elf_restore_symbols): Delete.
+ * elf64-ppc.h (ppc64_elf_restore_symbols): Don't declare.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_hide_symbol): Access hash table as
+ elf_link_hash_table rather than ppc_link_hash_table.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (add_symbol_adjust): Delete dead code.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (add_symbol_adjust): Correct order of tests for
+ warning and indirect symbols.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic
+ flags when direct symbol is versioned_hidden.
+
+2016-12-02 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20908
+ * elflink.c (bfd_elf_final_link): Check for ELF flavour binaries
+ when following indirect links.
+
+ PR ld/20909
+ * aoutx.h (aout_link_add_symbols): Fix off-by-one error in check
+ for an illegal string offset.
+
+2016-12-02 Gary Benson <gbenson@redhat.com>
+
+ * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to
+ elf_parse_notes.
+
+2016-12-02 Josh Conner <joshconner@google.com>
+
+ * config.bfd: Add support for fuchsia (OS).
+
+2016-12-01 Yury Norov <ynorov@caviumnetworks.com>
+
+ PR ld/20868
+ * elfnn-aarch64.c (elfNN_aarch64_tls_relax): Use 32-bit accesses
+ to the GOT when operating in 32-bit mode.
+
+2016-12-01 Ma Jiang <ma.jiang@zte.com.cn>
+
+ PR ld/16720
+ * elfxx-mips.c (mips_elf_calculate_relocation): Remove overflow
+ test for HI16 relocs.
+
+2016-12-01 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20891
+ * aoutx.h (find_nearest_line): Handle the case where the main file
+ name and the directory name are both empty.
+
+ PR binutils/20892
+ * aoutx.h (find_nearest_line): Handle the case where the function
+ name is empty.
+
+2016-11-30 Alan Modra <amodra@gmail.com>
+
+ * elf.c (get_program_header_size): Revert accidental change.
+
+2016-11-30 Alan Modra <amodra@gmail.com>
+
+ PR ld/20886
+ * elf64-ppc.c (ppc64_elf_size_stubs): Make rawsize max size seen
+ on any pass past STUB_SHRINK_ITER.
+
+2016-11-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_fix_symbol_flags): Hide hidden versioned
+ symbol in executable.
+ (elf_link_output_extsym): Don't change bind from global to
+ local when linking executable.
+
+2016-11-28 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20815
+ * elf.c (phdr_sorter): Delete.
+ (assign_file_positions_except_relocs): Do not sort program
+ headers.
+
+2016-11-25 Jon Turney <jon.turney@dronecode.org.uk>
+
+ PR ld/20193
+ * peXXigen.c (rsrc_process_section): Do not shrink the merged
+ .rsrc section.
+
+2016-11-24 Jiong Wang <jiong.wang@arm.com>
+
+ PR target/20737
+ * elf32-arm.c (elf32_arm_final_link_relocate): Bind defined symbol
+ locally in PIE.
+
+2016-11-24 Kuan-Lin Chen <kuanlinchentw@gmail.com>
+
+ * bfd/elfxx-riscv.c (howto_table): Fix bitsize of R_RISCV_ADD8.
+
+2016-11-23 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20815
+ * elf.c (elf_modify_segment_map): Allow empty LOAD segments if
+ they contain the program headers.
+ (_bfd_elf_map_sections_to_segments): If the linker created the
+ PHDR segment then always attempt to include it in a LOAD segment.
+ (assign_file_positions_for_non_load_sections): Allow LOAD segments
+ to overlap PHDR segments.
+ (phdr_sorter): New function. Sorts program headers.
+ (assign_file_positions_except_relocs): Sort the program headers
+ before writing them out. Issue an error if the PHDR segment is
+ not covered by a LOAD segment, unless the backend allows it.
+ * elf-bfd.h (struct elf_backend_data): Add
+ elf_backend_allow_non_load_phdr.
+ * elfxx-target.h (elf_backend_allow_non_load_phdr): Provide
+ default definition that returns FALSE.
+ (elfNN_bed): Initialise the elf_backend_allow_non_load_phdr
+ field.
+ * elf64-hppa.c (elf64_hppa_allow_non_load_phdr): New function.
+ Returns TRUE.
+ (elf_backend_allow_non_load_phdr): Define.
+ * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Do not
+ place the interpreter string into the .interp section if the
+ nointerp flag is set in the link info structure.
+ * elf32-arc.c (elf_arc_size_dynamic_sections): Likewise.
+ * elf32-score7.c (score_elf_final_link_relocate): Allow for the
+ _gp symbol not being part of the output.
+
+2016-11-23 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (struct elf_backend_data): Add dtrel_excludes_plt.
+ * elfxx-target.h (elf_backend_dtrel_excludes_plt): Define.
+ (elfNN_bed): Init new field.
+ * elflink.c (bfd_elf_final_link): Add and use htab variable. Handle
+ dtrel_excludes_plt.
+ * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Delete
+ DT_RELASZ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-arc.c (elf_arc_finish_dynamic_sections): Delete DT_RELASZ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-arm.c (elf32_arm_finish_dynamic_sections): Delete code
+ subtracting off plt relocs from DT_RELSZ, DT_RELASZ.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Delete
+ DT_RELASZ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-cris.c (elf_cris_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Delete DT_RELASZ
+ and DT_RELA code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-i386.c (elf_i386_finish_dynamic_sections): Delete DT_RELSZ
+ and DT_REL code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-metag.c (elf_metag_finish_dynamic_sections): Delete DT_RELASZ
+ and DT_RELA code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Delete
+ DT_RELASZ and DT_RELA code. Use ELF htab shortcuts for other
+ dynamic sections.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-mips.c (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-sh.c (sh_elf_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-sparc.c (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-vax.c (elf_vax_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Delete DT_RELASZ
+ and DT_RELA code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Delete
+ DT_RELASZ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elfnn-ia64.c (elfNN_ia64_finish_dynamic_sections): Delete DT_RELASZ
+ code.
+ (elf_backend_dtrel_excludes_plt): Define.
+ * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Delete
+ DT_RELASZ code.
+ * elfxx-sparc.c (sparc_finish_dyn): Delete DT_RELASZ code.
+
2016-11-23 Alan Modra <amodra@gmail.com>
* elf-m10300.c (mn10300_elf_check_relocs): Use elf htab shortcuts