+2015-06-18 Nick Clifton <nickc@redhat.com>
+
+ PR 18481
+ * elf32-arm.c (R_ARM_TLS_LE32): Set the special function to NULL.
+
+2015-06-15 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * bfd.c: Change struct bfd_build_id to use bfd_size_type.
+ * bfd-in2.h : Regenerate.
+
+2015-06-16 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (ppc_elf_relocate_section): Correct binary search of
+ dynamic relocs.
+
+2015-06-10 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * elf-bfd.h : Remove struct elf_build_id.
+ * bfd.c : Add struct bfd_build_id.
+ * bfd-in2.h: Regenerate.
+ * elf.c (elfobj_grok_gnu_build_id): Update to use bfd_build_id.
+ * libpei.h: Add protoype and macros for
+ bfd_XXi_slurp_codeview_record.
+ * peXXigen.c (_bfd_XXi_slurp_codeview_record): Make public
+ * peicode.h (pe_bfd_read_buildid): Add.
+ (pe_bfd_object_p): Use pe_bfd_read_buildid().
+
+2015-06-15 Renlin Li <renlin.li@arm.com>
+
+ * reloc.c (BFD_RELOC_AARCH64_LD64_GOTOFF_LO15): New entry.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
+ BFD_RELOC_AARCH64_LD64_GOTOFF_LO15.
+
+2015-06-15 Alan Modra <amodra@gmail.com>
+
+ * cofflink.c (_bfd_coff_generic_relocate_section): Revert
+ 2014-03-26 change. Call _bfd_clear_contents for relocs against
+ local and global symbols defined in discarded input sections.
+
+2015-06-05 Nick Clifton <nickc@redhat.com>
+
+ * elf32-msp430.c (rl78_sym_diff_handler): New function.
+ (msp430_howto_table): Use the new function for the SYM_DIFF reloc.
+ (msp430x_howto_table): Likewise.
+
+2015-06-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc_elf_relocate_section): Move dynamic text
+ relocs with insns moved by --ppc476-workaround. Correct
+ output of REL16 relocs.
+
+2015-06-01 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (aarch64_reloc_got_type): Support
+ BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14.
+ (elfNN_aarch64_final_link_relocate): Ditto.
+ (elfNN_aarch64_gc_swap_hook): Ditto.
+ (elfNN_aarch64_check_relocs): Ditto.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
+
+2015-06-01 Jiong Wang <jiong.wang@arm.com>
+
+ * reloc.c (BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14): New entry.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
+ BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14.
+
+2015-06-01 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_howto_table): Set overflow type to
+ complain_overflow_unsigned for BFD_RELOC_AARCH64_TLSLE_ADD_LO12.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Don't use
+ PGOFF for BFD_RELOC_AARCH64_TLSLE_ADD_LO12.
+
+2015-06-01 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (aarch64_reloc_got_type): Support
+ BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15.
+ (elfNN_aarch64_final_link_relocate): Ditto.
+ (elfNN_aarch64_gc_swap_hook): Ditto.
+ (elfNN_aarch64_check_relocs): Ditto.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
+
+2015-06-01 Jiong Wang <jiong.wang@arm.com>
+
+ * reloc.c (BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15): New entry.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
+ BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15.
+
+2015-05-28 Catherine Moore <clm@codesourcery.com>
+ Bernd Schmidt <bernds@codesourcery.com>
+ Paul Brook <paul@codesourcery.com>
+
+ bfd/
+ * bfd-in2.h: Regenerated.
+ * elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define.
+ (COMPACT_EH_CANT_UNWIND_OPCODE): Define.
+ (dwarf_eh_frame_hdr_info): Move dwarf-specific fields from
+ eh_frame_hdr_info.
+ (compact_eh_frame_hdr_info): Declare.
+ (eh_frame_hdr_info): Redeclare with union for dwarf-specific
+ fields and compact-eh fields.
+ (elf_backend_data): Add cant_unwind_opcode and compact_eh_encoding.
+ (bfd_elf_section_data): Add eh_frame_entry_field.
+ (elf_section_eh_frame_entry): Define.
+ (bfd_elf_parse_eh_frame_entries): Declare.
+ (_bfd_elf_parse_eh_frame_entry): Declare.
+ (_bfd_elf_end_eh_frame_parsing): Declare.
+ (_bfd_elf_write_section_eh_frame_entry): Declare.
+ (_bfd_elf_eh_frame_entry_present): Declare.
+ (_bfd_elf_section_for_symbol): Declare.
+ * elf-eh-frame.c (bfd_elf_discard_eh_frame_entry): New function.
+ (bfd_elf_record_eh_frame_entry): New function.
+ (_bfd_elf_parse_eh_frame_entry): New function.
+ (_bfd_elf_parse_eh_frame): Update hdr_info field references.
+ (cmp_eh_frame_hdr): New function.
+ (add_eh_frame_hdr_terminator): New function.
+ (_bfd_elf_end_eh_frame_parsing): New function.
+ (find_merged_cie): Update hdr_info field references.
+ (_bfd_elf_discard_section_eh_frame): Likewise.
+ (_bfd_elf_discard_section_eh_frame_hdr): Add Compact EH support.
+ (_bfd_elf_eh_frame_entry_present): New function.
+ (_bfd_elf_maybe_strip_eh_frame_hdr): Add Compact EH support.
+ (_bfd_elf_write_section_eh_frame_entry): New function.
+ (_bfd_elf_write_section_eh_frame): Update hdr_info field references.
+ (_bfd_elf_fixup_eh_frame_hdr): New function.
+ (write_compact_eh_frame_hdr): New function.
+ (write_dwarf_eh_frame_hdr): New function.
+ (_bfd_elf_write_section_eh_frame_hdr): Add Compact EH support.
+ * elflink.c (_bfd_elf_section_for_symbol): New function.
+ (elf_section_ignore_discarded_relocs): Add Compact EH support.
+ (elf_link_input_bfd): Likewise.
+ (bfd_elf_final_link): Likewise.
+ (_bfd_elf_gc_mark): Likewise.
+ (bfd_elf_parse_eh_frame_entries): New function.
+ (bfd_elf_gc_sections): Add Compact EH support.
+ (bfd_elf_discard_info): Likewise.
+ * elfxx-mips.c: Include dwarf2.h.
+ (_bfd_mips_elf_compact_eh_encoding): New function.
+ (_bfd_mips_elf_cant_unwind_opcode): New function.
+ * elfxx-mips.h (_bfd_mips_elf_compact_eh_encoding): Declare.
+ (_bfd_mips_elf_cant_unwind_opcode): Declare.
+ (elf_backend_compact_eh_encoding): Define.
+ (elf_backend_cant_unwind_opcode): Define.
+ * elfxx-target.h (elf_backend_compact_eh_encoding): Provide default.
+ (elf_backend_cant_unwind_opcode): Provide default.
+ (elf_backend_data elfNN_bed): Add elf_backend_compact_eh_encoding and
+ elf_backend_cant_unwind_opcode.
+ * section.c (SEC_INFO_TYPE_EH_FRAME_ENTRY): Add definition.
+
+2015-05-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18458
+ * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section
+ for now binding only if pointer equality isn't needed.
+ (elf_i386_allocate_dynrelocs): Use .plt.got section for now
+ binding only if pointer equality isn't needed.
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got
+ section for now binding only if pointer equality isn't needed.
+ (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now
+ binding only if pointer equality isn't needed.
+
+2015-05-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18437
+ * elf32-i386.c (elf_i386_get_plt_sym_val): Skip extra relocations
+ in .rel.plt/.rela.plt.
+ * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
+
+2015-05-19 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (aarch64_tls_transition_without_check): Sort
+ relocation case labels alphabetically.
+ (elfNN_aarch64_final_link_relocate): Ditto.
+ (elfNN_aarch64_tls_relax): Ditto.
+ (elfNN_aarch64_relocate_section): Ditto.
+ (elfNN_aarch64_gc_sweep_hook): Ditto.
+ (elfNN_aarch64_check_relocs): Ditto.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
+ (_bfd_aarch64_elf_resolve_relocation): Ditto.
+
+2015-05-18 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Rewrite
+ comments.
+
+2015-05-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section
+ for now binding.
+ (elf_i386_allocate_dynrelocs): Use .plt.got section for now
+ binding.
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got
+ section for now binding.
+ (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now
+ binding.
+
+2015-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bfd.c (bfd_update_compression_header): Also write the zlib
+ header if the SHF_COMPRESSED bit cleared..
+ (bfd_check_compression_header): Return the uncompressed size.
+ * compress.c (decompress_contents): Don't skip the zlib header.
+ (bfd_compress_section_contents): Properly handle ELFCOMPRESS_ZLIB,
+ which doesn't have the zlib header.
+ (bfd_init_section_decompress_status): Likewise.
+ (bfd_get_full_section_contents): Updated.
+ (bfd_is_section_compressed): Likewise.
+ (bfd_is_section_compressed_with_header): Return the uncompressed
+ size.
+ * elf.c (_bfd_elf_make_section_from_shdr): Updated.
+ * bfd-in2.h: Regenerated.
+
+2015-05-14 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Remove overflow
+ check restrictions.
+
+2015-05-14 Max Filippov <jcmvbkbc@gmail.com>
+
+ * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
+ as GOT reference when plt.refcount is not positive.
+
+2015-05-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate space
+ for the first .plt entry only if needed.
+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
+
+2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am (ALL_MACHINES): Add cpu-iamcu.lo.
+ (ALL_MACHINES_CFILES): Likewise.
+ * archures.c (bfd_mach_iamcu): New.
+ (bfd_mach_i386_iamcu): Likewise.
+ (bfd_mach_i386_iamcu_intel_syntax): Likewise.
+ (bfd_iamcu_arch): Likewise.
+ (bfd_archures_list): Add &bfd_iamcu_arch.
+ * config.bfd (targ_selvecs): Add iamcu_elf32_vec to
+ i386_elf32_vec.
+ (targ_archs): Add bfd_iamcu_arch if needed.
+ * configure.ac: Support iamcu_elf32_vec.
+ * cpu-iamcu.c: New file.
+ * elf32-i386.c (elf32_iamcu_elf_object_p): New function.
+ Add support for iamcu_elf32_vec and elf32_iamcu_bed.
+ * targets.c (iamcu_elf32_vec): New.
+ (_bfd_target_vector): Add iamcu_elf32_vec.
+ * Makefile.in: Regenerated.
+ * bfd-in2.h: Likewise.
+ * configure: Likewise.
+
+2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfcode.h (elf_object_p): Replace EM_486 with EM_IAMCU.
+
+2015-05-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_convert_mov_to_lea): Replace input_bfd
+ and output_bfd with abfd.
+ * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
+
+2015-05-06 Toni Spets <toni.spets@iki.fi>
+
+ PR ld/18372
+ * peXXigen.c (rsrc_process_section): Skip discarded resource
+ sections.
+
+2015-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.bfd: Support i[3-7]86-*-elf*.
+
+2015-04-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_backend_post_process_headers): Undef for
+ Solaris 2.
+
+2015-04-30 Nick Clifton <nickc@redhat.com>
+
+ PR 18317
+ * elf32-mep.c (MEPREL): Use bfd_elf_generic_reloc instead of
+ mep_reloc.
+ (mep_reloc): Delete unused function.
+
+2015-04-29 Nick Clifton <nickc@redhat.com>
+
+ PR 17099
+ * coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG
+ relocs.
+
+2015-04-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * elf-s390-common.c (elf_s390_merge_obj_attributes): New function.
+ * elf32-s390.c (elf32_s390_merge_private_bfd_data): Call
+ elf_s390_merge_obj_attributes.
+ * elf64-s390.c (elf64_s390_merge_private_bfd_data): New function.
+
+2015-04-24 Jiong Wang <jiong.wang@arm.com>
+
+ PR ld/18270
+ * elfnn-aarch64.c (elfNN_aarch64_size_dynamic): Count local symbol for
+ GOT_NORMAL for both sgot/srelgot section.
+ (elfNN_aarch64_final_link_relocate): Relocate against GOT entry address
+ and generate necessary runtime relocation for GOT entry.
+
+2015-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18209
+ * archive.c (_bfd_get_elt_at_filepos): Copy is_linker_input.
+
+2015-04-24 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Reject
+ PC-relative relocation for external symbol.
+
+2015-04-24 Nick Clifton <nickc@redhat.com>
+
+ PR 18313
+ * compress.c (decompress_contents): Zero initialse the z_stream
+ structure.
+
+2015-04-24 Nick Clifton <nickc@redhat.com>
+
+ * elf.c (_bfd_elf_is_local_label_name): Extend test for assembler
+ local labels to include local labels with a numeric suffix and
+ fake symbols.
+
+2015-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18316
+ * section.c (SEC_MEP_VLIW): New.
+ * bfd-in2.h: Regenerated.
+
+2015-04-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/18277
+ * compress.c (bfd_compress_section_contents): Remove the
+ write_compress argument.
+ (bfd_init_section_compress_status): Updated.
+ (bfd_compress_section): Likewise.
+ * elf.c (_bfd_elf_set_reloc_sh_name): New.
+ (_bfd_elf_init_reloc_shdr): Add delay_st_name_p. Set sh_name
+ to (unsigned int) -1 if delay_st_name_p is TRUE. Use
+ _bfd_elf_set_reloc_sh_name.
+ (elf_fake_sections): Don't rename DWARF debug section for
+ linker output if it will be compressed. Instead, set
+ delay_st_name_p to TRUE and pass it to _bfd_elf_init_reloc_shdr.
+ (assign_section_numbers): Call _bfd_elf_strtab_addref only if
+ sh_name != (unsigned int) -1. Don't finalize nor assign
+ shstrtab section here. Delay setting output section names to
+ _bfd_elf_write_object_contents.
+ (_bfd_elf_compute_section_file_positions): Update comments on
+ sh_offset for shstrtab section.
+ (assign_file_positions_for_non_load_sections): Set sh_offset to
+ -1 for shstrtab section.
+ (assign_file_positions_except_relocs): Likewise.
+ (_bfd_elf_assign_file_positions_for_non_load): Set up sh_name
+ when compressing DWARF debug sections. Place shstrtab section
+ after DWARF debug sections have been compressed.
+ (_bfd_elf_write_object_contents): Setting sh_name for output
+ sections.
+
+2015-04-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18209
+ * bfd.c (bfd): Add is_linker_input.
+ * elf.c (convert_debug_to_zdebug): New.
+ (convert_zdebug_to_debug): Likewise.
+ (_bfd_elf_make_section_from_shdr): Don't convert .debug_* to
+ .zdebug_* here. Use convert_zdebug_to_debug. Set SEC_ELF_RENAME.
+ (_bfd_elf_init_reloc_shdr): Pass a pointer to section name
+ instead of a pointer to section.
+ (elf_fake_sections): Rename the section name if SEC_ELF_RENAME
+ is set.
+ * section.c (SEC_ELF_RENAME): New.
+ * bfd-in2.h: Regenerated.
+
+2015-04-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (TOC_BASE_ALIGN): Define.
+ (ppc64_elf_next_toc_section): Align multi-got toc base.
+ (ppc64_elf_set_toc): Likewise initial toc base and .TOC. symbol.
+=======
+2015-05-04 Catherine Moore <clm@codesourcery.com>
+
+ * elfxx-target.h: Add missing #endif.
+
+2015-04-22 Catherine Moore <clm@codesourcery.com>
+
+ * elf-eh-frame.c (_bfd_elf_write_section_eh_frame_entry): Don't write
+ the .eh_frame_entry section if the corresponding text section is marked
+ with SEC_EXCLUDE.
+
+2015-04-22 Catherine Moore <clm@codesourcery.com>
+ Bernd Schmidt <bernds@codesourcery.com>
+ Paul Brook <paul@codesourcery.com>
+
+ * bfd-in2.h (SEC_INFO_TYPE_EH_FRAME_ENTRY): Define.
+ * elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define.
+ (COMPACT_EH_CANT_UNWIND_OPCODE): Define.
+ (dwarf_eh_frame_hdr_info): New struct.
+ (compact_eh_frame_hdr_info): New struct.
+ (eh_frame_hdr_info): Separate dwarf and compact fields.
+ (elf_backend_data): Add compact_eh_encoding and cant_unwind_opcode
+ fields.
+ (bfd_elf_section_data): Add eh_frame_entry field.
+ (elf_section_eh_frame_entry): Define.
+ (bfd_elf_parse_eh_frame_entries): Declare.
+ (_bfd_elf_parse_eh_frame_entry): Declare.
+ (_bfd_elf_end_eh_frame_parsing): Declare.
+ (_bfd_elf_write_section_eh_frame_entry): Declare.
+ (_bfd_elf_fixup_eh_frame_hdr): Declare.
+ (_bfd_elf_eh_frame_entry_present): Declare.
+ (_bfd_elf_section_for_symbol): Declare.
+ * elf-eh-frame.c (bfd_elf_discard_eh_frame_entry): New function.
+ (bfd_elf_record_eh_frame_entry): New function.
+ (_bfd_elf_parse_eh_frame_entry): New function.
+ (_bfd_elf_parse_eh_frame): Update hdr_info field references.
+ (cmp_eh_frame_hdr): New function.
+ (add_eh_frame_hdr_terminator): New function.
+ (_bfd_elf_end_eh_frame_parsing): New function.
+ (find_merged_cie): Update hdr_info field references.
+ (_bfd_elf_discard_section_eh_frame): Likewise.
+ (_bfd_elf_discard_section_eh_frame_hdr): Likewise.
+ Add Compact EH support.
+ (_bfd_elf_eh_frame_entry_present): New function.
+ (_bfd_elf_maybe_strip_eh_frame_hdr): Add Compact EH support.
+ (_bfd_elf_write_section_eh_frame_entry): New function.
+ (_bfd_elf_write_section_eh_frame): Update hdr_info field references.
+ (_bfd_elf_write_section_eh_frame): Likewise.
+ (_bfd_elf_fixup_eh_frame_hdr): New function.
+ (write_compact_eh_frame_hdr): New function.
+ (_bfd_elf_write_section_eh_frame_hdr): Compact EH support. Update
+ hdr_info field references.
+ * elflink.c (_bfd_elf_section_for_symbol): New function.
+ (elf_section_ignore_discarded_relocs, elf_link_input_bfd):
+ Handle SEC_INFO_TYPE_EH_FRAME_ENTRY.
+ (bfd_elf_final_link): Call _bfd_elf_fixup_eh_frame_hdr.
+ (_bfd_elf_gc_mark): Support Compact EH.
+ (bfd_elf_parse_eh_frame_entries): New function.
+ (bfd_elf_gc_sections): Support Compact EH.
+ (bfd_elf_discard_info): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_compact_eh_encoding): New function.
+ (_bfd_mips_elf_cant_unwind_opcode): New function.
+ * elfxx-mips.h (_bfd_mips_elf_compact_eh_encoding): Declare.
+ (_bfd_mips_elf_cant_unwind_opcode): Declare.
+ (elf_backend_compact_eh_encoding): Define.
+ (elf_backend_cant_unwind_opcode): Define.
+ * elfxx-target.h (elf_backend_compact_eh_encoding):
+ Provide default definition.
+ (elf_backend_cant_unwind_opcode): Provide default definition.
+ * section.c (SEC_INFO_TYPE_EH_FRAME_ENTRY): Define.
+>>>>>>> 2015-05-04 Catherine Moore <clm@codesourcery.com>
+
+2015-04-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/18289
+ * elf32-i386.c (elf_i386_link_hash_entry): Add gotoff_ref.
+ (elf_i386_link_hash_newfunc): Initialize gotoff_ref to 0.
+ (elf_i386_create_dynamic_sections): Always allow copy relocs for
+ building executables.
+ (elf_i386_copy_indirect_symbol): Also copy gotoff_ref.
+ (elf_i386_check_relocs): Set gotoff_ref for R_386_GOTOFF.
+ (elf_i386_adjust_dynamic_symbol): Also allocate copy relocs for
+ PIE and R_386_GOTOFF.
+ (elf_i386_relocate_section): Allow R_386_GOTOFF in executable.
+
+2015-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (assign_section_numbers): Always set up sh_name.
+
+2015-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (assign_file_positions_for_non_load_sections): Iterate
+ sections by pointer.
+ (_bfd_elf_assign_file_positions_for_non_load): Likewise.
+
+2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bfd-in.h (compressed_debug_section_type): New.
+ * compress.c (bfd_compress_section_contents): Add an argument
+ for linker write compression and always generate .zdebug_*
+ section when linking.
+ (bfd_init_section_compress_status): Pass FALSE to
+ bfd_compress_section_contents.
+ (bfd_compress_section): New function.
+ * elf.c (elf_fake_sections): For linking, set SEC_ELF_COMPRESS
+ on DWARF debug sections if COMPRESS_DEBUG is set and rename
+ section if COMPRESS_DEBUG_GABI_ZLIB isn't set.
+ (assign_file_positions_for_non_load_sections): Set sh_offset
+ to -1 if SEC_ELF_COMPRESS is set.
+ (assign_file_positions_except_relocs): Likwise.
+ (_bfd_elf_assign_file_positions_for_relocs): Renamed to ...
+ (_bfd_elf_assign_file_positions_for_non_load): This. Change
+ return time to bfd_boolean. Compress the section if
+ SEC_ELF_COMPRESS is set.
+ (_bfd_elf_write_object_contents): Updated.
+ (_bfd_elf_set_section_contents): Write section contents to
+ the buffer if SEC_ELF_COMPRESS is set.
+ * merge.c: Include "elf-bfd.h".
+ (sec_merge_emit): Add arguments for contents and offset. Write
+ to contents with offset if contents isn't NULL.
+ (_bfd_write_merged_section): Write section contents to the
+ buffer if SEC_ELF_COMPRESS is set. Pass contents and
+ output_offset to sec_merge_emit.
+ * elflink.c (bfd_elf_final_link): Allocate the buffer for
+ output section contents if SEC_ELF_COMPRESS is set.
+ * section.c (SEC_ELF_COMPRESS): New.
+ * bfd-in2.h: Regenerated.
+
+2015-04-15 Alan Modra <amodra@gmail.com>
+
+ * elf32-rl78.c (rl78_elf_relocate_section): Typo fix.
+
+2015-04-14 Nick Clifton <nickc@redhat.com>
+
+ * elf32-rl78.c (RL78_OP_REL): New macro.
+ (rl78_elf_howto_table): Use it for complex relocs.
+ (get_symbol_value): Handle the cases when the info or status
+ arguments are NULL.
+ (get_romstart): Cache the status returned by get_symbol_value.
+ (get_ramstart): Likewise.
+ (RL78_STACK_PUSH): Generate an error message if the stack
+ overflows.
+ (RL78_STACK_POP): Likewise for underflows.
+ (rl78_compute_complex_reloc): New function. Contains the basic
+ processing code for all RL78 complex relocs.
+ (rl78_special_reloc): New function. Provides special reloc
+ handling for complex relocs.
+ (rl78_elf_relocate_section): Use rl78_compute_complex_reloc.
+ (rl78_offset_for_reloc): Likewise.
+
+2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/pr17709
+ * elflink.c (_bfd_elf_adjust_dynamic_copy): Check
+ info->extern_protected_data when warning copy relocs against
+ protected symbols.
+ (_bfd_elf_symbol_refs_local_p): Check info->extern_protected_data
+ when checking protected non-function symbols.
+
+2015-04-13 John Baldwin <jhb@FreeBSD.org>
+
+ * elf.c (elfcore_grok_note): Recognize NT_X86_XSTATE on
+ FreeBSD.
+ (elfcore_write_xstatereg): Use correct note name on FreeBSD.
+
+2015-04-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/18250
+ * elflink.c (elf_link_is_defined_archive_symbol): Return FALSE
+ if the object has been claimed by plugin.
+
+2015-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_relocate_section): Replace SYMBOLIC_BIND
+ with SYMBOL_REFERENCES_LOCAL when checking R_386_GOTOFF against
+ protected data symbol when building shared library.
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Check
+ R_X86_64_GOTOFF64 against undefined symbol and replace
+ SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL when checking
+ R_X86_64_GOTOFF64 against protected data symbol when building
+ shared library.
+
+2015-04-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/pr17709
+ * elf32-i386.c (elf_i386_relocate_section): Also check R_386_GOTOFF
+ against protected data symbol when building shared library.
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Also check
+ R_X86_64_GOTOFF64 against protected data symbol when building
+ shared library.
+
+2015-04-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/pr15228
+ PR ld/pr17709
+ * elf-bfd.h (elf_backend_data): Add extern_protected_data.
+ * elf32-i386.c (elf_backend_extern_protected_data): New.
+ Defined to 1.
+ * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
+ * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
+ copy relocs against protected symbols if extern_protected_data
+ is true.
+ (_bfd_elf_symbol_refs_local_p): Don't return true on protected
+ non-function symbols if extern_protected_data is true.
+ * elfxx-target.h (elf_backend_extern_protected_data): New.
+ Default to 0.
+ (elfNN_bed): Initialize extern_protected_data with
+ elf_backend_extern_protected_data.
+
+2015-04-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * compress.c (bfd_compress_section_contents): Replace bfd_malloc
+ and free with bfd_alloc and bfd_release on compressed buffer.
+ Release buffer if compressed section isn't smaller.
+
+2015-04-10 Alan Modra <amodra@gmail.com>
+
+ PR ld/18222
+ * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't report an error
+ on adding a protected visibility variable to .dynbss.
+
+2015-04-10 Alan Modra <amodra@gmail.com>
+
+ Revert 2015-03-05 H.J. Lu <hongjiu.lu@intel.com>
+ PR ld/pr15228
+ PR ld/pr17709
+ * elf-bfd.h (elf_backend_data): Delete extern_protected_data.
+ * elf32-i386.c (elf_backend_extern_protected_data): Delete.
+ * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
+ * elflink.c (_bfd_elf_adjust_dynamic_copy): Remove
+ extern_protected_data test.
+ (_bfd_elf_symbol_refs_local_p): Likewise.
+ * elfxx-target.h (elf_backend_extern_protected_data): Delete.
+ (elfNN_bed): Delete elf_backend_extern_protected_data init.
+
+2015-04-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * compress.c (bfd_compress_section_contents): Update comments.
+ (bfd_init_section_decompress_status): Likewise.
+ (bfd_init_section_compress_status): Likewise.
+
+2015-04-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-target.h (TARGET_BIG_SYM): Add BFD_COMPRESS_GABI to
+ object_flags.
+ (TARGET_LITTLE_SYM): Likewise.
+
+2015-04-09 Max Filippov <jcmvbkbc@gmail.com>
+
+ * elf32-xtensa.c (splay-tree.h): include header.
+ (text_action_struct): drop next pointer.
+ (text_action_list_struct): drop head pointer, add count and
+ tree fields.
+ (find_fill_action): instead of linear search in text_action_list
+ search in the tree.
+ (text_action_compare, action_first, action_next): new functions.
+ (text_action_add, text_action_add_literal): instead of linear
+ search and insertion insert new node into the tree.
+ (removed_by_actions): pass additional parameter: action_list,
+ use it to traverse the tree.
+ (offset_with_removed_text): pass additional action_list parameter
+ to removed_by_actions.
+ (map_action_fn_context): new typedef.
+ (map_action_fn_context_struct): new structure.
+ (map_action_fn): new function.
+ (map_removal_by_action): use splay_tree_foreach to build map.
+ (find_insn_action): replace linear search in text_action_list
+ with series of splay_tree_lookups.
+ (print_action, print_action_list_fn): new functions.
+ (print_action_list): use splay_tree_foreach.
+ (init_xtensa_relax_info): drop action_list.head initialization.
+ Initialize the tree.
+ (compute_text_actions): use non-zero action_list_count instead of
+ non-NULL action list.
+ (xlate_map_context): new typedef.
+ (xlate_map_context_struct): new structure.
+ (xlate_map_fn): new function.
+ (build_xlate_map): use splay_tree_foreach to build map.
+ (action_remove_bytes_fn): new function.
+ (relax_section): use zero action_list_count instead of NULL
+ action list. Use splay_tree_foreach to count final section size.
+ Drop unused variable 'removed'.
+
+2015-04-09 Max Filippov <jcmvbkbc@gmail.com>
+
+ * elf32-xtensa.c (removed_literal_map_entry): new typedef.
+ (removed_literal_map_entry_struct): new structure.
+ (removed_literal_list_struct): add new fields: n_map and map.
+ (map_removed_literal, removed_literal_compare): new functions.
+ (find_removed_literal): build index array for literals ordered
+ by VMA, use binary search to find removed literal.
+
+2015-04-09 Max Filippov <jcmvbkbc@gmail.com>
+
+ * elf32-xtensa.c (removal_by_action_entry_struct,
+ removal_by_action_map_struct): new structures.
+ (removal_by_action_entry, removal_by_action_map): new typedefs.
+ (text_action_list_struct): add new field: map.
+ (map_removal_by_action, removed_by_actions_map,
+ offset_with_removed_text_map): new functions.
+ (relax_section): replace offset_with_removed_text with
+ offset_with_removed_text_map.
+ (translate_reloc, relax_property_section, relax_section_symbols):
+ replace removed_by_actions with removed_by_actions_map.
+
+2015-04-09 Max Filippov <jcmvbkbc@gmail.com>
+
+ * elf32-xtensa.c (reloc_range_list, reloc_range_list_entry,
+ reloc_range): new typedef.
+ (reloc_range_list_struct, reloc_range_list_entry_struct,
+ reloc_range_struct): new structures.
+ (reloc_range_compare, build_reloc_ranges,
+ reloc_range_list_append, reloc_range_list_remove,
+ reloc_range_list_update_range, free_reloc_range_list): new
+ functions.
+ (compute_text_actions): precompute relocation opcodes before the
+ loop. Add relevant_relocs variable, initialize it before the
+ loop, pass it to the check_section_ebb_pcrels_fit.
+ (check_section_ebb_pcrels_fit): add new parameter:
+ relevant_relocs. Update address range in the relevant_relocs if
+ it's non-NULL and iterate only over relevant relocations.
+
+2015-04-09 Nick Clifton <nickc@redhat.com>
+
+ * elf32-rx.c (describe_flags): Report the settings of the string
+ insn using bits.
+ (rx_elf_merge_private_bfd_data): Handle merging of the string insn
+ using bits.
+
+2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * compress.c (bfd_compress_section_contents): Work around a GCC
+ uninitialized warning bug fixed in GCC 4.7.
+
+2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * archive.c (_bfd_get_elt_at_filepos): Also copy BFD_COMPRESS_GABI
+ bit.
+ * bfd.c (bfd::flags): Increase size to 18 bits.
+ (BFD_COMPRESS_GABI): New.
+ (BFD_FLAGS_SAVED): Add BFD_COMPRESS_GABI.
+ (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
+ (bfd_update_compression_header): New fuction.
+ (bfd_check_compression_header): Likewise.
+ (bfd_get_compression_header_size): Likewise.
+ (bfd_is_section_compressed_with_header): Likewise.
+ * compress.c (MAX_COMPRESSION_HEADER_SIZE): New.
+ (bfd_compress_section_contents): Return the uncompressed size if
+ the full section contents is compressed successfully. Support
+ converting from/to .zdebug* sections.
+ (bfd_get_full_section_contents): Call
+ bfd_get_compression_header_size to get compression header size.
+ (bfd_is_section_compressed): Renamed to ...
+ (bfd_is_section_compressed_with_header): This. Add a pointer
+ argument to return compression header size.
+ (bfd_is_section_compressed): Use it.
+ (bfd_init_section_decompress_status): Call
+ bfd_get_compression_header_size to get compression header size.
+ Return FALSE if uncompressed section size is 0.
+ * elf.c (_bfd_elf_make_section_from_shdr): Support converting
+ from/to .zdebug* sections.
+ * bfd-in2.h: Regenerated.
+
+2015-04-07 Alan Modra <amodra@gmail.com>
+
+ * elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being
+ mapped to output .got section.
+
+2015-04-07 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (struct ppc_elf_link_hash_entry): Add has_addr16_ha
+ and has_addr16_lo. Make has_sda_refs a bitfield.
+ (ppc_elf_check_relocs): Set new flags.
+ (ppc_elf_link_hash_table_create): Update default_params.
+ (ppc_elf_adjust_dynamic_symbol): Clear protected_def in cases
+ where we won't be making .dynbss entries or editing code. Set
+ params->pic_fixup when we'll edit code for protected var access.
+ (allocate_dynrelocs): Allocate got entry for edited code and
+ discard dyn_relocs.
+ (struct ppc_elf_relax_info): Add picfixup_size.
+ (ppc_elf_relax_section): Rename struct one_fixup to struct
+ one_branch_fixup. Rename fixups to branch_fixups. Size space for
+ pic fixups.
+ (ppc_elf_relocate_section): Edit non-PIC accessing protected
+ visibility variables to PIC. Don't emit dyn_relocs for code
+ we've edited.
+ * elf32-ppc.h (struct ppc_elf_params): Add pic_fixup.
+
+2015-04-07 Nick Clifton <nickc@redhat.com>
+
+ * elf.c (_bfd_elf_is_local_label_name): Treat assembler generated
+ local labels as local.
+
+2015-04-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * compress.c (get_uncompressed_size): Removed.
+ (bfd_compress_section_contents): Use bfd_putb64 to write
+ uncompressed section size.
+ (bfd_init_section_decompress_status): Replace
+ get_uncompressed_size with bfd_getb64.
+
+2015-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (_bfd_elf_init_private_section_data): Also preserve the
+ SHF_COMPRESSED bit if not decompress.
+
+2015-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * compress.c (get_uncompressed_size): New. Extracted from ...
+ (bfd_init_section_decompress_status): This. Use it.
+
+2015-04-02 Andrew Turner <andrew@freebsd.org>
+
+ * config.bfd: Add aarch64-*-freebsd* target triple.
+
2015-04-02 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.