+2018-08-31 Alan Modra <amodra@gmail.com>
+
+ * reloc.c (BFD_RELOC_PPC64_REL16_HIGH, BFD_RELOC_PPC64_REL16_HIGHA),
+ (BFD_RELOC_PPC64_REL16_HIGHER, BFD_RELOC_PPC64_REL16_HIGHERA),
+ (BFD_RELOC_PPC64_REL16_HIGHEST, BFD_RELOC_PPC64_REL16_HIGHESTA):
+ Define.
+ * elf64-ppc.c (ppc64_elf_howto_raw): Add new REL16 howtos.
+ (ppc64_elf_reloc_type_lookup): Translate new REL16 relocs.
+ (ppc64_elf_check_relocs, ppc64_elf_relocate_section): Handle them.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+2018-08-31 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c: Correct _notoc stub comments.
+ (ppc_build_one_stub): Simplify output of branch for notoc
+ long branch stub. Don't include label offset of 8 bytes in
+ "off" calculation for notoc plt stub. Don't emit insns to get pc.
+ (build_offset): Emit insns to get pc here instead.
+ (size_offset): Add 4 extra insns.
+ (plt_stub_size): Adjust for "off" and size_offset changes.
+ (ppc_size_one_stub): Rearrange code into a switch, duplicating
+ some to better match ppc_build_one_stub.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * archures.c (bfd_architecture): New machine
+ bfd_mach_mips_gs264e.
+ * bfd-in2.h (bfd_architecture): Likewise.
+ * cpu-mips.c (enum I_xxx): Likewise.
+ (arch_info_struct): Likewise.
+ * elfxx-mips.c (_bfd_elf_mips_mach): Handle
+ E_MIPS_MACH_GS264E.
+ (mips_set_isa_flags): Likewise.
+ (mips_mach_extensions): Map bfd_mach_mips_gs264e to
+ bfd_mach_mips_gs464e extension.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * archures.c (bfd_architecture): New machine
+ bfd_mach_mips_gs464e.
+ * bfd-in2.h (bfd_architecture): Likewise.
+ * cpu-mips.c (enum I_xxx): Likewise.
+ (arch_info_struct): Likewise.
+ * elfxx-mips.c (_bfd_elf_mips_mach): Handle
+ E_MIPS_MACH_GS464E.
+ (mips_set_isa_flags): Likewise.
+ (mips_mach_extensions): Map bfd_mach_mips_gs464e to
+ bfd_mach_mips_gs464 extension.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * archures.c (bfd_architecture): Rename
+ bfd_mach_mips_loongson_3a to bfd_mach_mips_gs464.
+ * bfd-in2.h (bfd_architecture): Likewise.
+ * cpu-mips.c (enum I_xxx): Likewise.
+ (arch_info_struct): Likewise.
+ * elfxx-mips.c (_bfd_elf_mips_mach): Likewise.
+ (mips_set_isa_flags): Likewise.
+ (mips_mach_extensions): Likewise.
+ (bfd_mips_isa_ext_mach): Likewise.
+ (bfd_mips_isa_ext): Likewise.
+ (print_mips_isa_ext): Delete AFL_EXT_LOONGSON_3A.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * elfxx-mips.c (print_mips_ases): Add Loongson EXT2 extension.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * elfxx-mips.c (infer_mips_abiflags): Use ases instead of
+ isa_ext for infer ABI flags.
+ (print_mips_ases): Add Loongson EXT extension.
+
+2018-08-29 Chenghua Xu <paul.hua.gm@gmail.com>
+
+ * elfxx-mips.c (print_mips_ases): Add CAM extension.
+
+2018-08-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Don't mask
+ out the GNU_PROPERTY_X86_UINT32_VALID bit.
+
+2018-08-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23499
+ * elf.c (_bfd_elf_get_symbol_version_string): Return
+ _("<corrupt>") for corrupt symbol version info.
+
+2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Handle
+ X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED,
+ X86_UINT32_AND_LO, X86_UINT32_AND_HI, X86_UINT32_OR_LO,
+ X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI
+ instead of X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND.
+ (_bfd_x86_elf_merge_gnu_properties): Likewise.
+ (_bfd_x86_elf_link_setup_gnu_properties): Add X86_FEATURE_2_NEEDED
+ instead of X86_ISA_1_NEEDED.
+ (_bfd_x86_elf_link_fixup_gnu_properties): Handle
+ X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO,
+ X86_UINT32_AND_HI, X86_UINT32_OR_LO, X86_UINT32_OR_HI,
+ X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI instead of
+ X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND.
+
+2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Mask out the
+ GNU_PROPERTY_X86_UINT32_VALID bit.
+ (_bfd_x86_elf_link_fixup_gnu_properties): Set the
+ GNU_PROPERTY_X86_UINT32_VALID bit for non-relocatable output.
+
+2018-08-23 Zenith423 <zenith432@users.sourceforge.net>
+
+ PR 23460
+ * plugin.c (struct plugin_list_entry): New structure.
+ (plugin_list): New variable.
+ (try_load_plugin): Place opened plugins on a list. Ensure that
+ the refcount in the dynamic loader is kept at 1.
+
+2018-08-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Revise "call lacks
+ nop" error message.
+
+2018-08-23 Nick Clifton <nickc@redhat.com>
+
+ * elf64-hppa.c (elf_hppa_final_link_relocate): Replace unworkable
+ code with an assertion.
+
+2018-08-23 Nick Clifton <nickc@redhat.com>
+
+ PR 23061
+ * coffgen.c (coff_pointerize_aux): Add table_end parameter. Use
+ it to prevent walking off the end of the table.
+ (coff_get_normalized_symtab): Pass internal_end pointer to
+ coff_pointerize_aux.
+
+2018-08-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Don't miss clearing
+ unresolved_reloc on ppc_stub_plt_call_notoc.
+
+2018-08-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23536
+ * development.sh (experimental): New.
+
+2018-08-22 Helge Deller <deller@gmx.de>
+ Nick Clifton <nickc@redhat.com>
+
+ * elf-hppa.h (elf_hppa_fake_sections): Use SHT_PARISC_UNWIND as
+ the section type of the .PARISC.unwind section on 64-bit binaries
+ and SHT_PROGBITS for 32-bit binaries. Add a comment about it.
+ Add comment about the sh_entsize value.
+
+2018-08-22 Rafeal Auler <rafaelauler@gmail.com>
+
+ PR 23560
+ * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Always update the
+ stub's target, since it may have been changed after the layout.
+
+2018-08-21 John Darington <john@darrington.wattle.id.au>
+
+ * elf32-s12z.c (opru18_reloc): New function.
+ (elf_s12z_howto_table): Adjust Howto according to new knowledge.
+
+2018-08-21 mephi42 <mephi42@gmail.com>
+
+ PR binutils/23315
+ * mach-o.c (bfd_mach_o_mangle_symbols): Update n_type even if
+ data is already considered filled.
+
+2018-08-21 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (HOW): Define.
+ (ONES): Delete.
+ (ppc64_elf_howto_raw): Use HOW to initialize entries.
+ * elf32-ppc.c (HOW): Define.
+ (ppc_elf_howto_raw): Use HOW to initialize entries, updating
+ R_PPC_VLE_REL15 and R_PPC_VLE_REL24 to use bitpos=0.
+
+2018-08-21 Alan Modra <amodra@gmail.com>
+
+ * reloc.c (reloc_howto_type): Typedef.
+ (bfd_symbol): Delete forward declaration.
+ (struct reloc_howto_struct): Add "negate" field. Make "size",
+ "bitsize", "rightshift", "bitpos", "complain_on_overflow",
+ "pc_relative", "partial_inplace", and "pcrel_offset" bitfields.
+ Rearrange for better packing. Revise comments.
+ (HOWTO): Map to rearranged reloc_howto_struct.
+ (bfd_get_reloc_size): Delete now unused cases.
+ (read_reloc, write_reloc): Likewise.
+ (apply_reloc, _bfd_relocate_contents): Test howto->negate
+ rather than howto->size < 0 for negated relocation values.
+ * coff-rs6000.c (xcoff_complain_overflow_bitfield_func): Avoid
+ signed/unsigned warning.
+ (xcoff_ppc_relocate_section): Delete "condition is always false"
+ code.
+ * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
+ * cpu-ns32k.c (do_ns32k_reloc): Adjust to suit reloc_howto_struct
+ changes.
+ * vms-alpha.c (_bfd_vms_write_etir, alpha_vms_slurp_relocs): Use
+ size 16 for ALPHA_R_LINKAGE.
+ (alpha_howto_table <ALPHA_R_LINKAGE>): Set encoded size and
+ bitsize to zero.
+ * bfd-in.h (reloc_howto_type): Delete.
+ * bfd-in2.h: Regenerate.
+
+2018-08-21 Alan Modra <amodra@gmail.com>
+
+ * reloc.c (HOWTO): Revise comment.
+ (NEWHOWTO, HOWTO_PREPARE): Delete.
+ * coff-arm.c (coff_arm_reloc_type_lookup): Replace const struc
+ reloc_howto_struct with reloc_howto_type.
+ * ns32knetbsd.c (MY_bfd_reloc_type_lookup): Likewise.
+ * vms-alpha.c (alpha_vms_bfd_reloc_type_lookup): Likewise.
+ * elf-hppa.h (HOW): Define.
+ (elf_hppa_howto_table): Use it to simplify this table, correcting
+ name of R_PARISC_LTOFF16WF, R_PARISC_LTOFF_FPTR64, and
+ R_PARISC_LTOFF_FPTR16DF.
+ * elf32-mep.c (MEPREL): Use HOWTO.
+ * bfd-in2.h: Regenerate.
+
+2018-08-20 Alan Modra <amodra@gmail.com>
+
+ * mmo.c (valid_mmo_symbol_character_set): Initialize and make
+ array const.
+ (mmo_init): Don't init valid_mmo_symbol_character_set.
+
+2018-08-20 Alan Modra <amodra@gmail.com>
+
+ * rs6000-core.c (CORE_COMMONSZ): Balance parentheses in expression.
+
+2018-08-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23515
+ * elf-bfd.h (elf_backend_data): Add fixup_gnu_properties.
+ * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Call
+ backend fixup_gnu_properties if it isn't NULL. Discard
+ .note.gnu.property section if all properties have been removed.
+ * elfxx-target.h (elf_backend_fixup_gnu_properties): New.
+ (elfNN_bed): Initialize fixup_gnu_properties.
+ * elfxx-x86.c (_bfd_x86_elf_link_fixup_gnu_properties): New
+ function.
+ * elfxx-x86.h (_bfd_x86_elf_link_fixup_gnu_properties): New
+ prototype.
+ (elf_backend_fixup_gnu_properties): New.
+
+2018-08-16 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c: Correct ppc_stub_long_branch_notoc example.
+ Formatting.
+
+2018-08-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/23494
+ * Makefile.am (BFD32_LIBS): Add elf-properties.lo.
+ (BFD32_LIBS_CFILES): Add elf-properties.c.
+ (BFD32_BACKENDS): Remove elf-properties.lo.
+ (BFD32_BACKENDS_CFILES): Remove elf-properties.c.
+ * configure.ac (elf): Remove elf-properties.lo.
+ * Makefile.in: Regenerated.
+ * configure: Likewise.
+
+2018-08-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
+ add X86_ISA_1_NEEDED property only if existing properties won't
+ be removed.
+
+2018-08-11 Alan Modra <amodra@gmail.com>
+
+ * reloc.c (bfd_get_reloc_size): Sort switch.
+ (read_reloc, write_reloc, apply_reloc): New functions.
+ (bfd_perform_relocation, bfd_install_relocation): Use apply_reloc.
+ (_bfd_relocate_contents): Use read_reloc and write_reloc.
+ (_bfd_clear_contents): Likewise.
+
+2018-08-11 John Darrington <john@darrington.wattle.id.au>
+
+ * reloc.c (_bfd_relocate_contents): Handle 3 byte relocs.
+ (_bfd_clear_contents): Likewise.
+ (bfd_perform_relocation): Likewise.
+ (bfd_install_relocation): Likewise.
+
+2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23499
+ * elflink.c (bfd_elf_record_link_assignment): Always clear
+ h->verinfo.verdef when overriding a dynamic definition.
+
+2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/23494
+ * elf-properties.c (elf_get_gnu_property_section_size): Always
+ use align_size as pr_datasz for GNU_PROPERTY_STACK_SIZE.
+ (elf_write_gnu_properties): Likewise.
+
+2018-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/23494
+ * bfd.c (bfd_convert_section_size): Check BFD_DECOMPRESS after
+ calling _bfd_elf_convert_gnu_property_size to convert
+ .note.gnu.property section size.
+ (bfd_convert_section_contents): Check BFD_DECOMPRESS after
+ calling _bfd_elf_convert_gnu_properties to convert
+ .note.gnu.property section.
+ * elf-bfd.h (_bfd_elf_convert_gnu_property_size): New prototype.
+ (_bfd_elf_convert_gnu_properties): Likewise.
+ * elf-properties.c (elf_get_gnu_property_section_size): New
+ function.
+ (elf_write_gnu_properties): Likewise.
+ (_bfd_elf_convert_gnu_property_size): Likewise.
+ (_bfd_elf_convert_gnu_properties): Likewise.
+ (_bfd_elf_link_setup_gnu_properties): Use
+ elf_get_gnu_property_section_size and elf_write_gnu_properties.
+
+2018-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23486
+ * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
+ GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
+ (_bfd_x86_elf_link_setup_gnu_properties): Adding the
+ GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
+ GNU_PROPERTY_X86_ISA_1_USED, property.
+
+2018-08-07 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct map_stub): Delete tls_get_addr_opt_bctrl.
+ Add lr_restore, eh_size and eh_base.
+ (eh_advance, eh_advance_size): New functions.
+ (build_tls_get_addr_stub): Emit EH info for stub.
+ (ppc_build_one_stub): Likewise for _notoc stubs.
+ (ppc_size_one_stub): Size EH info for stub.
+ (group_sections): Init new map_stub fields.
+ (stub_eh_frame_size): Delete.
+ (ppc64_elf_size_stubs): Size EH info for stubs. Set up dummy EH
+ program for stubs.
+ (ppc64_elf_build_stubs): Reinit new map_stub fields. Set FDE
+ offset to stub section here..
+ (ppc64_elf_finish_dynamic_sections): ..rather than here.
+
+2018-08-07 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first
+ instruction of __tls_get_addr_opt stub.
+ (plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when
+ dealing with __tls_get_addr_opt stub.
+ (build_tls_get_addr_stub, ppc_size_one_stub): Likewise.
+
+2018-08-06 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * elf32-arc.c (arc_elf_merge_private_bfd_data): Complain about
+ efalgs only when in/out exists.
+ (elf32_arc_section_from_shdr): Don't complain about 0x0c
+ section type. It is mwdt compiler specific.
+
+2018-08-06 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * elf32-arc.c (arc_elf_merge_attributes): Fix merge attributes.
+
+2018-08-06 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * elf32-arc.c (arc_elf_merge_attributes): Handle
+ Tag_ARC_ATR_version.
+
+2018-08-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ADDI_R12_R11, ADDI_R12_R12, LIS_R12),
+ (ADDIS_R12_R11, ORIS_R12_R12_0, ORI_R12_R12_0),
+ (SLDI_R12_R12_32, LDX_R12_R11_R12, ADD_R12_R11_R12): Define.
+ (ppc64_elf_howto_raw): Add R_PPC64_REL24_NOTOC entry.
+ (ppc64_elf_reloc_type_lookup): Support R_PPC64_REL24_NOTOC.
+ (ppc_stub_type): Add ppc_stub_long_branch_notoc,
+ ppc_stub_long_branch_both, ppc_stub_plt_branch_notoc,
+ ppc_stub_plt_branch_both, ppc_stub_plt_call_notoc, and
+ ppc_stub_plt_call_both.
+ (is_branch_reloc): Add R_PPC64_REL24_NOTOC.
+ (build_offset, size_offset): New functions.
+ (plt_stub_size): Support plt_call_notoc and plt_call_both.
+ (ppc_build_one_stub, ppc_size_one_stub): Support new stubs.
+ (toc_adjusting_stub_needed): Handle R_PPC64_REL24_NOTOC.
+ (ppc64_elf_size_stubs): Likewise, and new stubs.
+ (ppc64_elf_build_stubs, ppc64_elf_relocate_section): Likewise.
+ * reloc.c: Add BFD_RELOC_PPC64_REL24_NOTOC.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+2018-08-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc_build_one_stub): Lose "_r2off" in stub symbols.
+
2018-08-02 Jim Wilson <jimw@sifive.com>
* elfnn-riscv.c (riscv_elf_create_dynamic_sections): For .tdata.dyn,