From 5c1ad6b5bb2602a0c590f2e49316ccc9fb30e1a9 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 2 Jan 2017 13:55:05 +1030 Subject: ChangeLog rotation --- bfd/ChangeLog | 4283 +-------------------------------------------------- bfd/ChangeLog-2016 | 4293 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4295 insertions(+), 4281 deletions(-) create mode 100644 bfd/ChangeLog-2016 (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 15e104a..e33ce1b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,4285 +1,6 @@ -2016-12-31 Alan Modra - - * elfn32-mips.c (elf_backend_want_dynrelro): Define. - -2016-12-31 Dimitar Dimitrov - - * archures.c: Add bfd_arch_pru. - * Makefile.am: Add PRU target. - * config.bfd: Ditto. - * configure.ac: Ditto. - * elf-bfd.h (enum elf_target_id): Add PRU_ELF_DATA. - * targets.c: Add pru_elf32_vec. - * reloc.c: Add PRU relocations. - * cpu-pru.c: New file. - * elf32-pru.c: New file. - * Makefile.in: Regenerate. - * configure: Regenerate. - * po/SRC-POTFILES.in: Regenerate. - * bfd-in2.h: Regenerate - * libbfd.h: Regenerate. - -2016-12-29 Alan Modra - - * elflink.c (_bfd_elf_link_hash_copy_indirect): Only omit - copying one flag, ref_dynamic, when versioned_hidden. - * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise. - * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Use same - logic for copying weakdef flags. Copy plabel flag and merge - tls_type. - * elf32-i386.c (elf_i386_copy_indirect_symbol): Use same logic - for copying weakdef flags. - * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Likewise. - * elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise. - * elf32-sh.c (sh_elf_copy_indirect_symbol): Likewise. - * elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise. - * elfnn-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise. - * elf64-x86-64.c (elf_x86_64_copy_indirect_symbol): Likewise. - Simplify. - -2016-12-28 Alan Modra - - PR ld/20995 - * elflink.c (elf_link_add_object_symbols): Mark relro sections - in dynamic objects SEC_READONLY. - -2016-12-26 Alan Modra - - PR ld/20995 - * elf-bfd.h (struct elf_link_hash_table): Add sdynrelro and - sreldynrelro. - (struct elf_backend_data): Add want_dynrelro. - * elfxx-target.h (elf_backend_want_dynrelro): Define. - (elfNN_bed): Update initializer. - * elflink.c (_bfd_elf_create_dynamic_sections): Create - sdynrelro and sreldynrelro sections. - * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Place variables - copied into the executable from read-only sections into sdynrelro. - (elf32_arm_size_dynamic_sections): Handle sdynrelro. - (elf32_arm_finish_dynamic_symbol): Select sreldynrelro for - dynamic relocs in sdynrelro. - (elf_backend_want_dynrelro): Define. - * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol) - (elf32_hppa_size_dynamic_sections, elf32_hppa_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-i386.c (elf_i386_adjust_dynamic_symbol) - (elf_i386_size_dynamic_sections, elf_i386_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-metag.c (elf_metag_adjust_dynamic_symbol) - (elf_metag_size_dynamic_sections, elf_metag_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol) - (microblaze_elf_size_dynamic_sections) - (microblaze_elf_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol) - (nios2_elf32_adjust_dynamic_symbol) - (nios2_elf32_size_dynamic_sections) - (elf_backend_want_dynrelro): As above. - * elf32-or1k.c (or1k_elf_finish_dynamic_symbol) - (or1k_elf_adjust_dynamic_symbol, or1k_elf_size_dynamic_sections) - (elf_backend_want_dynrelro): As above. - * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol) - (ppc_elf_size_dynamic_sections, ppc_elf_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-s390.c (elf_s390_adjust_dynamic_symbol) - (elf_s390_size_dynamic_sections, elf_s390_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-tic6x.c (elf32_tic6x_adjust_dynamic_symbol) - (elf32_tic6x_size_dynamic_sections) - (elf32_tic6x_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf32-tilepro.c (tilepro_elf_adjust_dynamic_symbol) - (tilepro_elf_size_dynamic_sections) - (tilepro_elf_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol) - (ppc64_elf_size_dynamic_sections, ppc64_elf_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf64-s390.c (elf_s390_adjust_dynamic_symbol) - (elf_s390_size_dynamic_sections, elf_s390_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol) - (elf_x86_64_size_dynamic_sections) - (elf_x86_64_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol) - (elfNN_aarch64_size_dynamic_sections) - (elfNN_aarch64_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol) - (riscv_elf_size_dynamic_sections, riscv_elf_finish_dynamic_symbol) - (elf_backend_want_dynrelro): As above. - * elfxx-mips.c (_bfd_mips_elf_adjust_dynamic_symbol) - (_bfd_mips_elf_size_dynamic_sections) - (_bfd_mips_vxworks_finish_dynamic_symbol): As above. - * elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol) - (_bfd_sparc_elf_size_dynamic_sections) - (_bfd_sparc_elf_finish_dynamic_symbol): As above. - * elfxx-tilegx.c (tilegx_elf_adjust_dynamic_symbol) - (tilegx_elf_size_dynamic_sections) - (tilegx_elf_finish_dynamic_symbol): As above. - * elf32-mips.c (elf_backend_want_dynrelro): Define. - * elf64-mips.c (elf_backend_want_dynrelro): Define. - * elf32-sparc.c (elf_backend_want_dynrelro): Define. - * elf64-sparc.c (elf_backend_want_dynrelro): Define. - * elf32-tilegx.c (elf_backend_want_dynrelro): Define. - * elf64-tilegx.c (elf_backend_want_dynrelro): Define. - * elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol): Tidy. - (microblaze_elf_size_dynamic_sections): Handle sdynbss. - * elf32-nios2.c (nios2_elf32_size_dynamic_sections): Make use - of linker shortcuts to dynamic sections rather than comparing - names. Correctly set "got" flag. - -2016-12-26 Alan Modra - - * elf-bfd.h (struct elf_link_hash_table): Add sdynbss and srelbss. - * elflink.c (_bfd_elf_create_dynamic_sections): Set them. Create - .rel.bss/.rela.bss for executables, both PIE and non-PIE. - * elf32-arc.c (struct elf_arc_link_hash_table): Delete srelbss. - Use ELF hash table var throughout. - * elf32-arm.c (struct elf32_arm_link_hash_table): Delete sdynbss - and srelbss. Use ELF hash table vars throughout. - * elf32-hppa.c (struct elf32_hppa_link_hash_table): Likewise. - * elf32-i386.c (struct elf_i386_link_hash_table): Likewise. - * elf32-metag.c (struct elf_metag_link_hash_table): Likewise. - * elf32-microblaze.c (struct elf32_mb_link_hash_table): Likewise. - * elf32-nios2.c (struct elf32_nios2_link_hash_table): Likewise. - * elf32-or1k.c (struct elf_or1k_link_hash_table): Likewise. - * elf32-ppc.c (struct ppc_elf_link_hash_table): Likewise. - * elf32-s390.c (struct elf_s390_link_hash_table): Likewise. - * elf32-tic6x.c (struct elf32_tic6x_link_hash_table): Likewise. - * elf32-tilepro.c (struct tilepro_elf_link_hash_table): Likewise. - * elf64-ppc.c (struct ppc_link_hash_table): Likewise. - * elf64-s390.c (struct elf_s390_link_hash_table): Likewise. - * elf64-x86-64.c (struct elf_x86_64_link_hash_table): Likewise. - * elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Likewise. - * elfnn-riscv.c (struct riscv_elf_link_hash_table): Likewise. - * elfxx-mips.c (struct mips_elf_link_hash_table): Likewise. - * elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Likewise. - * elfxx-sparc.c: Likewise. - * elfxx-tilegx.c (struct tilegx_elf_link_hash_table): Likewise. - - * elf32-arc.c (arc_elf_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - * elf32-microblaze.c (microblaze_elf_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - * elf32-or1k.c (or1k_elf_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - * elf32-s390.c (elf_s390_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - * elf64-ppc.c (ppc64_elf_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - * elf64-s390.c (elf_s390_create_dynamic_sections): Delete. - (elf_backend_create_dynamic_sections): Use base ELF version. - - * elf32-tilepro.c (tilepro_elf_create_dynamic_sections): Remove - extraneous tests. - * elfnn-aarch64.c (elfNN_aarch64_create_dynamic_sections): Likewise. - * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Likewise. - * elfxx-tilegx.c (tilegx_elf_create_dynamic_sections): Likewise. - - * elf32-i386.c (elf_i386_create_dynamic_sections): Don't create - ".rel.bss" for executables. - * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Don't create - ".rela.bss" for executables. - * elf32-nios2.c (nios2_elf32_create_dynamic_sections): Don't - ignore return status from _bfd_elf_create_dynamic_sections. - -2016-12-23 Maciej W. Rozycki - - * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Revert - 2016-02-23 change and remove EI_ABIVERSION 5 support. - -2016-12-23 Alan Modra - - * linker.c (generic_link_check_archive_element): Call target - bfd_link_add_symbols to add element symbols. - -2016-12-23 Alan Modra - - * linker.c (generic_link_add_symbols): Delete. Merge into.. - (_bfd_generic_link_add_symbols): ..here. - (generic_link_check_archive_element_no_collect): Delete. - (generic_link_check_archive_element_collect): Likewise. - (generic_link_add_object_symbols): Remove "collect" param. Update - callers. - (generic_link_add_symbol_list): Likewise. - (generic_link_check_archive_element): Likewise. Call - bfd_link_add_symbols rather than generic_link_add_object_symbols. - * libbfd-in.h (_bfd_generic_link_add_symbols_collect): Delete. - * libbfd.h: Regenerate. - -2016-12-23 Alan Modra - - PR binutils/20464 - PR binutils/14625 - * configure.ac: Revert 2016-05-25 configure change setting - want_64_bit_archive for mips64 and s390x. Revise USE_64_BIT_ARCHIVE - description. - * configure: Regenerate. - * config.in: Regenerate. - -2016-12-23 Tristan Gingold - - * version.m4: Bump version to 2.28.51 - * configure: Regenerate. - -2016-12-23 Tristan Gingold - - * po/bfd.pot: Regenerate. - -2016-12-22 Alan Modra - - * 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 - Andreas Schwab - - * 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 - - * 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 - - * elfnn-riscv.c (bfd_riscv_get_max_alignment): Return bfd_vma - instead of unsigned int. - -2016-12-20 Andrew Waterman - Kuan-Lin Chen - - * 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 - - * 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 - - * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Improve - error message when linking elf32 and elf64. - -2016-12-19 Christian Groessler - - * elf32-arm.c (elf32_arm_popcount): Rename from 'popcount'. Make - 'sum' local variable signed. - -2016-12-16 fincs - - * 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 - - 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 - - * 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 - - * bfd/elfnn-aarch64.c: fix TLS relaxations for ilp32 where - TCB_SIZE is used. - -2016-12-13 Alan Modra - - * 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 - - * 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 - - PR ld/20932 - * elflink.c (bfd_elf_record_link_assignment): Handle warning symbols. - -2016-12-07 Nick Clifton - - 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 - - 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 - - * 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 - - * elfxx-sparc.c: Do not stop processing relocations after - partially relaxing a call with WDISP30. - -2016-12-05 Nick Clifton - - 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 - - * 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 - - * 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 - - * elf64-ppc.c (add_symbol_adjust): Delete dead code. - -2016-12-03 Alan Modra - - * elf64-ppc.c (add_symbol_adjust): Correct order of tests for - warning and indirect symbols. - -2016-12-03 Alan Modra - - * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic - flags when direct symbol is versioned_hidden. - -2016-12-02 Nick Clifton - - 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 - - * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to - elf_parse_notes. - -2016-12-02 Josh Conner - - * config.bfd: Add support for fuchsia (OS). - -2016-12-01 Yury Norov - - 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 - - PR ld/16720 - * elfxx-mips.c (mips_elf_calculate_relocation): Remove overflow - test for HI16 relocs. - -2016-12-01 Nick Clifton - - 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 - - * elf.c (get_program_header_size): Revert accidental change. - -2016-11-30 Alan Modra - - 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 - - * 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 - - PR ld/20815 - * elf.c (phdr_sorter): Delete. - (assign_file_positions_except_relocs): Do not sort program - headers. - -2016-11-25 Jon Turney - - PR ld/20193 - * peXXigen.c (rsrc_process_section): Do not shrink the merged - .rsrc section. - -2016-11-24 Jiong Wang - - PR target/20737 - * elf32-arm.c (elf32_arm_final_link_relocate): Bind defined symbol - locally in PIE. - -2016-11-24 Kuan-Lin Chen - - * bfd/elfxx-riscv.c (howto_table): Fix bitsize of R_RISCV_ADD8. - -2016-11-23 Nick Clifton - - 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 - - * 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 - - * elf-m10300.c (mn10300_elf_check_relocs): Use elf htab shortcuts - to dynamic sections. - (mn10300_elf_final_link_relocate): Likewise. - (_bfd_mn10300_elf_adjust_dynamic_symbol): Likewise. - (_bfd_mn10300_elf_size_dynamic_sections): Likewise. - (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise. - (_bfd_mn10300_elf_finish_dynamic_sections): Likewise. - * elf32-bfin.c (bfin_check_relocs): Likewise. - (bfin_relocate_section): Likewise. - (bfin_gc_sweep_hook): Likewise. - (struct bfinfdpic_elf_link_hash_table): Delete sgot, sgotrel, splt - and spltrel. - (bfinfdpic_got_section, bfinfdpic_gotrel_section, - bfinfdpic_plt_section, bfinfdpic_pltrel_section): Define using elf - shortcut sections. - (_bfin_create_got_section): Use elf htab shortcuts to dyn sections. - Delete dead code. - (bfin_finish_dynamic_symbol): Use elf htab shortcuts to dyn sections. - (bfin_size_dynamic_sections): Likewise. - * elf32-cr16.c (_bfd_cr16_elf_create_got_section): Likewise. - (cr16_elf_check_relocs): Likewise. - (cr16_elf_final_link_relocate): Likewise. - (_bfd_cr16_elf_create_dynamic_sections): Likewise. - (_bfd_cr16_elf_adjust_dynamic_symbol): Likewise. - (_bfd_cr16_elf_size_dynamic_sections): Likewise. - (_bfd_cr16_elf_finish_dynamic_symbol): Likewise. - (_bfd_cr16_elf_finish_dynamic_sections): Likewise. - * elf32-cris.c (cris_elf_relocate_section): Likewise. - (elf_cris_finish_dynamic_symbol): Likewise. - (elf_cris_finish_dynamic_sections): Likewise. - (cris_elf_gc_sweep_hook): Likewise. - (elf_cris_adjust_gotplt_to_got): Likewise. - (elf_cris_adjust_dynamic_symbol): Likewise. - (cris_elf_check_relocs): Likewise. Delete dead code. - (elf_cris_size_dynamic_sections): Use elf htab shortcuts to dynamic - sections. - (elf_cris_discard_excess_program_dynamics): Likewise. - * elf32-frv.c (struct frvfdpic_elf_link_hash_table): Delete sgot, - sgotrel, splt and spltrel. - (frvfdpic_got_section, frvfdpic_gotrel_section, - frvfdpic_plt_section, frvfdpic_pltrel_section): Define using elf - shortcut sections. - (_frv_create_got_section): Likewise. - * elf32-hppa.c (struct elf32_hppa_link_hash_table): Delete sgot, - srelgot, splt and srelplt. - (hppa_build_one_stub): Use elf htab shortcuts to dynamic sections. - (elf32_hppa_create_dynamic_sections): Likewise. - (elf32_hppa_check_relocs): Likewise. - (allocate_plt_static): Likewise. - (allocate_dynrelocs): Likewise. - (elf32_hppa_size_dynamic_sections): Likewise. - (elf32_hppa_relocate_section): Likewise. - (elf32_hppa_finish_dynamic_symbol): Likewise. - (elf32_hppa_finish_dynamic_sections): Likewise. - * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise. - * elf32-lm32.c (struct elf_lm32_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - (lm32fdpic_got_section, lm32fdpic_gotrel_section): Define using elf - shortcut sections. - (create_got_section): Delete. Use _bfd_elf_create_got_section instead. - (lm32_elf_relocate_section): Use elf htab shortcuts to dyn sections. - (lm32_elf_check_relocs): Likewise. - (lm32_elf_finish_dynamic_sections): Likewise. - (lm32_elf_finish_dynamic_symbol): Likewise. - (allocate_dynrelocs): Likewise. - (lm32_elf_size_dynamic_sections): Likewise. - (lm32_elf_create_dynamic_sections): Likewise. - * elf32-m32c.c (m32c_elf_relocate_section): Likewise. - (m32c_elf_check_relocs): Likewise. - (m32c_elf_finish_dynamic_sections): Likewise. - (m32c_elf_always_size_sections): Likewise. - * elf32-m32r.c (struct elf_m32r_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - (create_got_section): Delete. Use _bfd_elf_create_got_section instead. - (m32r_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic - sections. - (allocate_dynrelocs): Likewise. - (m32r_elf_size_dynamic_sections): Likewise. - (m32r_elf_relocate_section): Likewise. - (m32r_elf_finish_dynamic_symbol): Likewise. - (m32r_elf_finish_dynamic_sections): Likewise. - (m32r_elf_check_relocs): Likewise. - * elf32-m68k.c (elf_m68k_partition_multi_got): Likewise. - (elf_m68k_check_relocs): Likewise. - (elf_m68k_adjust_dynamic_symbol): Likewise. - (elf_m68k_size_dynamic_sections): Likewise. - (elf_m68k_relocate_section): Likewise. - (elf_m68k_finish_dynamic_symbol): Likewise. - (elf_m68k_finish_dynamic_sections): Likewise. - * elf32-metag.c (struct elf_metag_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - (elf_metag_relocate_section): Use elf htab shortcuts to dynamic - sections. - (elf_metag_create_dynamic_sections): Likewise. Allocate got header - here in .got. - (elf_metag_check_relocs): Use elf htab shortcuts to dynamic sections. - (allocate_dynrelocs): Likewise. - (elf_metag_size_dynamic_sections): Likewise. - (elf_metag_finish_dynamic_symbol): Likewise. - (elf_metag_finish_dynamic_sections): Likewise. - (elf_metag_size_stubs): Likewise. - (elf_backend_got_header_size): Don't define. - (elf_backend_want_got_plt): Define. - * elf32-microblaze.c (struct elf32_mb_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelpl. - (microblaze_elf_relocate_section): Use elf htab shortcuts to dynamic - sections. - (create_got_section): Delete. Use _bfd_elf_create_got_section instead. - (microblaze_elf_check_relocs): Use elf htab shortcuts to dyn sections. - (microblaze_elf_create_dynamic_sections): Likewise. - (allocate_dynrelocs): Likewise. - (microblaze_elf_size_dynamic_sections): Likewise. - (microblaze_elf_finish_dynamic_symbol): Likewise. - (microblaze_elf_finish_dynamic_sections): Likewise. - * elf32-nds32.c (nds32_elf_link_hash_table_create): Don't NULL - already zero fields. - (create_got_section): Delete. Use _bfd_elf_create_got_section instead. - (nds32_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic - sections. - (allocate_dynrelocs): Likewise. - (nds32_elf_size_dynamic_sections): Likewise. - (nds32_elf_relocate_section): Likewise. - (nds32_elf_finish_dynamic_symbol): Likewise. - (nds32_elf_finish_dynamic_sections): Likewise. - (nds32_elf_check_relocs): Likewise. - (calculate_plt_memory_address): Likewise. - (calculate_got_memory_address): Likewise. - * elf32-nds32.h (struct elf_nds32_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - * elf32-or1k.c (struct elf_or1k_link_hash_table): Likewise. - (or1k_elf_relocate_section): Use elf htab shortcuts to dyn sections. - (create_got_section): Delete. Use _bfd_elf_create_got_section instead. - (or1k_elf_check_relocs): Use elf htab shortcuts to dynamic sections. - (or1k_elf_finish_dynamic_sections): Likewise. - (or1k_elf_finish_dynamic_symbol): Likewise. - (allocate_dynrelocs): Likewise. - (or1k_elf_size_dynamic_sections): Likewise. - (or1k_elf_create_dynamic_sections): Likewise. - * elf32-ppc.c (struct ppc_elf_link_hash_table): Delete got, relgot, - plt, relplt, iplt, reliplt and sgotplt. - (ppc_elf_create_got): Use elf htab shortcuts to dynamic sections. - (ppc_elf_create_glink): Likewise. - (ppc_elf_create_dynamic_sections): Likewise. - (ppc_elf_check_relocs): Likewise. - (ppc_elf_select_plt_layout): Likewise. - (ppc_elf_tls_setup): Likewise. - (allocate_got): Likewise. - (allocate_dynrelocs): Likewise. - (ppc_elf_size_dynamic_sections): Likewise. - (ppc_elf_relax_section): Likewise. - (ppc_elf_relocate_section): Likewise. - (ppc_elf_finish_dynamic_symbol): Likewise. - (ppc_elf_reloc_type_class): Likewise. - (ppc_elf_finish_dynamic_sections): Likewise. - * elf32-rl78.c (rl78_elf_relocate_section): Likewise. - (rl78_elf_check_relocs): Likewise. - (rl78_elf_finish_dynamic_sections): Likewise. - (rl78_elf_always_size_sections): Likewise. - * elf32-s390.c (create_got_section): Delete. - (elf_s390_create_dynamic_sections): Use _bfd_elf_create_got_section. - (elf_s390_check_relocs): Likewise. - * elf32-score.c (score_elf_create_got_section): Set elf shortcuts. - (s3_bfd_score_elf_finish_dynamic_sections): Use elf shortcuts. - * elf32-score7.c (score_elf_create_got_section): As above. - (s7_bfd_score_elf_finish_dynamic_sections): As above. - * elf32-sh.c (struct elf_sh_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - (create_got_section): Don't set them. - (sh_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic - sections. - (allocate_dynrelocs): Likewise. - (sh_elf_size_dynamic_sections): Likewise. - (sh_elf_add_rofixup): Likewise. - (sh_elf_relocate_section): Likewise. - (sh_elf_check_relocs): Likewise. - (sh_elf_finish_dynamic_symbol): Likewise. - (sh_elf_finish_dynamic_sections): Likewise. - * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise. - * elf32-tilepro.c (tilepro_elf_create_got_section): Likewise. - * elf32-vax.c (elf_vax_check_relocs): Likewise. - (elf_vax_adjust_dynamic_symbol): Likewise. - (elf_vax_always_size_sections): Likewise. - (elf_vax_instantiate_got_entries): Likewise. - (elf_vax_relocate_section): Likewise. - (elf_vax_finish_dynamic_symbol): Likewise. - (elf_vax_finish_dynamic_sections): Likewise. - * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise. - (xstormy16_elf_always_size_sections): Likewise. - (xstormy16_elf_relocate_section): Likewise. - (xstormy16_elf_finish_dynamic_sections): Likewise. - * elf32-xtensa.c (struct elf_xtensa_link_hash_table): Delete sgot, - sgotplt, srelgot, splt and srelplt. - (elf_xtensa_create_dynamic_sections): Use elf htab shortcuts to - dynamic sections. - (elf_xtensa_allocate_dynrelocs): Likewise. - (elf_xtensa_allocate_local_got_size): Likewise. - (elf_xtensa_size_dynamic_sections): Likewise. - (elf_xtensa_relocate_section): Likewise. - (elf_xtensa_finish_dynamic_sections): Likewise. - (shrink_dynamic_reloc_sections): Likewise. - (elf_xtensa_get_plt_section): Likewise. - (elf_xtensa_get_gotplt_section): Likewise. - (xtensa_callback_required_dependence): Likewise. - * elf64-alpha.c (elf64_alpha_create_dynamic_sections): Set elf htab - shortcuts to dynamic sections. - (elf64_alpha_adjust_dynamic_symbol): Use elf htab shortcuts to - dynamic sections. - (elf64_alpha_size_plt_section): Likewise. - (elf64_alpha_size_rela_got_1): Likewise. - (elf64_alpha_size_rela_got_section): Likewise. - (elf64_alpha_relocate_section): Likewise. - (elf64_alpha_finish_dynamic_symbol): Likewise. - (elf64_alpha_finish_dynamic_sections): Likewise. - * elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise. - * elf64-s390.c (create_got_section): Delete. - (elf_s390_create_dynamic_sections): Use _bfd_elf_create_got_section. - (elf_s390_check_relocs): Likewise. - * elf64-sh64.c (sh_elf64_relocate_section): Use elf htab shortcuts to - dynamic sections. - (sh_elf64_check_relocs): Likewise. - (sh64_elf64_adjust_dynamic_symbol): Likewise. - (sh64_elf64_size_dynamic_sections): Likewise. - (sh64_elf64_finish_dynamic_symbol): Likewise. - (sh64_elf64_finish_dynamic_sections): Likewise. - * elflink.c (_bfd_elf_create_got_section): Likewise. - * elfnn-aarch64.c (aarch64_elf_create_got_section): Likewise. - * elfnn-ia64.c (elfNN_ia64_size_dynamic_sections): Likewise. - (elfNN_ia64_finish_dynamic_sections): Likewise. - * elfnn-riscv.c (riscv_elf_create_got_section): Likewise. - * elfxx-mips.c (struct mips_elf_link_hash_table): Delete srellt, - sgotplt, splt and sgot. - (mips_elf_initialize_tls_slots): Use elf htab shortcuts to dynamic - sections. - (mips_elf_gotplt_index): Likewise. - (mips_elf_primary_global_got_index): Likewise. - (mips_elf_global_got_index): Likewise. - (mips_elf_got_offset_from_index): Likewise. - (mips_elf_create_local_got_entry): Likewise. - (mips_elf_create_got_section): Likewise. - (mips_elf_calculate_relocation): Likewise. - (_bfd_mips_elf_create_dynamic_sections): Likewise. - (_bfd_mips_elf_adjust_dynamic_symbol): Likewise. - (mips_elf_lay_out_got): Likewise. - (mips_elf_set_plt_sym_value): Likewise. - (_bfd_mips_elf_size_dynamic_sections): Likewise. - (_bfd_mips_elf_finish_dynamic_symbol): Likewise. - (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. - (mips_finish_exec_plt): Likewise. - (mips_vxworks_finish_exec_plt): Likewise. - (mips_vxworks_finish_shared_plt): Likewise. - (_bfd_mips_elf_finish_dynamic_sections): Likewise. - * elfxx-sparc.c (sparc_finish_dyn): Likewise. - * elfxx-tilegx.c (tilegx_elf_create_got_section): Likewise. - -2016-11-23 Alan Modra - - * po/BLD-POTFILES.in: Regenerate. - * po/SRC-POTFILES.in: Regenerate. - -2016-11-22 Ambrogino Modigliani - - * warning.m4: Fix spelling in comments. - * configure.ac: Fix spelling in comments. - * configure: Regenerate. - -2016-11-22 Alan Modra - - PR 20744 - * elf32-ppc.h (struct ppc_elf_params): Add vle_reloc_fixup field. - * elf32-ppc.c: Include opcode/ppc.h. - (ppc_elf_howto_raw): Correct dst_mask for R_PPC_VLE_LO16A, - R_PPC_VLE_LO16D, R_PPC_VLE_HI16A, R_PPC_VLE_HI16D, R_PPC_VLE_HA16A, - R_PPC_VLE_HA16D, R_PPC_VLE_SDAREL_LO16A, R_PPC_VLE_SDAREL_LO16D, - R_PPC_VLE_SDAREL_HI16A, R_PPC_VLE_SDAREL_HI16D, - R_PPC_VLE_SDAREL_HA16A, and R_PPC_VLE_SDAREL_HA16D relocs. - (ppc_elf_link_hash_table_create): Update default_params init. - (ppc_elf_vle_split16): Correct shift and mask. Add params. - Report or fix insn/reloc mismatches. - (ppc_elf_relocate_section): Pass input_section, offset and fixup - to ppc_elf_vle_split16. - -2016-11-22 Alan Modra - - * elf32-ppc.c (ppc64_elf_relocate_section): Calculate d_offset for - input_bfd. Replace occurrences of output_bfd as bfd_get_32 and - bfd_put_32 param with input_bfd. - * elf32-ppc.c (ppc_elf_relocate_section): Likewise. Also - ppc_elf_vle_split16 param. - (ppc_elf_vle_split16): Rename output_bfd param to input_bfd. - -2016-11-21 Maciej W. Rozycki - - * dwarf2.c (build_line_info_table): Rename `index' local - variable to `line_index'. - (build_lookup_funcinfo_table): Rename `index' local variable to - `func_index'. - -2016-11-19 Jose E. Marchesi - - * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Do not - apply the negative GOT offset optimization in 64-bit code. - -2016-11-18 James Clarke - - * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert - R_SPARC_GOTDATA_OP_HIX22 and R_SPARC_GOTDATA_OP_LOX10 to - R_SPARC_GOT* for non-local references. Instead, treat them like - R_SPARC_GOTDATA_HIX22/R_SPARC_GOTDATA_LOX10 when filling in the - immediate with the calculated relocation. - -2016-11-18 Nick Clifton - - PR ld/20675 - * elf32-metag.c (elf_metag_relocate_section): Replace abort with - an informative error message. - -2016-11-15 Senthil Kumar Selvaraj - - PR ld/20789 - * bfd/elf32-avr.c (elf32_avr_adjust_diff_reloc_value): Do signed - manipulation of diff value, and don't assume sym2 is less than sym1. - (elf32_avr_adjust_reloc_if_spans_insn): New function. - (elf32_avr_relax_delete_bytes): Use elf32_avr_adjust_diff_reloc_value, - and remove redundant did_pad. - - -2016-11-14 H.J. Lu - - PR ld/20800 - * elf64-x86-64.c (elf_x86_64_relocate_section): Also check - plt_got.offset for R_X86_64_PLTOFF64. - -2016-11-14 Nick Clifton - - * coffcode.h (coff_slurp_symbol_table): Fix typo: Faal -> Fall. - -2016-11-11 Luke Allardyce - - PR ld/20722 - * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols, - but treat them as debugging symbols. - -2016-11-10 Jiong Wang - - PR target/20737 - * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined - symbol locally in PIE. - -2016-11-10 Nick Clifton - - PR binutils/20801 - * compress.c (bfd_get_full_section_contents): Provide a more - helpful error message when a section is too large to load. - -2016-11-08 Pedro Alves - - * dwarf2.c (struct funcinfo) : Type is bfd_boolean, - not "bfd boolean". - -2016-11-08 Igor Tsimbalist - - * dwarf2.c (comp_unit): Add new fields 'lookup_funcinfo_table' and - 'number_of_functions' to keep lookup table and number of entries in - the table. - (line_sequence): Add new fields 'line_info_lookup' and 'num_lines' - to keep lookup table and number of entries in the table. - (lookup_funcinfo): New structure for lookup table for function - references. - (build_line_info_table): New function to create and build the lookup - table for line information. - (lookup_address_in_line_info_table): Use the lookup table instead of - traverse a linked list. - (compare_lookup_funcinfos): New compare fuction used in sorting of - lookup table for function references. - (build_lookup_funcinfo_table): New function to create, build and - sort the lookup table for functions references. - (lookup_address_in_function_table): Use the table instead of - traverse a linked list. - (_bfd_dwarf2_cleanup_debug_info): Free memory from function references - lookup table. - -2016-11-04 Nick Clifton - - * targets.c (bfd_target_vector): Only add riscv_elf32_vec target - when supporting 64-bit BFD targets. - -2016-11-03 Tristan Gingold - - * config.bfd: Deprecate many old triplets. - -2016-11-03 Nick Clifton - - * po/da.po: Updated Danish translation. - -2016-11-01 Maciej W. Rozycki - - * reloc.c (bfd_default_reloc_type_lookup) : Do - not fall through to the default case. - -2016-11-01 Palmer Dabbelt - Andrew Waterman - - Add support for RISC-V architecture. - * Makefile.am: Add entries for riscv32-elf and riscv64-elf. - * config.bdf: Likewise. - * configure.ac: Likewise. - * Makefile.in: Regenerate. - * configure: Regenerate. - * archures.c: Add bfd_riscv_arch. - * reloc.c: Add riscv relocs. - * targets.c: Add riscv_elf32_vec and riscv_elf64_vec. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - * elf-bfd.h: Add RISCV_ELF_DATA to enum elf_target_id. - * elfnn-riscv.c: New file. - * elfxx-riscv.c: New file. - * elfxx-riscv.h: New file. - -2016-10-31 Alan Modra - - PR 20748 - * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Revert - 2016-05-13 change. - -2016-10-27 Andrew Burgess - - * cpu-arc.c (arc_get_mach): Delete. - -2016-10-25 Maciej W. Rozycki - - * elfxx-mips.c (STUB_JALR): Correct description. - -2016-10-20 Nick Clifton - - * po/gas.pot: Regenerate. - -2016-10-19 Nick Clifton - - * aout-adobe.c: Add missing c-format tags for translatable strings. - * aout-cris.c: Likewise. - * aoutx.h: Likewise. - * bfd.c: Likewise. - * binary.c: Likewise. - * cache.c: Likewise. - * coff-alpha.c: Likewise. - * coff-arm.c: Likewise. - * coff-i860.c: Likewise. - * coff-mcore.c: Likewise. - * coff-ppc.c: Likewise. - * coff-rs6000.c: Likewise. - * coff-sh.c: Likewise. - * coff-tic4x.c: Likewise. - * coff-tic54x.c: Likewise. - * coff-tic80.c: Likewise. - * coff64-rs6000.c: Likewise. - * coffcode.h: Likewise. - * coffgen.c: Likewise. - * cofflink.c: Likewise. - * coffswap.h: Likewise. - * cpu-arm.c: Likewise. - * dwarf2.c: Likewise. - * ecoff.c: Likewise. - * elf-attrs.c: Likewise. - * elf-eh-frame.c: Likewise. - * elf-ifunc.c: Likewise. - * elf-m10300.c: Likewise. - * elf-s390-common.c: Likewise. - * elf.c: Likewise. - * elf32-arc.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-avr.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-cr16.c: Likewise. - * elf32-cr16c.c: Likewise. - * elf32-cris.c: Likewise. - * elf32-crx.c: Likewise. - * elf32-d10v.c: Likewise. - * elf32-d30v.c: Likewise. - * elf32-epiphany.c: Likewise. - * elf32-fr30.c: Likewise. - * elf32-frv.c: Likewise. - * elf32-gen.c: Likewise. - * elf32-hppa.c: Likewise. - * elf32-i370.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-i960.c: Likewise. - * elf32-ip2k.c: Likewise. - * elf32-iq2000.c: Likewise. - * elf32-lm32.c: Likewise. - * elf32-m32c.c: Likewise. - * elf32-m32r.c: Likewise. - * elf32-m68hc11.c: Likewise. - * elf32-m68hc12.c: Likewise. - * elf32-m68hc1x.c: Likewise. - * elf32-m68k.c: Likewise. - * elf32-mcore.c: Likewise. - * elf32-mep.c: Likewise. - * elf32-metag.c: Likewise. - * elf32-microblaze.c: Likewise. - * elf32-moxie.c: Likewise. - * elf32-msp430.c: Likewise. - * elf32-mt.c: Likewise. - * elf32-nds32.c: Likewise. - * elf32-nios2.c: Likewise. - * elf32-or1k.c: Likewise. - * elf32-pj.c: Likewise. - * elf32-ppc.c: Likewise. - * elf32-rl78.c: Likewise. - * elf32-rx.c: Likewise. - * elf32-s390.c: Likewise. - * elf32-score.c: Likewise. - * elf32-score7.c: Likewise. - * elf32-sh-symbian.c: Likewise. - * elf32-sh.c: Likewise. - * elf32-sh64.c: Likewise. - * elf32-spu.c: Likewise. - * elf32-tic6x.c: Likewise. - * elf32-tilepro.c: Likewise. - * elf32-v850.c: Likewise. - * elf32-vax.c: Likewise. - * elf32-visium.c: Likewise. - * elf32-xgate.c: Likewise. - * elf32-xtensa.c: Likewise. - * elf64-alpha.c: Likewise. - * elf64-gen.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-sparc.c: Likewise. - * elf64-x86-64.c: Likewise. - * elfcode.h: Likewise. - * elfcore.h: Likewise. - * elflink.c: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-ia64.c: Likewise. - * elfxx-mips.c: Likewise. - * elfxx-sparc.c: Likewise. - * elfxx-tilegx.c: Likewise. - * ieee.c: Likewise. - * ihex.c: Likewise. - * libbfd.c: Likewise. - * linker.c: Likewise. - * m68klinux.c: Likewise. - * mach-o.c: Likewise. - * merge.c: Likewise. - * mmo.c: Likewise. - * oasys.c: Likewise. - * pdp11.c: Likewise. - * pe-mips.c: Likewise. - * peXXigen.c: Likewise. - * pei-x86_64.c: Likewise. - * peicode.h: Likewise. - * ppcboot.c: Likewise. - * reloc.c: Likewise. - * sparclinux.c: Likewise. - * srec.c: Likewise. - * stabs.c: Likewise. - * vms-alpha.c: Likewise. - * vms-lib.c: Likewise. - * xcofflink.c: Likewise. - -2016-10-18 Nick Clifton - - * po/da.po: Updated Danish translation. - -2016-10-18 Maciej W. Rozycki - - * elf32-nds32.c (nds32_elf_check_relocs): Avoid aliasing warning - from GCC. - -2016-10-18 Maciej W. Rozycki - - * elf32-arm.c (elf32_arm_update_relocs): Rename `index' local - variable to `reloc_index'. - -2016-10-12 Alan Modra - - * section.c (BFD_FAKE_SECTION): Reorder parameters. Formatting. - (STD_SECTION): Adjust to suit. - * elf.c (_bfd_elf_large_com_section): Likewise. - * bfd-in2.h: Regenerate. - -2016-10-11 Alan Modra - - * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Handle symbols - defined temporarily with bfd_und_section. - * elflink.c (_bfd_elf_gc_keep): Don't set SEC_KEEP for bfd_und_section. - * elfxx-mips.c (mips_elf_local_pic_function_p): Exclude defined - symbols with bfd_und_section. - -2016-10-07 Alan Modra - - * targets.c (bfd_target <_bfd_merge_private_bfd_data>): Replace - obfd param with struct bfd_link_info param. Update all callers. - * linker.c (bfd_merge_private_bfd_data): Likewise. - (_bfd_generic_verify_endian_match): Likewise. - * aoutf1.h (sunos_merge_private_bfd_data): Likewise. - * coff-arm.c (coff_arm_merge_private_bfd_data): Likewise. - * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise. - * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Likewise. - (_bfd_elf_merge_object_attributes): Likewise. - * elf-m10300.c (_bfd_mn10300_elf_merge_private_bfd_data): Likewise. - * elf-s390-common.c (elf_s390_merge_obj_attributes): Likewise. - * elf32-arc.c (arc_elf_merge_private_bfd_data): Likewise. - * elf32-arm.c (elf32_arm_merge_eabi_attributes): Likewise. - (elf32_arm_merge_private_bfd_data): Likewise. - * elf32-bfin.c (elf32_bfin_merge_private_bfd_data): Likewise. - * elf32-cr16.c (_bfd_cr16_elf_merge_private_bfd_data): Likewise. - * elf32-cris.c (cris_elf_merge_private_bfd_data): Likewise. - * elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise. - * elf32-h8300.c (elf32_h8_merge_private_bfd_data): Likewise. - * elf32-i370.c (i370_elf_merge_private_bfd_data): Likewise. - * elf32-iq2000.c (iq2000_elf_merge_private_bfd_data): Likewise. - * elf32-m32c.c (m32c_elf_merge_private_bfd_data): Likewise. - * elf32-m32r.c (m32r_elf_merge_private_bfd_data): Likewise. - * elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. - * elf32-m68hc1x.h (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. - * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Likewise. - * elf32-mcore.c (mcore_elf_merge_private_bfd_data): Likewise. - * elf32-mep.c (mep_elf_merge_private_bfd_data): Likewise. - * elf32-msp430.c (elf32_msp430_merge_mspabi_attributes): Likewise. - (elf32_msp430_merge_private_bfd_data): Likewise. - * elf32-mt.c (mt_elf_merge_private_bfd_data): Likewise. - * elf32-nds32.c (nds32_elf_merge_private_bfd_data): Likewise. - * elf32-nios2.c (nios2_elf32_merge_private_bfd_data): Likewise. - * elf32-or1k.c (elf32_or1k_merge_private_bfd_data): Likewise. - * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Likewise. - (ppc_elf_merge_obj_attributes): Likewise. - (ppc_elf_merge_private_bfd_data): Likewise. - * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Likewise. - * elf32-rx.c (rx_elf_merge_private_bfd_data): Likewise. - * elf32-s390.c (elf32_s390_merge_private_bfd_data): Likewise. - * elf32-score.c (s3_elf32_score_merge_private_bfd_data): Likewise. - (elf32_score_merge_private_bfd_data): Likewise. - * elf32-score.h (s7_elf32_score_merge_private_bfd_data): Likewise. - * elf32-score7.c (s7_elf32_score_merge_private_bfd_data): Likewise. - * elf32-sh.c (sh_merge_bfd_arch, sh_elf_merge_private_data): Likewise. - * elf32-sh64.c (sh64_elf_merge_private_data): Likewise. - * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Likewise. - * elf32-tic6x.c (elf32_tic6x_merge_attributes): Likewise. - (elf32_tic6x_merge_private_bfd_data): Likewise. - * elf32-v850.c (v850_elf_merge_private_bfd_data): Likewise. - * elf32-vax.c (elf32_vax_merge_private_bfd_data): Likewise. - * elf32-visium.c (visium_elf_merge_private_bfd_data): Likewise. - * elf32-xtensa.c (elf_xtensa_merge_private_bfd_data): Likewise. - * elf64-ia64-vms.c (elf64_ia64_merge_private_bfd_data): Likewise. - * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Likewise. - * elf64-s390.c (elf64_s390_merge_private_bfd_data): Likewise. - * elf64-sh64.c (sh_elf64_merge_private_data): Likewise. - * elf64-sparc.c (elf64_sparc_merge_private_bfd_data): Likewise. - * elfnn-aarch64.c (elfNN_aarch64_merge_private_bfd_data): Likewise. - * elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): Likewise. - * elfxx-mips.c (mips_elf_merge_obj_e_flags): Likewise. - (mips_elf_merge_obj_attributes): Likewise. - (_bfd_mips_elf_merge_private_bfd_data): Likewise. - * elfxx-mips.h (_bfd_mips_elf_merge_private_bfd_data): Likewise. - * elfxx-sparc.c (_bfd_sparc_elf_merge_private_bfd_data): Likewise. - * elfxx-sparc.h (_bfd_sparc_elf_merge_private_bfd_data): Likewise. - * elfxx-target.h (bfd_elfNN_bfd_merge_private_bfd_data): Likewise. - * elfxx-tilegx.c (_bfd_tilegx_elf_merge_private_bfd_data): Likewise. - * elfxx-tilegx.h (_bfd_tilegx_elf_merge_private_bfd_data): Likewise. - * libbfd-in.h (_bfd_generic_bfd_merge_private_bfd_data): Likewise. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2016-10-07 Alan Modra - - * Makefile.am (LIBBFD_H_FILES): Update. - * doc/Makefile.am (LIBBFD_H_DEP): Likewise. - * cpu-sh.c (sh_merge_bfd_arch): Move to.. - * elf32-sh.c: ..here, and make static. - * elf32-arc.c (arc_elf_merge_private_bfd_data): Delete extraneous - error. - * elf32-cris.c (cris_elf_merge_private_bfd_data): Don't call - _bfd_generic_verify_endian_match. - * elf32-microblaze.c (microblaze_elf_merge_private_bfd_data): Delete. - (bfd_elf32_bfd_merge_private_bfd_data): Define as - _bfd_generic_verify_endian_match. - * elf32-mt.c (mt_elf_merge_private_bfd_data): Don't test - boolean == FALSE. - * elf32-xgate.c (_bfd_xgate_elf_merge_private_bfd_data): Delete. - (bfd_elf32_bfd_merge_private_bfd_data): Don't define. - * elf32-xgate.h (_bfd_xgate_elf_merge_private_bfd_data): Delete. - * libbfd-in.h (_bfd_generic_verify_endian_match): Delete. - * libbfd.c (_bfd_generic_verify_endian_match): Move to.. - * linker.c: ..here, and make internal. - * bfd.c (bfd_merge_private_bfd_data): Move to.. - * linker.c: ..here. - * Makefile.in: Regenerate. - * doc/Makefile.in: Regenerate. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2016-10-06 Alan Modra - - * coff-h8300.c: Spell fall through comments consistently. - * coffgen.c: Likewise. - * elf32-hppa.c: Likewise. - * elf32-ppc.c: Likewise. - * elf32-score.c: Likewise. - * elf32-score7.c: Likewise. - * elf64-ppc.c: Likewise. - * elfxx-aarch64.c: Likewise. - * elfxx-mips.c: Likewise. - * cpu-ns32k.c: Add missing fall through comments. - * elf-m10300.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-avr.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-frv.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-microblaze.c: Likewise. - * elf32-nds32.c: Likewise. - * elf32-ppc.c: Likewise. - * elf32-rl78.c: Likewise. - * elf32-rx.c: Likewise. - * elf32-s390.c: Likewise. - * elf32-sh.c: Likewise. - * elf32-tic6x.c: Likewise. - * elf64-ia64-vms.c: Likewise. - * elf64-ppc.c: Likewise. - * elf64-s390.c: Likewise. - * elf64-x86-64.c: Likewise. - * elflink.c: Likewise. - * elfnn-aarch64.c: Likewise. - * elfnn-ia64.c: Likewise. - * ieee.c: Likewise. - * oasys.c: Likewise. - * pdp11.c: Likewise. - * srec.c: Likewise. - * versados.c: Likewise. - -2016-10-06 Alan Modra - - * coffcode.h (coff_slurp_symbol_table): Revert accidental commit - made 2015-01-08. - * elf32-nds32.c (nds32_elf_grok_psinfo): Add missing break. - * reloc.c (bfd_default_reloc_type_lookup): Add missing breaks. - -2016-10-06 Alan Modra - - * elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise - OR in arithmetic expression, not boolean OR. - -2016-09-30 Alan Modra - - * Makefile.am (BFD_H_FILES): Add linker.c and simple.c. Sort - as per comment at head of bfd-in2.h. - * Makefile.in: Regenerate. - -2016-09-30 Alan Modra - - * aout-adobe.c: Replace (*_bfd_error_handler) (...) with - _bfd_error_handler (...) throughout. - * aout-cris.c, * aoutx.h, * archive.c, * bfd.c, * binary.c, - * cache.c, * coff-alpha.c, * coff-arm.c, * coff-h8300.c, - * coff-i860.c, * coff-mcore.c, * coff-ppc.c, * coff-rs6000.c, - * coff-sh.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, - * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c, - * coffswap.h, * cpu-arm.c, * cpu-m68k.c, * cpu-sh.c, * dwarf2.c, - * ecoff.c, * elf-eh-frame.c, * elf-m10300.c, * elf.c, * elf32-arc.c, - * elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c, - * elf32-cris.c, * elf32-crx.c, * elf32-dlx.c, * elf32-frv.c, - * elf32-hppa.c, * elf32-i370.c, * elf32-i386.c, * elf32-lm32.c, - * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, - * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c, - * elf32-mips.c, * elf32-nds32.c, * elf32-nios2.c, * elf32-or1k.c, - * elf32-pj.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-s390.c, - * elf32-score.c, * elf32-score7.c, * elf32-sh.c, * elf32-sh64.c, - * elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilepro.c, - * elf32-v850.c, * elf32-vax.c, * elf32-xtensa.c, * elf64-alpha.c, - * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c, - * elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c, - * elf64-x86-64.c, * elfcode.h, * elfcore.h, * elflink.c, - * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfxx-mips.c, - * elfxx-sparc.c, * elfxx-tilegx.c, * hpux-core.c, * i386linux.c, - * ieee.c, * ihex.c, * libbfd.c, * linker.c, * m68klinux.c, - * mach-o.c, * merge.c, * mmo.c, * oasys.c, * osf-core.c, * pdp11.c, - * pe-mips.c, * peXXigen.c, * pef.c, * plugin.c, * reloc.c, - * rs6000-core.c, * sco5-core.c, * som.c, * sparclinux.c, * srec.c, - * stabs.c, * syms.c, * vms-alpha.c, * vms-lib.c, * vms-misc.c, - * xcofflink.c: Likewise. - -2016-09-30 Alan Modra - - * bfd-in.h: Include stdarg.h. - * bfd.c (bfd_error_handler_type): Make like vprintf. - (_bfd_error_internal): Rename from _bfd_error_handler. Make static. - (error_handler_internal): New function, split out from.. - (_bfd_default_error_handler): ..here. Rename to _bfd_error_handler. - (bfd_set_error_handler): Update. - (bfd_get_error_handler, bfd_get_assert_handler): Delete. - (_bfd_assert_handler): Make static. - * coffgen.c (null_error_handler): Update params. - * elf-bfd.h (struct elf_backend_data ): - Don't use bfd_error_handler_type. - * elf64-mmix.c (mmix_dump_bpo_gregs): Likewise. - * elfxx-target.h (elf_backend_link_order_error_handler): Default - to _bfd_error_handler. - * libbfd-in.h (_bfd_default_error_handler): Don't declare. - (bfd_assert_handler_type): Likewise. - (_bfd_error_handler): Update. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2016-09-28 Akihiko Odaki - - PR ld/20636 - * elf-bfd.h (struct elf_backend_data): Delete - elf_backend_count_output_relocs callback and add - elf_backend_update_relocs. - * elf32-arm.c (elf32_arm_count_output_relocs): Deleted. - (emit_relocs): Deleted. - (elf32_arm_emit_relocs): Deleted. - (elf_backend_emit_relocs): Updated not to use the old functions. - (elf32_arm_update_relocs): New function. - (elf_backend_update_relocs): New define. - * elflink.c (bfd_elf_final_link): Add additional_reloc_count to the - relocation count. Call elf_backend_emit_relocs. - (_bfd_elf_size_reloc_section): Do not call - elf_backend_count_output_relocs. - * elfxx-target.h (elf_backend_count_output_relocs): Deleted. - (elf_backend_update_relocs): New define. - -2016-09-28 Christophe Lyon - - PR ld/20608 - * elf32-arm.c (arm_type_of_stub): Handle the case when the pre-PLT - Thumb-ARM stub is too far. - -2016-09-27 Nick Clifton - - PR ld/20634 - * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Put 0 in the - timestamp field if real time values are not being stored. - -2016-09-26 Vlad Zakharov - - * warning.m4 (AC_EGREP_CPP_FOR_BUILD): Introduce macro - to verify CC_FOR_BUILD compiler. - (AM_BINUTILS_WARNINGS): Introduce ac_cpp_for_build variable - and add CC_FOR_BUILD compiler checks. - * Makefile.in: Regenerate. - * configure: Likewise. - * doc/Makefile.in: Likewise. - -2016-09-26 Awson - - PR ld/17955 - * coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset - for R_AMD64_PCRQUAD relocations. - -2016-09-26 Alan Modra - - * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare. - * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): New function. - (ppc_elf_merge_obj_attributes): Use it. Don't copy first file - attributes, merge them. Don't warn about undefined tag bits, - or copy unknown values to output. - * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Call - _bfd_elf_ppc_merge_fp_attributes. - -2016-09-23 Akihiko Odaki - - PR ld/20595 - * elf-bfd.h (struct elf_backend_data): Add - elf_backend_count_output_relocs callback to count relocations in - the final output. - * elf-arm.c (elf32_arm_add_relocation): Deleted. - (elf32_arm_write_section): Move additional relocation to emit_relocs. - (elf32_arm_count_output_relocs): New function. - (emit_relocs): New function. - (elf32_arm_emit_relocs): New function. - (elf32_arm_vxworks_emit_relocs): New function. - (elf_backend_emit_relocs): Updated to use the new functions. - (elf_backend_count_output_relocs): New define. - * bfd/elflink.c (bfd_elf_final_link): Do not add additional_reloc_count - to the relocation count. - (_bfd_elf_link_size_reloc_section): Use callback to count the - relocations which will be in output. - (_bfd_elf_default_count_output_relocs): New function. - * bfd/elfxx-target.h (elf_backend_count_output_relocs): New define. - -2016-09-19 Jose E. Marchesi - - * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Allow - negative offsets to _GLOBAL_OFFSET_TABLE_ if the .got section is - bigger than 0x1000 bytes. - -2016-09-14 Thomas Preud'homme - - * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Only mark section - not already marked. - -2016-09-14 Nick Clifton - - PR binutils/20605 - * peicode.h (pe_bfd_read_buildid): Check that the Data Directory - contains a valid size for the Debug directory. - -2016-09-14 Bhushan Attarde - - * format.c (struct bfd_preserve): New "build_id" field. - (bfd_preserve_save): Save "build_id". - (bfd_preserve_restore): Restore "build_id". - -2016-09-06 H.J. Lu - - PR ld/20550 - * elf64-x86-64.c (elf_x86_64_relocate_section): Resolve size - relocation with copy relocation when building executable. - -2016-09-02 Senthil Kumar Selvaraj - - PR ld/20545 - * elf32-avr.c (elf32_avr_relax_delete_bytes): Add parameter - delete_shrinks_insn. Modify computation of shrinked_insn_address. - Compute shrink_boundary and adjust addend only if - addend_within_shrink_boundary. - (elf32_avr_relax_section): Modify calls to - elf32_avr_relax_delete_bytes to pass extra parameter. - -2016-09-01 Thomas Preud'homme - - * elf32-arm.c (cmse_entry_fct_p): Store instruction encoding in an - array of bytes and use bfd_get_16 to interpret its encoding according - to endianness of target. - -2016-09-01 Alan Modra - - * elf64-ppc.c (synthetic_opd): New static var. - (compare_symbols): Don't treat symbols in .opd specially for ELFv2. - (ppc64_elf_get_synthetic_symtab): Likewise. Comment. - -2016-08-31 Alan Modra - - * elf64-ppc.c (group_sections): Delete stub14_group_size. Instead, - track max group size with a new "group_size" var that is reduced - by a factor of 1024 from the 24-bit branch size whenever a 14-bit - branch is seen. - -2016-08-31 Alan Modra - - * elf32-ppc.c (ppc_elf_section_processing): Delete. - (elf_backend_section_processing): Don't define. - (ppc_elf_modify_segment_map): Set p_flags and mark valid. Don't - split on non-exec sections differing in SHF_PPC_VLE. When - splitting segments, mark size invalid. - -2016-08-30 Alan Modra - - PR 20531 - * elf32-ppc.c (_bfd_elf_ppc_set_arch): Add missing "break". - -2016-08-29 H.J. Lu - - PR ld/14961 - PR ld/20515 - * elf32-i386.c (elf_i386_check_relocs): Issue an error when - R_386_PC32 relocation is used to call IFUNC function in PIC - object. - -2016-08-27 Alan Modra - - PR 20520 - * elf.c (_bfd_elf_setup_sections): Check that SHT_GROUP sections - have corresponding SHF_GROUP sections. - (bfd_elf_set_group_contents): Comment. - -2016-08-27 Alan Modra - - PR 20519 - * elf64-ppc.c (pc_dynrelocs): New function. - (ppc64_elf_relocate_section): Use it and must_be_dyn_reloc to - handle pic dynamic relocs. - -2016-08-26 Thomas Preud'homme - - * bfd-in.h (struct elf32_arm_params): Define. - (bfd_elf32_arm_set_target_relocs): Rename into ... - (bfd_elf32_arm_set_target_params): This. Use a struct - elf32_arm_params to pass all parameters but the bfd and bfd_link_info. - * bfd-in2.h: Regenerate. - * elf32-arm.c (bfd_elf32_arm_set_target_relocs): Rename into ... - (bfd_elf32_arm_set_target_params): This. Pass all values via a struct - elf32_arm_params rather than as individual parameters. - -2016-08-26 Thomas Preud'homme - - * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access - passed the end of htab->stub_group array. - (elf32_arm_create_or_find_stub_sec): Likewise. - (elf32_arm_create_stub): Likewise. - -2016-08-26 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Changed. Set should_relocate - to TRUE for GOT and TLS relocs. - -2016-08-26 Cupertino Miranda - - * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed. - -2016-08-26 Cupertino Miranda - - * elf-bfd.h: Added ARC_ELF_DATA to enum elf_target_id. - * elf32-arc.c (struct elf_arc_link_hash_entry): Added. - (struct elf_arc_link_hash_table): Likewise. - (elf_arc_link_hash_newfunc): Likewise. - (elf_arc_link_hash_table_free): Likewise. - (arc_elf_link_hash_table_create): Likewise. - (elf_arc_relocate_section): Fixed conditions related to dynamic - (elf_arc_check_relocs): Likewise. - (arc_elf_create_dynamic_sections): Added - (elf_arc_adjust_dynamic_symbol): Changed access to .rela.bss to be done - through the hash table. - -2016-08-26 Cupertino Miranda - - * arc-got.h (relocate_fix_got_relocs_for_got_info): Fixed addresses in - debug comments. Fixed address in .got related to TLS_IE_GOT dynamic - relocation. - -2016-08-26 Cupertino Miranda - - * reloc.c: Fixed type in ARC_SECTOFF relocations. Added ARC_SDA_12 - relocation. - * bfd-in2.h: Regenerated from the previous changes. - * libbfd.h: Regenerated from the previous changes. - -2016-08-26 Thomas Preud'homme - - * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for - the input import library bfd. - * bfd-in2.h: Regenerate. - * elf32-arm.c (struct elf32_arm_link_hash_table): New in_implib_bfd - and new_cmse_stub_offset fields. - (stub_hash_newfunc): Initialize stub_offset and stub_template_size to - -1. - (elf32_arm_add_stub): Likewise for stub_offset. - (arm_new_stubs_start_offset_ptr): New function. - (arm_build_one_stub): Only allocate a stub_offset if it is -1. Allow - empty SG veneers to have zero relocations. - (arm_size_one_stub): Only initialize stub size and template - information for non empty veneers. Do not update veneer section size - if veneer already has an offset. - (elf32_arm_create_stub): Return the stub entry pointer or NULL instead - of a boolean indicating success or failure. - (cmse_scan): Change stub_changed parameter into an integer pointer - parameter cmse_stub_created to count the number of stub created and - adapt to change of return value in elf32_arm_create_stub. - (cmse_entry_fct_p): New function. - (arm_list_new_cmse_stub): Likewise. - (set_cmse_veneer_addr_from_implib): Likewise. - (elf32_arm_size_stubs): Define cmse_stub_created, pass its address to - cmse_scan instead of that of cmse_stub_changed to compute the number - of stub created and use it to initialize stub_changed. Call - set_cmse_veneer_addr_from_implib after all cmse_scan. Adapt to change - of return value in elf32_arm_create_stub. Use - arm_stub_section_start_offset () if not NULL to initialize size of - secure gateway veneers section. Initialize stub_offset of Cortex-A8 - erratum fix to -1. Use ret to hold return value. - (elf32_arm_build_stubs): Use arm_stub_section_start_offset () if not - NULL to initialize size of secure gateway veneers section. Adapt - comment to stress the importance of zeroing veneer section content. - (bfd_elf32_arm_set_target_relocs): Add new in_implib_bfd parameter to - initialize eponymous field in struct elf32_arm_link_hash_table. - -2016-08-25 Andreas Arnez - - * elf32-s390.c (stdarg.h): New include. - (elf_s390_grok_psinfo): New function. - (elf_s390_write_core_note): New function. - (elf_backend_grok_psinfo): Declare backend hook. - (elf_backend_write_core_note): Likewise. - * elf64-s390.c (stdarg.h): New include. - (elf_s390_grok_prstatus): New function. - (elf_s390_grok_psinfo): New function. - (elf_s390_write_core_note): New function. - (elf_backend_grok_prstatus): Declare backend hook. - (elf_backend_grok_psinfo): Likewise. - (elf_backend_write_core_note): Likewise. - -2016-08-25 Andreas Arnez - - * elf32-s390.c (allocate_dynrelocs): Fix indentation. - (elf_s390_finish_ifunc_symbol): Likewise. - (elf_s390_finish_dynamic_symbol): Likewise. - (elf_s390_finish_dynamic_sections): Likewise. - (elf_s390_grok_prstatus): Likewise. - * elf64-s390.c (elf_s390_hash_table): Fix indentation. - (elf_s390_finish_dynamic_symbol): Likewise. - -2016-08-24 Anton Kolesov - - * elf32-arc.c (elf32_arc_grok_prstatus): New function. - -2016-08-23 Nick Clifton - - * elf32-arm.c (elf32_arm_count_additional_relocs): Return zero if - there is no arm data associated with the section. - -2016-08-23 Alan Modra - - PR 20475 - * elf32-or1k.c (or1k_elf_relocate_section): Offset from - _GLOBAL_OFFSET_TABLE_, not start of .got section. - -2016-08-22 Nick Clifton - - * doc/chew.c (main): Free the string buffer used to files as they - are parsed. - -2016-08-22 Alan Modra - - * elf32-ppc.c (ppc_elf_check_relocs): Move error for @local ifunc.. - (ppc_elf_relocate_section): ..to here. Comment. Error on - detecting -mbss-plt -fPIC local ifuncs too. - (ppc_elf_size_dynamic_sections): Comment on unnecessary glink - branch table entries. - -2016-08-19 Nick Clifton - - * elf.c (assign_section_numbers): Assign number for the .shstrtab - section after the symbol table and string table sections. - -2016-08-19 Alan Modra - - * elf64-ppc.c (struct ppc_link_hash_entry): Add weakref. - (ppc64_elf_copy_indirect_symbol): Set weakref. Don't merge - dyn_relocs for weakdefs. - (alias_readonly_dynrelocs): New function. - (ppc64_elf_adjust_dynamic_symbol): Use alias_readonly_dynrelocs. - (ppc64_elf_relocate_section): Simplify condition under which - dyn_relocs are emitted. - -2016-08-19 Alan Modra - - PR 20472 - * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test. - (readonly_dynrelocs): Comment fix. - (global_entry_stub): New function. - (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test. Match - ELFv2 code deciding on dynamic relocs vs. global entry stubs to - that in size_global_entry_stubs, handling ifunc too. Delete dead - weak sym code. - (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no - dyn_relocs are needed. Correct handling of ifunc dyn_relocs. - Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for - undefweak syms. Expand and correct comments. - (size_global_entry_stubs): Ensure symbol is defined. - (ppc64_elf_relocate_section): Match condition under which - dyn_relocs are emitted to that in allocate_dynrelocs. - -2016-08-12 Alan Modra - - * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount. - * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount. - (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount. - -2016-08-11 Alan Modra - - * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't exit with - non_got_ref true in any case where we could have generated dynbss - copies but decide not to do so. - -2016-08-10 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_add_la25_stub): Clear the ISA bit of - the stub address retrieved if associated with a microMIPS - function. - -2016-08-10 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_create_stub_symbol): For a microMIPS - stub also add STO_MICROMIPS annotation. - -2016-08-10 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation): Set the ISA bit - in microMIPS LA25 stub references. - -2016-08-09 Jiaming Wei - - * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Fix thinko - adjusting the use_count of merged .got entries. - -2016-08-08 Nick Clifton - - * doc/chew.c (delete_string): Only free the string buffer if it is - there. Mark the buffer as NULL after freeing. - (drop): Free the dropped string. - (free_words): New function: Frees the memory allocated to the - dictionary. - (add_instrinsic): Duplicate the name string, so that it can be - freed later on. - (compile): Free unused words. - (main): Free the dictionary and top level string buffers at the - end. - -2016-08-04 Thomas Preud'homme - - * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter. - * bfd-in2.h: Regenerate. - * elf32-arm.c (struct elf32_arm_link_hash_table): Declare new - cmse_implib field. - (bfd_elf32_arm_set_target_relocs): Add new parameter to initialize - cmse_implib field in struct elf32_arm_link_hash_table. - (elf32_arm_filter_cmse_symbols): New function. - (elf32_arm_filter_implib_symbols): Likewise. - (elf_backend_filter_implib_symbols): Define to - elf32_arm_filter_implib_symbols. - -2016-08-04 Thomas Preud'homme - - * elf32-arm.c (CMSE_PREFIX): Define macro. - (elf32_arm_stub_cmse_branch_thumb_only): Define stub sequence. - (cmse_branch_thumb_only): Declare stub. - (struct elf32_arm_link_hash_table): Define cmse_stub_sec field. - (elf32_arm_get_plt_info): Add globals parameter. Use it to return - FALSE if there is no PLT. - (arm_type_of_stub): Adapt to new elf32_arm_get_plt_info signature. - (elf32_arm_final_link_relocate): Likewise. - (elf32_arm_gc_sweep_hook): Likewise. - (elf32_arm_gc_mark_extra_sections): Mark sections holding ARMv8-M - secure entry functions. - (arm_stub_is_thumb): Add case for arm_stub_cmse_branch_thumb_only. - (arm_dedicated_stub_output_section_required): Change to a switch case - and add a case for arm_stub_cmse_branch_thumb_only. - (arm_dedicated_stub_output_section_required_alignment): Likewise. - (arm_stub_dedicated_output_section_name): Likewise. - (arm_stub_dedicated_input_section_ptr): Likewise and remove - ATTRIBUTE_UNUSED for htab parameter. - (arm_stub_required_alignment): Likewise. - (arm_stub_sym_claimed): Likewise. - (arm_dedicated_stub_section_padding): Likewise. - (cmse_scan): New function. - (elf32_arm_size_stubs): Call cmse_scan for ARM M profile targets. - Set stub_changed to TRUE if such veneers were created. - (elf32_arm_swap_symbol_in): Add detection code for CMSE special - symbols. - -2016-08-02 Alan Modra - - PR ld/20428 - * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group. - -2016-08-02 Nick Clifton - - PR ld/17739 - * elf32-sh.c (sh_elf_gc_sweep_hook): Delete. - (elf_backend_sweep_hook): Delete. - -2016-08-01 Andrew Jenner - Kwok Cheung Yeung - - * elf32-ppc.c (is_branch_reloc): Recognise VLE branch relocations. - (ppc_elf_howto_raw): Fix dst_mask of R_PPC_VLE_REL15. - (ppc_elf_vle_split16): Clear field before inserting. - -2016-08-01 Nick Clifton - - * po/sv.po: Updated Swedish translation. - -2016-07-27 Ozkan Sezer - Nick Clifton - - PR ld/20401 - * coffgen.c (fini_reloc_cookie_rels): Check for the extistence - of the coff_section_data before using it. - -2016-07-26 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation): Handle branches - in PLT compression selection. - (_bfd_mips_elf_check_relocs): Likewise. - -2016-07-22 Cupertino Miranda - - * arc-got.h (relocate_fix_got_relocs_for_got_info): Handle the - case where there's no elf_link_hash_entry while processing - GOT_NORMAL got entries. - -2016-07-21 H.J. Lu - - * version.m4 (BFD_VERSION): Set to 2.27.51. - * configure: Regenerated. - -2016-07-21 Nick Clifton - - * elf.c (_bfd_elf_filter_global_symbols): Skip local symbols. - (swap_out_syms): Return an error when not finding ELF output - section rather than asserting. - -2016-07-21 Thomas Preud'homme - - * elflink.c (elf_output_implib): Call bfd_set_error on no symbols. - -2016-07-20 John Baldwin - - * elf.c (elfcore_grok_freebsd_psinfo): Check for minimum note size - and handle pr_pid if present. - -2016-07-20 H.J. Lu - - PR ld/20376 - * elf.c (assign_file_positions_for_load_sections): Also check - p_paddr for program header space. - -2016-07-20 Alan Modra - - * elf64-ppc.c (ppc64_elf_howto_raw ): Put - ppc64_elf_unhandled_reloc for special_function. - * elf32-ppc.c (ppc_elf_howto_raw): Similarly for lots of relocs. - -2016-07-19 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_perform_relocation): Convert cross-mode - BAL to JALX. - (_bfd_mips_elf_relocate_section) : Add a - corresponding error message. - -2016-07-19 Maciej W. Rozycki - - * elfxx-mips.c (b_reloc_p): Add R_MICROMIPS_PC16_S1, - R_MICROMIPS_PC10_S1 and R_MICROMIPS_PC7_S1. - (branch_reloc_p): New function. - (mips_elf_calculate_relocation): Handle ISA mode determination - for relocations against section symbols, against absolute - symbols and absolute relocations. Also set `*cross_mode_jump_p' - for branches. - : Suppress alignment - checks for weak undefined symbols. Also check target alignment - within the same ISA mode. - : Handle cross-mode branches - in the alignment check. - : Add an alignment check. - : Likewise. - : Likewise. - (mips_elf_perform_relocation): Report a failure for unsupported - same-mode JALX instructions and cross-mode branches. - (_bfd_mips_elf_relocate_section) : Add - error messages for jumps to misaligned addresses. - -2016-07-16 Alan Modra - - * elflink.c: Include plugin-api.h. - * plugin.c (bfd_plugin_open_input): New function, extracted from.. - (try_claim): ..here. - * plugin.h: Don't include bfd.h. - (bfd_plugin_open_input): Declare. - -2016-07-16 Alan Modra - - * targets.c (bfd_seach_for_target): Rename to.. - (bfd_iterate_over_targets): ..this. Rewrite doc. - * bfd-in2.h: Regenerate. - -2016-07-16 Alan Modra - - * archures.c (bfd_default_set_arch_mach): Make available in bfd.h. - * libbfd.h: Regenerate. - * bfd-in2.h: Regenerate. - -2016-07-16 Alan Modra - - * libbfd-in.h (BFD_ALIGN): Move to.. - * bfd-in.h: ..here. - * elf32-ppc.h (struct ppc_elf_params): Add pagesize. - * elf32-ppc.c (default_params): Adjust init. - (ppc_elf_link_params): Set pagesize_p2. - * libbfd.h: Regenerate. - * bfd-in2.h: Regenerate. - -2016-07-15 Thomas Preud'homme - - * elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook. - (_bfd_elf_filter_global_symbols): Declare. - * elf.c (_bfd_elf_filter_global_symbols): New function. - * elflink.c (elf_filter_global_symbols): Likewise. - (elf_output_implib): Likewise. - (bfd_elf_final_link): Call above function, failing if it does. - * elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and - default it to NULL. - (elf_backend_copy_indirect_symbol): Fix spacing. - (elf_backend_hide_symbol): Likewise. - (elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook. - -2016-07-15 Andrew Burgess - Nick Clifton - - * elf32-arc.c (PR_DEBUG): Delete. - Fix printing of debug information. Fix formatting of debug - statements. - (debug_arc_reloc): Handle symbols that are not from an input file. - (arc_do_relocation): Remove excessive exclamation points. - - * arc-got.h: Fix formatting. Fix printing of debug information. - (new_got_entry_to_list): Use xmalloc. - * config.bfd: use the big-endian arc vector as the default vector - for big-endian arc targets. - -2016-07-15 Alan Modra - - * cofflink.c (mark_relocs): Exclude relocs with -1 r_symndx - from marking sym_indices. - -2016-07-14 Maciej W. Rozycki - - * reloc.c (bfd_perform_relocation): Try the `howto' handler - first with relocations against absolute symbols. - (bfd_install_relocation): Likewise. - -2016-07-12 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align - .got/.got.plt sections to 8 bytes. - -2016-07-12 Nick Clifton - - * binary.c (binary_set_section_contents): Second grammar fix. - -2016-07-12 Douglas B Rupp - - * binary.c (binary_set_section_contents): Fix grammar in warning - message. - -2016-07-11 Cupertino Miranda - - * elf32-arc.c: made PR_DEBUG always defined. - -2016-07-11 Cupertino Miranda - - * arc-got.h: Moved got related structures from elf32-arc.c to - this file. More precisely, tls_type_e, tls_got_entries, got_entry. - * (arc_get_local_got_ents, got_entry_for_type, new_got_entry_to_list, - tls_type_for_reloc, symbol_has_entry_of_type, - get_got_entry_list_for_symbol, arc_got_entry_type_for_reloc, - ADD_SYMBOL_REF_SEC_AND_RELOC, rc_fill_got_info_for_reloc, - relocate_fix_got_relocs_for_got_info, - create_got_dynrelocs_for_single_entry, - create_got_dynrelocs_for_got_info): Added to file. - * elf32-arc.c: Removed GOT & TLS related structs and functions to - arc-got.h. - -2016-07-08 James Bowman - - * elf32-ft32.c (ft32_reloc_map): Use R_FT32_32 for BFD_RELOC_32. - -2016-07-05 Andre Vieria - - * elf32-arm.c (THUMB32_MOVT): New veneer macro. - (THUMB32_MOVW): Likewise. - (elf32_arm_stub_long_branch_thumb2_only_pure): New. - (DEF_STUBS): Define long_branch_thumb2_only_pure. - (arm_stub_is_thumb): Add new veneer stub. - (arm_type_of_stub): Use new veneer. - (arm_stub_required_alignment): Add new veneer. - -2016-07-05 Andre Vieria - - * bfd-in2.h (SEC_ELF_NOREAD): Rename to ... - (SEC_ELF_PURECODE): ... this. - * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD - to SEC_ELF_NOREAD. - (elf32_arm_fake_sections): Likewise. - (elf_32_arm_section_flags): Likewise. - (elf_32_arm_lookup_section_flags): Likewise. - * section.c (SEC_ELF_NOREAD): Rename to ... - (SEC_ELF_PURECODE): ... this. - -2016-07-01 Thomas Preud'homme - - * elf32-arm.c (using_thumb2_bl): New function. - (arm_type_of_stub): Declare thumb2 variable together and change type - to bfd_boolean. Use using_thumb2_bl () to determine whether - THM_MAX_FWD_BRANCH_OFFSET or THM2_MAX_FWD_BRANCH_OFFSET should be - checked for BL range. - (elf32_arm_final_link_relocate): Use using_thumb2_bl () to determine - the bit size of BL offset. - -2016-06-29 Nick Clifton - - * elfnn-aarch64.c (is_aarch64_mapping_symbol): New function. - Returns TRUE for AArch64 mapping symbols. - (elfNN_aarch64_backend_symbol_processing): New function. Marks - mapping symbols as precious in object files so that they will not - be stripped. - (elf_backend_symbol_processing): Define. - - * elf32-arm.c (is_arm_mapping_symbol): New function. Returns TRUE - for ARM mapping symbols. - (elf32_arm_backend_symbol_processing): Make use of the new function. - -2016-06-28 H.J. Lu - - PR ld/20306 - * elflink.c (elf_link_check_versioned_symbol): Return false - for unreferenced undefined symbol. - -2016-06-28 Nick Clifton - - * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc - is needed. - - * elf32-arm.c (elf32_arm_backend_symbol_processing): New - function. Marks mapping symbols in object files as precious, so - that strip will not remove them. - (elf_backend_symbol_processing): Define. - -2016-06-28 James Clarke - - * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert - R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64. - -2016-06-28 Maciej W. Rozycki - - * elf32-mips.c (elf_mips16_howto_table_rel): Add - R_MIPS16_PC16_S1. - (mips16_reloc_map): Likewise. - * elf64-mips.c (mips16_elf64_howto_table_rel): Likewise. - (mips16_elf64_howto_table_rela): Likewise. - (mips16_reloc_map): Likewise. - * elfn32-mips.c (elf_mips16_howto_table_rel): Likewise. - (elf_mips16_howto_table_rela): Likewise. - (mips16_reloc_map): Likewise. - * elfxx-mips.c (mips16_branch_reloc_p): New function. - (mips16_reloc_p): Handle R_MIPS16_PC16_S1. - (b_reloc_p): Likewise. - (mips_elf_calculate_relocation): Likewise. - (_bfd_mips_elf_check_relocs): Likewise. - * reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2016-06-27 Alan Modra - - PR ld/19264 - * elf64-ppc.c (STUB_SHRINK_ITER): Define. - (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER - if shrinking stubs. - (ppc64_elf_size_stubs): Adjust to suit. - -2016-06-27 Trevor Saunders - - * elf32-dlx.h: New file. - * elf32-dlx.c: Adjust. - -2016-06-25 Trevor Saunders - - * elf32-xtensa.c (xtensa_make_property_section): Remove prototype. - -2016-06-24 John Baldwin - - * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV - notes. - -2016-06-24 John Baldwin - - * elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for - FreeBSD. Remove case for NT_FREEBSD_THRMISC. - (elfcore_grok_freebsd_psinfo): New function. - (elfcore_grok_freebsd_prstatus): New function. - (elfcore_grok_freebsd_note): New function. - (elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD" - notes. - -2016-06-24 Joel Brobecker - - * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather - than its existance. - -2016-06-24 Alan Modra - - * config.bfd: Delete mips vxworks patterns matched earlier. - Combine mips*-*-none with mips*-*-elf*. - -2016-06-21 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_perform_relocation): Call - `info->callbacks->einfo' rather than `*_bfd_error_handler' and - use the `%X%H' format for the cross-mode jump conversion error - message. Remove the full stop from the end of the message. - Continue processing rather than returning failure. - -2016-06-21 Graham Markall - - * archures.c: Remove bfd_mach_arc_nps400. - * bfd-in2.h: Likewise. - * cpu-arc.c (arch_info_struct): Likewise. - * elf32-arc.c (arc_elf_object_p, arc_elf_final_write_processing): - Likewise. - -2016-06-20 H.J. Lu - - PR ld/18250 - PR ld/20267 - * elflink.c: Include plugin.h if BFD_SUPPORTS_PLUGINS is - defined. - (elf_link_is_defined_archive_symbol): Call - bfd_link_plugin_object_p on unknown plugin object and use the - IR symbol table if the input is an IR object. - * plugin.c (bfd_link_plugin_object_p): New function. - * plugin.h (bfd_link_plugin_object_p): New prototype. - -2016-06-20 H.J. Lu - - PR ld/20276 - * elflink.c (elf_link_add_object_symbols): Don't check alignment - on symbol from plugin dummy input. - -2016-06-18 H.J. Lu - - * bfd.c (bfd_plugin_format): Rename bfd_plugin_uknown to - bfd_plugin_unknown. - * bfd-in2.h: Regenerated. - * plugin.c (bfd_plugin_object_p): Replace bfd_plugin_uknown - with bfd_plugin_unknown. - -2016-06-18 H.J. Lu - - PR ld/20253 - * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an - bfd_boolean argument. - * elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace - "shared object" with "PIC object" in comments. - (_bfd_elf_allocate_ifunc_dyn_relocs): Updated. Replace - "shared object" with "PIC object" in comments. Avoid PLT if - requested. Generate dynamic relocations for non-GOT references. - Make room for the special first entry in PLT and allocate PLT - entry only for PLT and PC-relative references. Store dynamic - GOT relocations in .rel[a].iplt section for static executables. - If PLT isn't used, always use GOT for symbol value. Don't - allocate GOT entry if it isn't used. - * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference - count only in the code section. Allocate dynamic pointer - relocation against STT_GNU_IFUNC symbol in the non-code section. - (elf_i386_adjust_dynamic_symbol): Increment PLT reference count - only for PC-relative references. - (elf_i386_allocate_dynrelocs): Pass TRUE to - _bfd_elf_allocate_ifunc_dyn_relocs. - (elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X - relocations against STT_GNU_IFUNC symbols without PLT. Generate - dynamic pointer relocation against STT_GNU_IFUNC symbol in - the non-code section and store it in the proper REL section. - Don't allow non-pointer relocation against STT_GNU_IFUNC symbol - without PLT. - (elf_i386_finish_dynamic_symbol): Generate dynamic - R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against - STT_GNU_IFUNC symbols without PLT. - (elf_i386_finish_dynamic_sections): Don't handle local - STT_GNU_IFUNC symbols here. - (elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC - symbols here. - (elf_backend_output_arch_local_syms): New. - * elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference - count only in the code section. Allocate dynamic pointer - relocation against STT_GNU_IFUNC symbol in the non-code section. - (elf_x86_64_adjust_dynamic_symbol): Increment PLT reference - count only for PC-relative references. - (elf_x86_64_allocate_dynrelocs): Pass TRUE to - _bfd_elf_allocate_ifunc_dyn_relocs. - (elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL, - R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and - R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols - without PLT. Generate dynamic pointer relocation against - STT_GNU_IFUNC symbol in the non-code section and store it in - the proper RELA section. Don't allow non-pointer relocation - against STT_GNU_IFUNC symbol without PLT. - (elf_x86_64_finish_dynamic_symbol): Generate dynamic - R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against - STT_GNU_IFUNC symbols without PLT. - (elf_x86_64_finish_dynamic_sections): Don't handle local - STT_GNU_IFUNC symbols here. - (elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC - symbols here. - (elf_backend_output_arch_local_syms): New. - * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs): - Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs. - -2016-06-17 Thomas Preud'homme - Tony Wang - - * elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub - sequence. - (stub_long_branch_thumb2_only): Define stub. - (arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only. - (arm_stub_long_branch_thumb2_only): Likewise. - (arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2 - capable targets. - -2016-06-17 Jose E. Marchesi - - * archures.c (bfd_mach_sparc_v8plusc): Define. - (bfd_mach_sparc_v9c): Likewise. - (bfd_mach_sparc_v8plusd): Likewise. - (bfd_mach_sparc_v9d): Likewise. - (bfd_mach_sparc_v8pluse): Likewise. - (bfd_mach_sparc_v9e): Likewise. - (bfd_mach_sparc_v8plusv): Likewise - (bfd_mach_sparc_v9v): Likewise. - (bfd_mach_sparc_v8plusm): Likewise. - (bfd_mach_sparc_v9m): Likewise. - (bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m. - (bfd_mach_sparc_64bit_p): Likewise. - * bfd-in2.h: Regenerate. - * cpu-sparc.c (arch_info_struct): Add entries for - bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}. - * aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m} - and bfd_mach_sparc_v9{c,d,e,v,m}. - * elf32-sparc.c (elf32_sparc_final_write_processing): Likewise. - * elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise. - -2016-06-16 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Don't check undefined - symbols for relocations against IFUNC symbols. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2016-06-16 Marcin Koƛcielnicki - - * elf32-s390.c (elf_s390_finish_dynamic_sections): Include - .rela.iplt in DT_PLTRELSZ. - * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise, - for DT_PLTRELSZ and DT_RELASZ as well. - -2016-06-16 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Skip relocations in - non-loaded, non-alloced sections. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2016-06-15 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Check SEC_ALLOC before - allocating dynamic relocation. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2016-06-14 Senthil Kumar Selvaraj - - PR ld/20254 - * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc - offsets until reloc_toaddr. - -2016-06-14 H.J. Lu - - * elf32-i386.c (elf_i386_reloc_type_class): Check R_386_IRELATIVE. - Don't check symbol type for STN_UNDEF symbol index. - * elf64-x86-64.c (elf_x86_64_reloc_type_class): Check - R_X86_64_IRELATIVE. Don't check symbol type for STN_UNDEF symbol - index. - -2016-06-14 Thomas Preud'homme - - * elf32-arm.c (using_thumb_only): Force review of arch check logic for - new architecture. - (using_thumb2): Try Tag_THUMB_ISA_use first and check - for exact arch value then. Force review of arch check logic for new - architecture. - (arch_has_arm_nop): Update and fix arch check logic. Force review of - that logic for new architecture. - (arch_has_thumb2_nop): Remove. - (elf32_arm_tls_relax): Use using_thumb2 instead of above function. - (elf32_arm_final_link_relocate): Likewise but using thumb2. - -2016-06-14 Alan Modra - - * bfd-in.h (bfd_my_archive): Delete. - * bfd-in2.h: Regenerate. - -2016-06-14 Alan Modra - - PR ld/20241 - * archive.c (open_nested_file): Set my_archive. - * bfd.c (_bfd_default_error_handler <%B>): Exclude archive file name - for thin archives. - * bfdio.c (bfd_tell): Don't adjust origin for thin archives. - (bfd_seek): Likewise. - * bfdwin.c (bfd_get_file_window): Likewise. - * cache.c (cache_bmmap): Likewise. - (bfd_cache_lookup_worker): Don't look in my_archive for thin archives. - * mach-o.c (bfd_mach_o_follow_dsym): Don't open my_archive for - thin archives. - * plugin.c (try_claim): Likewise. - * xcofflink.c (xcoff_link_add_dynamic_symbols): Use import path of - file within thin archive, not the archive. - -2016-06-13 H.J. Lu - - PR ld/20244 - * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt - section address for R_386_GOT32/R_386_GOT32X relocations against - IFUNC symbols if there is no base register and return error for - PIC. - -2016-06-13 H.J. Lu - - * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC - GOT32 adjustment for static executables. - -2016-06-13 Maciej W. Rozycki - - * elf32-mips.c (elf_mips_gnu_pcrel32): Update comment. - -2016-06-13 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Fixed condition. - -2016-06-13 Cupertino Miranda - - * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed. - -2016-06-13 Cupertino Miranda - - * elf32-arc.c (arc_local_data, arc_local_data): Removed. - (SECTSTART): Changed. - (elf_arc_relocate_section): Fixed mistake in PIE related - condition. - (elf_arc_size_dynamic_sections): Changed DT_RELENT to DT_RELAENT. - -2016-06-13 Cupertino Miranda - - * elf32-arc.c (elf32_arc_reloc_type_class): Defined function to - enable support for "-z combreloc" and DT_RELACOUNT. - (elf_backend_reloc_type_class): Likewise - -2016-06-11 H.J. Lu - - PR ld/20244 - * elf32-i386.c (elf_i386_relocate_section): When relocating - R_386_GOT32, return error without a base register for PIC and - subtract the .got.plt section address only with a base register. - -2016-06-10 Alan Modra - - * elf-strtab.c (struct strtab_save): Use size_t for "size". - (struct elf_strtab_hash): Likewise for "size" and "alloced". - (_bfd_elf_strtab_init): Formatting. - (_bfd_elf_strtab_add): Return size_t rather than bfd_size_type. - (_bfd_elf_strtab_addref): Take size_t idx param. - (_bfd_elf_strtab_delref, _bfd_elf_strtab_refcount): Likewise. - (_bfd_elf_strtab_offset): Likewise. - (_bfd_elf_strtab_clear_all_refs): Use size_t idx. - (_bfd_elf_strtab_save): Use size_t "idx" and "size" vars. - (_bfd_elf_strtab_restore, _bfd_elf_strtab_emit): Similarly. - (_bfd_elf_strtab_finalize): Similarly. - * elf-bfd.h (_bfd_elf_strtab_add): Update prototypes. - (_bfd_elf_strtab_addref, _bfd_elf_strtab_delref): Likewise. - (_bfd_elf_strtab_refcount, _bfd_elf_strtab_offset): Likewise. - * elf.c (bfd_elf_get_elf_syms): Calculate symbol buffer size - using bfd_size_type. - (bfd_section_from_shdr): Delete amt. - (_bfd_elf_init_reloc_shdr): Likewise. - (_bfd_elf_link_assign_sym_version): Likewise. - (assign_section_numbers): Use size_t reloc_count. - * elflink.c (struct elf_symbuf_head): Use size_t "count". - (bfd_elf_link_record_dynamic_symbol): Use size_t for some vars. - (elf_link_is_defined_archive_symbol): Likewise. - (elf_add_dt_needed_tag): Likewise. - (elf_finalize_dynstr): Likewise. - (elf_link_add_object_symbols): Likewise. - (bfd_elf_size_dynamic_sections): Likewise. - (elf_create_symbuf): Similarly. - (bfd_elf_match_symbols_in_sections): Likewise. - (elf_link_swap_symbols_out): Likewise. - (elf_link_check_versioned_symbol): Likewise. - (bfd_elf_gc_record_vtinherit): Likewise. - (bfd_elf_gc_common_finalize_got_offsets): Likewise. - -2016-06-08 Senthil Kumar Selvaraj - - PR ld/20221 - * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms - and relocs only if shrinking occurred. - -2016-06-08 H.J. Lu - - * elf64-i386.c (elf_i386_link_hash_entry): Add tls_get_addr. - (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 2. - (elf_i386_check_tls_transition): Check indirect call and direct - call with the addr32 prefix for general and local dynamic models. - Set the tls_get_addr feild. - (elf_i386_convert_load_reloc): Always use addr32 prefix for - indirect ___tls_get_addr call via GOT. - (elf_i386_relocate_section): Handle GD->LE, GD->IE and LD->LE - transitions with indirect call and direct call with the addr32 - prefix. - -2016-06-07 Marcin Koƛcielnicki - - * elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment. - * elf64-s390.c (elf_s390x_plt_entry): Fix comment. - (elf_s390_relocate_section): Fix comment. - (elf_s390_finish_dynamic_sections): Fix initialization of fixed - .got.plt entries. - -2016-06-07 Ulrich Weigand - - * elf64-s390.c (elf_s390_finish_dynamic_sections): Subtract plt - section offset when calculation the larl operand in the first PLT - entry. - -2016-06-07 Alan Modra - - * cpu-powerpc.c (powerpc_compatible): Allow bfd_mach_ppc_vle entry - to match other 32-bit archs. - * elf32-ppc.c (_bfd_elf_ppc_set_arch): New function. - (ppc_elf_object_p): Call it. - (ppc_elf_special_sections): Use APUINFO_SECTION_NAME. Fix - overlong line. - (APUINFO_SECTION_NAME, APUINFO_LABEL): Don't define here. - * elf64-ppc.c (ppc64_elf_object_p): Call _bfd_elf_ppc_set_arch. - * bfd-in.h (_bfd_elf_ppc_at_tls_transform, - _bfd_elf_ppc_at_tprel_transform): Move to.. - * elf-bfd.h: ..here. - (_bfd_elf_ppc_set_arch): Declare. - * bfd-in2.h: Regenerate. - -2016-06-06 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add tls_get_addr. - (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 2. - (elf_x86_64_check_tls_transition): Check indirect call and - direct call with the addr32 prefix for general and local dynamic - models. Set the tls_get_addr feild. - (elf_x86_64_convert_load_reloc): Always use addr32 prefix for - indirect __tls_get_addr call via GOT. - (elf_x86_64_relocate_section): Handle GD->LE, GD->IE and LD->LE - transitions with indirect call and direct call with the addr32 - prefix. - -2016-06-04 Christian Groessler - - * coff-z8k.c (extra_case): Fix range check for R_JR relocation. - -2016-06-02 Nick Clifton - - PR target/20088 - * cpu-arm.c (processors): Add "arm_any" type to match any ARM - architecture. - (arch_info_struct): Likewise. - (architectures): Likewise. - -2016-06-02 Vineet Gupta - - * config.bfd: Replace -uclibc with *. - -2016-06-02 H.J. Lu - - * elf64-x86-64.c: Replace data32 with data16 in comments. - -2016-05-31 Alan Modra - - PR ld/20159 - PR ld/16467 - * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change. - (_bfd_elf_add_default_symbol): Don't indirect to/from defined - symbol given a version by a script different to the version - of the symbol being added. - (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and - _bfd_elf_strtab_restore. Don't fudge dynstr references. - * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete. - (struct strtab_save): New. - (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions. - * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete. - (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare. - -2016-06-01 Trevor Saunders - - * elf32-hppa.h: Add extern "C". - * elf32-nds32.h: Likewise. - * elf32-tic6x.h: Likewise. - -2016-06-01 Nick Clifton - - * po/sr.po: New Serbian translation. - * configure.ac (ALL_LINGUAS): Add sr. - * configure: Regenerate. - -2016-05-28 Maciej W. Rozycki - - * elfxx-mips.c (b_reloc_p): New function. - (_bfd_mips_elf_relocate_section) : Handle - branch relocations. - -2016-05-28 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation): - : Drop the region bits of the - reloc location from calculation, treat the addend as signed with - local non-section symbols and enable overflow detection. - -2016-05-28 Alan Modra - - * aoutx.h: Adjust linker callback calls throughout file, - removing dead code. - * bout.c: Likewise. - * coff-alpha.c: Likewise. - * coff-arm.c: Likewise. - * coff-h8300.c: Likewise. - * coff-h8500.c: Likewise. - * coff-i960.c: Likewise. - * coff-mcore.c: Likewise. - * coff-mips.c: Likewise. - * coff-ppc.c: Likewise. - * coff-rs6000.c: Likewise. - * coff-sh.c: Likewise. - * coff-tic80.c: Likewise. - * coff-w65.c: Likewise. - * coff-z80.c: Likewise. - * coff-z8k.c: Likewise. - * coff64-rs6000.c: Likewise. - * cofflink.c: Likewise. - * ecoff.c: Likewise. - * elf-bfd.h: Likewise. - * elf-m10200.c: Likewise. - * elf-m10300.c: Likewise. - * elf32-arc.c: Likewise. - * elf32-arm.c: Likewise. - * elf32-avr.c: Likewise. - * elf32-bfin.c: Likewise. - * elf32-cr16.c: Likewise. - * elf32-cr16c.c: Likewise. - * elf32-cris.c: Likewise. - * elf32-crx.c: Likewise. - * elf32-d10v.c: Likewise. - * elf32-epiphany.c: Likewise. - * elf32-fr30.c: Likewise. - * elf32-frv.c: Likewise. - * elf32-ft32.c: Likewise. - * elf32-h8300.c: Likewise. - * elf32-hppa.c: Likewise. - * elf32-i370.c: Likewise. - * elf32-i386.c: Likewise. - * elf32-i860.c: Likewise. - * elf32-ip2k.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-mep.c: Likewise. - * elf32-metag.c: Likewise. - * elf32-microblaze.c: Likewise. - * elf32-moxie.c: Likewise. - * elf32-msp430.c: Likewise. - * elf32-mt.c: Likewise. - * elf32-nds32.c: Likewise. - * elf32-nios2.c: Likewise. - * elf32-or1k.c: Likewise. - * elf32-ppc.c: Likewise. - * elf32-s390.c: Likewise. - * elf32-score.c: Likewise. - * elf32-score7.c: Likewise. - * elf32-sh.c: Likewise. - * elf32-sh64.c: Likewise. - * elf32-spu.c: Likewise. - * elf32-tic6x.c: Likewise. - * elf32-tilepro.c: Likewise. - * elf32-v850.c: Likewise. - * elf32-vax.c: Likewise. - * elf32-visium.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. - * elfxx-mips.c: Likewise. - * elfxx-sparc.c: Likewise. - * elfxx-tilegx.c: Likewise. - * linker.c: Likewise. - * pdp11.c: Likewise. - * pe-mips.c: Likewise. - * reloc.c: Likewise. - * reloc16.c: Likewise. - * simple.c: Likewise. - * vms-alpha.c: Likewise. - * xcofflink.c: Likewise. - * elf32-rl78.c (get_symbol_value, get_romstart, get_ramstart): Delete - status param. Adjust calls to these and linker callbacks throughout. - * elf32-rx.c: (get_symbol_value, get_gp, get_romstart, - get_ramstart): Delete status param. Adjust calls to these and - linker callbacks throughout. - -2016-05-27 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation) - : Include the addend in JALX's - target alignment verification. - -2016-05-27 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_calculate_relocation): Also use the - section name if `bfd_elf_string_from_elf_section' returns an - empty string. - -2016-05-26 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_relocate_section) - : Use the `%X%H' rather than `%C' format - for message. Continue processing rather than returning failure. - -2016-05-25 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_relocate_section) - : Call `->einfo' rather than `->warning'. - Call `bfd_set_error'. - -2016-05-25 H.J. Lu - - PR binutils/14625 - * archive.c (bfd_slurp_armap): Replace - bfd_elf64_archive_slurp_armap with - _bfd_archive_64_bit_slurp_armap. - (bsd_write_armap): Call _bfd_archive_64_bit_write_armap if - BFD64 is defined and the archive is too big. - (coff_write_armap): Likewise. - * archive64.c (bfd_elf64_archive_slurp_armap): Renamed to ... - (_bfd_archive_64_bit_slurp_armap): This. - (bfd_elf64_archive_write_armap): Renamed to ... - (_bfd_archive_64_bit_write_armap): This. - * configure.ac: Add --enable-64-bit-archive. - (want_64_bit_archive): New. Set to true by default for 64-bit - MIPS and s390 ELF targets. - (USE_64_BIT_ARCHIVE): New AC_DEFINE. - * config.in: Regenerated. - * configure: Likewise. - * elf64-mips.c (bfd_elf64_archive_functions): Removed. - (bfd_elf64_archive_slurp_armap): Likewise. - (bfd_elf64_archive_write_armap): Likewise. - (bfd_elf64_archive_slurp_extended_name_table): Likewise. - (bfd_elf64_archive_construct_extended_name_table): Likewise. - (bfd_elf64_archive_truncate_arname): Likewise. - (bfd_elf64_archive_read_ar_hdr): Likewise. - (bfd_elf64_archive_write_ar_hdr): Likewise. - (bfd_elf64_archive_openr_next_archived_file): Likewise. - (bfd_elf64_archive_get_elt_at_index): Likewise. - (bfd_elf64_archive_generic_stat_arch_elt): Likewise. - (bfd_elf64_archive_update_armap_timestamp): Likewise. - * elf64-s390.c (bfd_elf64_archive_functions): Removed. - (bfd_elf64_archive_slurp_armap): Likewise. - (bfd_elf64_archive_write_armap): Likewise. - (bfd_elf64_archive_slurp_extended_name_table): Likewise. - (bfd_elf64_archive_construct_extended_name_table): Likewise. - (bfd_elf64_archive_truncate_arname): Likewise. - (bfd_elf64_archive_read_ar_hdr): Likewise. - (bfd_elf64_archive_write_ar_hdr): Likewise. - (bfd_elf64_archive_openr_next_archived_file): Likewise. - (bfd_elf64_archive_get_elt_at_index): Likewise. - (bfd_elf64_archive_generic_stat_arch_elt): Likewise. - (bfd_elf64_archive_update_armap_timestamp): Likewise. - * elfxx-target.h (TARGET_BIG_SYM): Use _bfd_archive_64_bit on - BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined and - bfd_elfNN_archive_functions isn't defined. - (TARGET_LITTLE_SYM): Likewise. - * libbfd-in.h (_bfd_archive_64_bit_slurp_armap): New prototype. - (_bfd_archive_64_bit_write_armap): Likewise. - (_bfd_archive_64_bit_slurp_extended_name_table): New macro. - (_bfd_archive_64_bit_construct_extended_name_table): Likewise. - (_bfd_archive_64_bit_truncate_arname): Likewise. - (_bfd_archive_64_bit_read_ar_hdr): Likewise. - (_bfd_archive_64_bit_write_ar_hdr): Likewise. - (_bfd_archive_64_bit_openr_next_archived_file): Likewise. - (_bfd_archive_64_bit_get_elt_at_index): Likewise. - (_bfd_archive_64_bit_generic_stat_arch_elt): Likewise. - (_bfd_archive_64_bit_update_armap_timestamp): Likewise. - * libbfd.h: Regenerated. - * plugin.c (plugin_vec): Use _bfd_archive_64_bit on - BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined. - -2016-05-25 H.J. Lu - - PR ld/20103 - * cofflink.c (coff_link_check_archive_element): Return TRUE if - linker add_archive_element callback returns FALSE. - * ecoff.c (ecoff_link_check_archive_element): Likewise. - * elf64-ia64-vms.c (elf64_vms_link_add_archive_symbols): Skip - archive element if linker add_archive_element callback returns - FALSE. - * elflink.c (elf_link_add_archive_symbols): Likewise. - * pdp11.c (aout_link_check_ar_symbols): Likewise. - * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise. - * xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Likewise. - (xcoff_link_check_ar_symbols): Likewise. - -2016-05-24 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_relocate_section) - : Unify error reporting code. - -2016-05-23 Jim Wilson - - * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and - R_AARCH64_NONE. Use HOWTO64 for R_AARCH64_NULL. - * relocs.c: Add BFD_RELOC_AARCH64_NULL. - * bfd-in2.h: Regenerate. - * libbfd.h: Likewise. - -2016-05-23 Kuba Sejdak - - * config.bfd: Add entry for arm-phoenix. - -2016-05-23 Thomas Preud'homme - - * elf32-arm.c (arm_dedicated_stub_section_padding): New function. - (elf32_arm_size_stubs): Declare stub_type in a more outer scope and - account for padding for stub section requiring one. - (elf32_arm_build_stubs): Add comment to stress the importance of - zeroing veneer section content. - -2016-05-23 Thomas Preud'homme - - * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare - bfd hook. - * bfd-in2.h: Regenerate. - * elf32-arm.c (arm_dedicated_stub_output_section_required): New - function. - (arm_dedicated_stub_output_section_required_alignment): Likewise. - (arm_dedicated_stub_output_section_name): Likewise. - (arm_dedicated_stub_input_section_ptr): Likewise. - (elf32_arm_create_or_find_stub_sec): Add stub type parameter and - function description comment. Add support for dedicated output stub - section to given stub types. - (elf32_arm_add_stub): Add a stub type parameter and pass it down to - elf32_arm_create_or_find_stub_sec. - (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub. - (elf32_arm_size_stubs): Pass stub type when calling - elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers. - (bfd_elf32_arm_keep_private_stub_output_sections): New function. - -2016-05-20 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32 - when setting need_convert_load. - -2016-05-20 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_read_rel_addend): Adjust the addend for - microMIPS JALX. - -2016-05-19 H.J. Lu - - PR ld/20117 - * elf32-i386.c (elf_i386_convert_load_reloc): Don't check - R_386_GOT32X. - (elf_i386_convert_load): Don't convert R_386_GOT32. - -2016-05-20 Alan Modra - - PR gas/20118 - * elf.c (elf_fake_sections): Set sh_entsize for SHT_INIT_ARRAY, - SHT_FINI_ARRAY, and SHT_PREINIT_ARRAY. - -2016-05-19 Cupertino Miranda - - * elf32-arc.c (arc_elf_final_write_processing): Changed. - (debug_arc_reloc): Likewise. - (elf_arc_relocate_section): Likewise. - (elf_arc_check_relocs): Likewise. - (elf_arc_adjust_dynamic_symbol): Likewise. - (elf_arc_add_symbol_hook): Likewise. - -2016-05-19 Maciej W. Rozycki - - * config.bfd: Remove `am34-*-linux*' support. - -2016-05-19 Alan Modra - - * elf64-ppc.c (allocate_dynrelocs): Allocate got and other dynamic - relocs before plt relocs. - -2016-05-19 Alan Modra - - * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner - before dereferencing. - -2016-05-18 Nick Clifton - - * po/sv.po: Updated Swedish translation. - -2016-05-18 Alan Modra - - * elf32-arm.c (elf32_arm_size_stubs): Free or cache local syms - for each BFD. Don't goto error_ret_free_local from outside loop. - -2016-05-17 Maciej W. Rozycki - - * elf-s390-common.c (elf_s390_add_symbol_hook): Remove - STB_GNU_UNIQUE handling. - * elf32-arc.c (elf_arc_add_symbol_hook): Likewise. - * elf32-arm.c (elf32_arm_add_symbol_hook): Likewise. - * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise. - * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise. - * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise. - * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise. - * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise. - * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise. - * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise. - * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Likewise. - * elf32-i386.c (elf_i386_add_symbol_hook): Remove function. - (elf_backend_add_symbol_hook): Remove macro. - * elflink.c (elf_link_add_object_symbols): Set `has_gnu_symbols' - for STB_GNU_UNIQUE symbols. - -2016-05-16 Maciej W. Rozycki - - * elf32-v850.c (v850_elf_copy_notes): New function, factored out - from... - (v850_elf_copy_private_bfd_data): ... here. Call the new - function and `_bfd_elf_copy_private_bfd_data'. - -2016-05-13 H.J. Lu - - PR ld/20093 - * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert - GOTPCREL relocation against large section. - -2016-05-13 Alan Modra - - * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use - linker dynamic sections in calculating size and address of - dynamic tags rather than using output sections. Remove asserts. - * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise. - * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise. - * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise. - * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise. - * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise. - * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise. - * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise. - * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise. - * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise. - * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise. - * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise. - * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise. - * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise. - * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise. - * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise. - * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise. - * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise. - * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise. - * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. - * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise. - * elflink.c (bfd_elf_final_link): Likewise. - * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise. - * elfxx-sparc.c (sparc_finish_dyn): Likewise. Adjust error message. - * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and - don't set doit. Look up dynobj section. - (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION - invocation and dynamic tag vma calculation. Don't test - boolean var == TRUE. - * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix - DT_JMPREL calc. - -2016-05-13 Alan Modra - - * elflink.c (elf_link_sort_relocs): Wrap overlong lines. Fix - octets_per_byte. Put dynamic .rela.plt last in link orders. - Assign output_offset for reloc sections rather than writing - sorted relocs from block corresponding to output_offset. - -2016-05-12 Alan Modra - - * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last. - -2016-05-11 Andrew Bennett - - * elfxx-mips.c (print_mips_ases): Add DSPR3. - -2016-05-11 Alan Modra - - * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function. - (elf32_hppa_check_relocs): Don't set dynobj. - (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections. - (elf32_hppa_build_stubs): Likewise. - * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare. - -2016-05-11 Alan Modra - - PR 20060 - * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local. - * elf32-ppc.c (ppc_elf_tls_setup): Likewise. - -2016-05-10 Jiong Wang - - * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant - aarch64_tls_transition check. - -2016-05-10 Thomas Preud'homme - - * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type - enumerator. - (arm_stub_sym_claimed): New function. - (elf32_arm_create_stub): Use veneered symbol name and section if - veneer needs to claim its symbol, and keep logic unchanged otherwise. - (arm_stub_claim_sym): New function. - (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim - veneered symbol, otherwise create local symbol as before. - -2016-05-10 Thomas Preud'homme - - * elf32-arm.c (elf32_arm_size_stubs): Use new macros - ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get - and set branch type of a symbol. - (bfd_elf32_arm_process_before_allocation): Likewise. - (elf32_arm_relocate_section): Likewise and fix identation along the - way. - (allocate_dynrelocs_for_symbol): Likewise. - (elf32_arm_finish_dynamic_symbol): Likewise. - (elf32_arm_swap_symbol_in): Likewise. - (elf32_arm_swap_symbol_out): Likewise. - -2016-05-10 Thomas Preud'homme - - * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter. - * bfd-in2.h: Regenerated. - * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section - parameter to add_stub_section callback. - (elf32_arm_create_or_find_stub_sec): Get output section from link_sec - and pass it down to add_stub_section. - (elf32_arm_add_stub): Set section to stub_sec if NULL before using it - for error message. - (elf32_arm_size_stubs): Add output section parameter to - add_stub_section function pointer parameter. - -2016-05-10 Thomas Preud'homme - - * elf32-arm.c (elf32_arm_create_stub): New function. - (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation. - -2016-05-10 Thomas Preud'homme - - * elf32-arm.c (enum elf32_arm_stub_type): Delete - arm_stub_a8_veneer_lwm enumerator. - (arm_stub_a8_veneer_lwm): New unsigned constant to replace - aforementioned enumerator. - (struct elf32_arm_stub_hash_entry): Delete target_addend - field and add source_value. - (struct a8_erratum_fix): Delete addend field and add target_offset. - (stub_hash_newfunc): Initialize source_value field amd remove - initialization for target_addend. - (arm_build_one_stub): Stop special casing Thumb relocations: promote - the else to being always executed, moving the - arm_stub_a8_veneer_b_cond specific code in it. Remove - stub_entry->target_addend from points_to computation. - (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset - to target symbol from start of section rather than the offset from the - stub address. - (elf32_arm_size_stubs): Set stub_entry's source_value and target_value - fields from struct a8_erratum_fix's offset and target_offset - respectively. - (make_branch_to_a8_stub): Rename target variable to loc. Compute - veneered_insn_loc and loc using stub_entry's source_value. - -2016-05-10 Thomas Preud'homme - - (elf32_arm_merge_eabi_attributes): Add merging logic for - Tag_DSP_extension. - -2016-05-10 Pip Cet - - PR ld/20059 - * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): - Define as _bfd_generic_copy_link_hash_symbol_type when using - generic hash table. - -2016-05-09 Nick Clifton - - PR binutils/20063 - * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link - field before accessing sections array. - -2016-05-09 Christophe Monat - - PR ld/20030 - * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding. - (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs - to nb_words. - (create_instruction_vldmia): Add is_dp to disambiguate SP/DP - encoding. - (create_instruction_vldmdb): Likewise. - (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding, - uses it to re-encode. - -2016-05-09 Nick Clifton - - PR 19938 - * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental - commit. - -2016-05-09 Alan Modra - - * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check. - -2016-05-06 H.J. Lu - - PR ld/17550 - * elf-bfd.h (elf_link_hash_entry): Update comments for indx, - documenting that indx == -3 if symbol is defined in a discarded - section. - * elflink.c (elf_link_add_object_symbols): Set indx to -3 if - symbol is defined in a discarded section. - (elf_link_output_extsym): Strip a global symbol defined in a - discarded section. - -2016-05-06 H.J. Lu - - * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel - MCU. - -2016-05-05 H.J. Lu - - * elf32-i386.c (elf_i386_convert_load): Extract the GOT load - conversion to ... - (elf_i386_convert_load_reloc): This. New function. - * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load - conversion to ... - (elf_x86_64_convert_load_reloc): This. New function. - -2016-05-05 H.J. Lu - - * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd. - Don't check if contents == NULL. - (elf_i386_tls_transition): Add from_relocate_section. Check - from_relocate_section instead of contents != NULL. Update - elf_i386_check_tls_transition call. - (elf_i386_check_relocs): Cache the section contents if - keep_memory is FALSE. Pass FALSE as from_relocate_section to - elf_i386_tls_transition. - (elf_i386_relocate_section): Pass TRUE as from_relocate_section - to elf_i386_tls_transition. - (elf_backend_caches_rawsize): New. - * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check - if contents == NULL. - (elf_x86_64_tls_transition): Add from_relocate_section. Check - from_relocate_section instead of contents != NULL. - (elf_x86_64_check_relocs): Cache the section contents if - keep_memory is FALSE. Pass FALSE as from_relocate_section to - elf_x86_64_tls_transition. - (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section - to elf_x86_64_tls_transition. - (elf_backend_caches_rawsize): New. - -2016-05-03 Maciej W. Rozycki - - PR 10549 - * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle - STB_GNU_UNIQUE. - -2016-05-03 Jiong Wang - - * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype. - * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise. - * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize - no_apply_dynamic_relocs. - (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though - dynamic relocations generated. - -2016-04-29 H.J. Lu - - * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp - setting to ... - (elf_i386_create_dynamic_sections): Here. - * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move - interp setting to ... - (elf_x86_64_create_dynamic_sections): Here. - -2016-04-29 H.J. Lu - - * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC - and replace (EH)->has_got_reloc with GOT_RELOC. - (elf_i386_fixup_symbol): Pass has_got_reloc to - UNDEFINED_WEAK_RESOLVED_TO_ZERO. - (elf_i386_allocate_dynrelocs): Likewise. - (elf_i386_relocate_section): Likewise. - (elf_i386_finish_dynamic_symbol): Likewise. - (elf_i386_convert_load): Pass TRUE to - UNDEFINED_WEAK_RESOLVED_TO_ZERO. - * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take - GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC. - (elf_x86_64_fixup_symbol): Pass has_got_reloc to - UNDEFINED_WEAK_RESOLVED_TO_ZERO. - (elf_x86_64_allocate_dynrelocs): Likewise. - (elf_x86_64_relocate_section): Likewise. - (elf_x86_64_finish_dynamic_symbol): Likewise. - (elf_x86_64_convert_load): Pass TRUE to - UNDEFINED_WEAK_RESOLVED_TO_ZERO. - -2016-04-29 H.J. Lu - - * elf32-i386.c (check_relocs_failed): New. - (elf_i386_check_relocs): Set check_relocs_failed on error. - (elf_i386_relocate_section): Skip if check_relocs failed. - -2016-04-29 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_check_relocs): Set - check_relocs_failed on error. - -2016-04-29 Nick Clifton - - PR 19938 - * elf-bfd.h (struct elf_backend_data): Rename - elf_backend_set_special_section_info_and_link to - elf_backend_copy_special_section_fields. - * elfxx-target.h: Likewise. - * elf.c (section_match): Ignore the SHF_INFO_LINK flag when - comparing section flags. - (copy_special_section_fields): New function. - (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field. - Perform two scans over special sections. The first one looks for - a direct mapping between the output section and an input section. - The second scan looks for a possible match based upon section - characteristics. - * elf32-arm.c (elf32_arm_copy_special_section_fields): New - function. Handle setting the sh_link field of SHT_ARM_EXIDX - sections. - * elf32-i386.c (elf32_i386_set_special_info_link): Rename to - elf32_i386_copy_solaris_special_section_fields. - * elf32-sparc.c (elf32_sparc_set_special_section_info_link): - Rename to elf32_sparc_copy_solaris_special_section_fields. - * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to - elf64_x86_64_copy_solaris_special_section_fields. - -2016-04-28 Nick Clifton - - * po/zh_CN.po: Updated Chinese (simplified) translation. - -2016-04-27 H.J. Lu - - PR ld/20006 - * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections - when estimating distances between output sections. - -2016-04-27 Alan Modra - - * elflink.c (_bfd_elf_is_start_stop): New function. - (_bfd_elf_gc_mark_rsec): Use it. - * elf-bfd.h (_bfd_elf_is_start_stop): Declare. - -2016-04-26 Trevor Saunders - - * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *. - * mmo.c (mmo_get_section_contents): Likewise. - (mmo_set_section_contents): Likewise. - -2016-04-26 H.J. Lu - - * elf-bfd.h (elf_link_hash_table): Update comments for - dynsymcount. - * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for - the unused NULL entry at the head of dynamic symbol table. - (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0 - checks. - -2016-04-21 H.J. Lu - - * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker - created file from dynobj. - -2016-04-21 H.J. Lu - - * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a - normal input file if possible. - -2016-04-21 Nick Clifton - - * aout-adobe.c: Use _bfd_generic_link_check_relocs. - * aout-target.h: Likewise. - * aout-tic30.c: Likewise. - * binary.c: Likewise. - * bout.c: Likewise. - * coff-alpha.c: Likewise. - * coff-rs6000.c: Likewise. - * coff64-rs6000.c: Likewise. - * coffcode.h: Likewise. - * i386msdos.c: Likewise. - * i386os9k.c: Likewise. - * ieee.c: Likewise. - * ihex.c: Likewise. - * libbfd-in.h: Likewise. - * libecoff.h: Likewise. - * mach-o-target.c: Likewise. - * mmo.c: Likewise. - * nlm-target.h: Likewise. - * oasys.c: Likewise. - * pef.c: Likewise. - * plugin.c: Likewise. - * ppcboot.c: Likewise. - * som.c: Likewise. - * srec.c: Likewise. - * tekhex.c: Likewise. - * versados.c: Likewise. - * vms-alpha.c: Likewise. - * xsym.c: Likewise. - * elfxx-target.h: Use _bfd_elf_link_check_relocs. - * linker.c (bfd_link_check_relocs): New function. - (_bfd_generic_link_check_relocs): New function. - * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of - _bfd_link_check_relocs field. - (struct bfd_target)L Add _bfd_link_check_relocs field. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2016-04-20 H.J. Lu - - * elf32-i386.c (elf_i386_gc_sweep_hook): Removed. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - -2016-04-20 H.J. Lu - - * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations - in excluded sections - -2016-04-20 H.J. Lu - - PR ld/19969 - * elf64-x86-64.c (check_relocs_failed): New. - (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs. - Support relocation agaist local symbol. Set check_relocs_failed. - (elf_x86_64_check_relocs): Use elf_x86_64_need_pic. Check - R_X86_64_32 relocation overflow. - (elf_x86_64_relocate_section): Skip if check_relocs failed. - Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic. - -2016-04-20 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Call - _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2016-04-20 H.J. Lu - - * elf-bfd.h (_bfd_elf_link_check_relocs): New. - * elflink.c (_bfd_elf_link_check_relocs): New function. - (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs - if check_relocs_after_open_input is FALSE. - -2016-04-20 Trevor Saunders - - * cache.c: Update old style function definitions. - * elf32-m68k.c: Likewise. - * elf64-mmix.c: Likewise. - * stab-syms.c: Likewise. - -2016-04-20 Trevor Saunders - - * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *. - -2016-04-15 H.J. Lu - - * Makefile.in: Regenerated with automake 1.11.6. - * aclocal.m4: Likewise. - * doc/Makefile.in: Likewise. - -2016-04-14 Andrew Burgess - - * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - * elf32-arc.c: Add 'opcode/arc.h' include. - (struct arc_relocation_data): Add symbol_name. - (arc_special_overflow_checks): New function. - (arc_do_relocation): Use arc_special_overflow_checks, reindent as - required, add an extra comment. - (elf_arc_relocate_section): Setup symbol_name in reloc_data. - -2016-04-14 Andrew Burgess - - * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all - entries. - (elf_arc_relocate_section): Update enum uses. - (elf_arc_check_relocs): Likewise. - (elf_arc_finish_dynamic_symbol): Likewise. - -2016-04-14 H.J. Lu - - * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with - "sh_link". - -2016-04-14 Nick Clifton - - PR target/19938 - * elf-bbfd.h (struct elf_backend_data): New field: - elf_strtab_flags. - New field: elf_backend_set_special_section_info_and_link - * elfxx-target.h (elf_backend_strtab_flags): Define if not already - defined. - (elf_backend_set_special_section_info_and_link): Define if not - already defined. - (elfNN_bed): Use elf_backend_set_special_section_info_and_link and - elf_backend_strtab_flags macros to initialise fields in structure. - * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS - being set even if SHF_MERGE is not set. - (elf_fake_sections): Likewise. - (section_match): New function. Matches two ELF sections based - upon fixed characteristics. - (find_link): New function. Locates a section in a BFD that - matches a section in a different BFD. - (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link - fields of reserved sections. - (bfd_elf_compute_section_file_positions): Set the flags for the - .shstrtab section based upon the elf_strtab_flags field in the - elf_backend_data structure. - (swap_out_syms): Likewise for the .strtab section. - * elflink.c (bfd_elf_final_link): Set the flags for the - .strtab section based upon the elf_strtab_flags field in the - elf_backend_data structure. - * elf32-i386.c (elf32_i386_set_special_info_link): New function. - (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris - targets. - (elf_backend_set_special_section_info_and_link): Define for - Solaris targets. - * elf32-sparc.c: Likewise. - * elf64-x86-64.c: Likewise. - -2016-04-11 H.J. Lu - - PR ld/19939 - * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer - to bfd_boolean. - * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated. - Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc - applies to read-only section. - * elf32-i386.c (elf_i386_link_hash_table): Add - readonly_dynrelocs_against_ifunc. - (elf_i386_allocate_dynrelocs): Updated. - (elf_i386_size_dynamic_sections): Issue an error for read-only - segment with dynamic IFUNC relocations only if - readonly_dynrelocs_against_ifunc is TRUE. - * elf64-x86-64.c (elf_x86_64_link_hash_table): Add - readonly_dynrelocs_against_ifunc. - (elf_x86_64_allocate_dynrelocs): Updated. - (elf_x86_64_size_dynamic_sections): Issue an error for read-only - segment with dynamic IFUNC relocations only if - readonly_dynrelocs_against_ifunc is TRUE. - * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs): - Updated. - -2016-04-06 Thomas Preud'homme - - * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be - a fall through from error_ret_free_internal. Free local_syms in - error_ret_free_local if allocated from bfd_elf_get_elf_syms (). - -2016-04-05 Cupertino Miranda - - * elf32-arc.c (plt_do_relocs_for_symbol): Changed. - (relocate_plt_for_entry): Likewise. - -2016-04-05 Cupertino Miranda - - * elf32-arc.c (elf_arc_check_relocs): Changed - -2016-04-05 Cupertino Miranda - - * elf32-arc.c (name_for_global_symbol): Changed assert. - (get_replace_function): Created.: - (struct arc_relocation_data): Changed to signed types. - (defines S, L, P, PDATA): Casted to signed type. - (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise. - (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed. - (arc_do_relocation): Changed. - -2016-04-05 Cupertino Miranda - - * elf32-arc.c (name_for_global_symbol): Added assert to check for - symbol index. - (elf_arc_relocate_section): Added and changed asserts, validating - the synamic symbol index. - (elf_arc_finish_dynamic_symbol): Do not fill the dynamic - relocation if symbol has dynindx set to -1. - -2016-04-05 Maciej W. Rozycki - - PR ld/19908 - * elflink.c (elf_link_add_object_symbols): Always turn hidden - and internal symbols which have a dynamic index into local - ones. - -2016-04-04 Nick Clifton - - PR 19872 - * dwarf2.c (parse_comp_unit): Skip warning about unrecognised - version number if the version is zero. - -2016-04-01 Alan Modra - - PR 19886 - * elflink.c (on_needed_list): Recursively check needed status. - (elf_link_add_object_symbols): Adjust. - -2016-03-30 Senthil Kumar Selvaraj - - * elf32-avr.c (avr_elf32_load_records_from_section): Free - internal_relocs only if they aren't cached. - -2016-03-29 Nick Clifton - - PR 17334 - * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax - assertion on the size of the got section to allow it to be bigger - than the number of relocs. - -2016-03-29 Toni Spets - - PR 19878 - * coffcode.h (coff_write_object_contents): Revert accidental - 2014-11-10 change. - -2016-03-22 Alan Modra - - PR 19850 - * dwarf2.c (read_attribute_value): Skip info_ptr check for - DW_FORM_flag_present. - -2016-03-22 Nick Clifton - - * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an - architecture name for backwards compatibility. - - * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible - unbounded stack use. - - * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a - sufficiently recent version of GCC. - * configure: Regenerate. - -2016-03-22 Alan Modra - - PR 19851 - * plugin.c (try_load_plugin): Avoid -Wstack-usage warning. - -2016-03-21 Andrew Burgess - - * archures.c (bfd_mach_arc_nps400): Define. - * bfd-in2.h: Regenerate. - * cpu-arc.c (arch_info_struct): New entry for nps400, renumber - some existing entries to make space. - * elf32-arc.c (arc_elf_object_p): Add nps400 case. - (arc_elf_final_write_processing): Likewise. - -2016-03-21 Andrew Burgess - - * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of - EF_ARC_CPU_GENERIC. - (arc_elf_final_write_processing): Don't bother setting cpu field - in e_flags, this will have been set elsewhere. - -2016-03-21 Andrew Burgess - - * elf32-arc.c (arc_elf_final_write_processing): Switch to using - EF_ARC_MACH_MSK. - -2016-03-21 Nick Clifton - - * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144 - * configure: Regenerate. - * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of - alloca with call to xmalloc. - * elf32-nds32.c: Likewise. - * elf64-hppa.c: Likewise. - * elfxx-mips.c: Likewise. - * pef.c: Likewise. - * pei-x86_64.c: Likewise. - * som.c: Likewise. - * xsym.c: Likewise. - -2016-03-15 H.J. Lu - - PR ld/19827 - * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol - locally in PIE. - (elf_i386_relocate_section): Likewise. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - (elf_x86_64_relocate_section): Likewise. - -2016-03-15 H.J. Lu - - PR ld/19807 - * elf64-x86-64.c (elf_x86_64_relocate_section): Check - no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S - relocation overflow check. - -2016-03-14 H.J. Lu - - * bfd-in2.h: Regenerated. - -2016-03-11 Dan Gissel - - PR 19713 - * elf.c (_bfd_elf_section_offset): Ensure that the returned offset - uses bytes not octets. - * elflink.c (resolve_section): Likewise. - Add a bfd parameter. - (eval_section): Pass the input_bfd to resolve_section. - (bfd_elf_perform_complex_relocation): Convert byte offset to - octets before read and writing values. - (elf_link_input_bfd): Add byte to octet conversions. - (elf_reloc_link_order): Likewise. - (elf_fixup_link_order): Likewise. - (bfd_elf_final_link): Likewise. - * reloc.c (_bfd_final_link_relocate): Likewise. - * syms.c (_bfd_stab_section_find_nearest_line): Likewise. - -2016-03-10 Nick Clifton - - * config.bfd: Mark the i370 target as obsolete. - -2016-03-09 Pedro Alves - - * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old - gcc ABI)" to printable name. - * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead - of "v850-rh850" as printable name. - -2016-03-09 Leon Winter - - PR ld/19623 - * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply - relocations against absolute symbols. - -2016-03-09 Alan Modra - - PR binutils/19775 - * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero - length elements in the archive. - -2016-03-08 H.J. Lu - - PR ld/19789 - * elflink.c (elf_link_add_object_symbols): Create dynamic sections - for -E/--dynamic-list only when not relocatable. - -2016-03-08 H.J. Lu - - PR ld/19784 - * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference - count for locally defined local IFUNC symbols in shared object. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - -2016-03-08 H.J. Lu - - PR ld/19579 - * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking - together. - -2016-03-08 Cupertino Miranda - Andrew Burgess - - * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32. - (arc_bfd_put_32): Becomes an alias for bfd_put_32. - (arc_elf_howto_init): Added assert to validate relocations. - (get_middle_endian_relocation): Delete. - (middle_endian_convert): New function. - (ME): Redefine, now does nothing. - (IS_ME): New define. - (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO' - definition to call middle_endian_convert. Add a new local - variable and make use of this throughout. Added call to - arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations. - -2016-03-07 Nick Clifton - - PR binutils/19775 - * archive.c (bfd_generic_openr_next_archived_file): Allow zero - length elements in the archive. - -2016-03-07 Jiong Wang - - * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got - section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced. - -2016-03-04 H.J. Lu - - PR ld/19579 - * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in - executable as definition if the new definition comes from a - shared library. - -2016-03-02 Alan Modra - - * Makefile.in: Regenerate. - * po/SRC-POTFILES.in: Regenerate. - -2016-02-29 Cupertino Miranda - - * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the - relocation addend when sections get merged. - -2016-02-29 Cupertino Miranda - - * elf32-arc.c (arc_elf_final_write_processing): Add condition to - the flag change. - (elf_arc_relocate_section): Fixes and conditions to support PIE. - Assert for code sections dynamic relocs. - -2016-02-26 Renlin Li - - * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow - check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2. - -2016-02-26 H.J. Lu - - PR ld/19609 - * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for - load with locally bound symbols if PIC is false or there is no - base register. Optimize branch to 0 if PIC is false. - (elf_i386_relocate_section): Don't generate dynamic relocations - against undefined weak symbols if PIC is false. - * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization - if we can't estimate relocation overflow with --no-relax. - Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound - symbols if PIC is false. Optimize branch to 0 if PIC is false. - (elf_x86_64_relocate_section): Don't generate dynamic relocations - against undefined weak symbols if PIC is false. - -2016-02-26 H.J. Lu - - PR ld/19645 - * bfd.c (bfd): Change flags to 20 bits. - (BFD_CONVERT_ELF_COMMON): New. - (BFD_USE_ELF_STT_COMMON): Likewise. - (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and - BFD_USE_ELF_STT_COMMON. - (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise. - * configure.ac: Remove --enable-elf-stt-common. - * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for - common symbol depending on BFD_CONVERT_ELF_COMMON and - BFD_USE_ELF_STT_COMMON. - * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for - STT_COMMON. - * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check - STT_COMMON. - (elf_link_convert_common_type): New function. - (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for - common symbol depending on BFD_CONVERT_ELF_COMMON and - BFD_USE_ELF_STT_COMMON. Set sym.st_info after sym.st_shndx. - * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON - and BFD_USE_ELF_STT_COMMON to object_flags. - (TARGET_LITTLE_SYM): Likewise. - * syms.c (BSF_KEEP_G): Renamed to ... - (BSF_ELF_COMMON): This. - * bfd-in2.h: Regenerated. - * config.in: Likewise. - * configure: Likewise. - -2016-02-26 H.J. Lu - - PR ld/19636 - PR ld/19704 - PR ld/19719 - * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. - (elf_i386_link_hash_entry): Add has_got_reloc and - has_non_got_reloc. - (elf_i386_link_hash_table): Add interp. - (elf_i386_link_hash_newfunc): Initialize has_got_reloc and - has_non_got_reloc. - (elf_i386_copy_indirect_symbol): Copy has_got_reloc and - has_non_got_reloc. - (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc. - (elf_i386_fixup_symbol): New function. - (elf_i386_pie_finish_undefweak_symbol): Likewise. - (elf_i386_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. - (elf_i386_size_dynamic_sections): Set interp to .interp section. - (elf_i386_relocate_section): Don't generate dynamic relocations - against resolved undefined weak symbols in PIE, except for - R_386_PC32. - (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without - dynamic PLT/GOT relocations for resolved undefined weak symbols. - Don't generate dynamic relocation against resolved undefined weak - symbol in executable. - (elf_i386_finish_dynamic_sections): Call - elf_i386_pie_finish_undefweak_symbol on all symbols in PIE. - (elf_backend_fixup_symbol): New. - * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. - (elf_x86_64_link_hash_entry): Add has_got_reloc and - has_non_got_reloc. - (elf_x86_64_link_hash_table): Add interp. - (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and - has_non_got_reloc. - (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and - has_non_got_reloc. - (elf_x86_64_check_relocs): Set has_got_reloc and - has_non_got_reloc. - (elf_x86_64_fixup_symbol): New function. - (elf_x86_64_pie_finish_undefweak_symbol): Likewise. - (elf_x86_64_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. - (elf_x86_64_size_dynamic_sections): Set interp to .interp section. - (elf_x86_64_relocate_section): Check relocation overflow for - dynamic relocations against unresolved weak undefined symbols. - Don't generate dynamic relocations against resolved weak - undefined symbols in PIE. - (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without - dynamic PLT/GOT relocations for resolved undefined weak symbols. - Don't generate dynamic relocation against resolved undefined weak - symbol in executable. - (elf_x86_64_finish_dynamic_sections): Call - elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE. - (elf_backend_fixup_symbol): New. - -2016-02-26 Alan Modra - - * elf64-ppc.c (create_linkage_sections): Create sfpr when - save_restore_funcs, rest of sections when not relocatable. - (ppc64_elf_init_stub_bfd): Always call create_linkage_sections. - (sfpr_define): Define all symbols on emitted code. - (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created - when relocatable. Move sfpr_define loop earlier. - -2016-02-24 H.J. Lu - - * elf64-x86-64.c (elf_x86_64_need_pic): New function. - (elf_x86_64_relocate_section): Use it. Replace - x86_64_elf_howto_table[r_type] with howto. - -2016-02-24 H.J. Lu - - PR ld/19698 - * elflink.c (bfd_elf_record_link_assignment): Set versioned if - symbol version is unknown. - -2016-02-24 H.J. Lu - - * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset - to (bfd_vma) -1 when setting needs_plt to 0. - * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. - -2016-02-23 H.J. Lu - - * elflink.c (bfd_elf_record_link_assignment): Check for shared - library, instead of PIC, and don't check PDE when making linker - assigned symbol dynamic. - -2016-02-23 Faraz Shahbazker - - * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment - ABIVERSION for non-executable stack. - -2016-02-23 Rich Felker - - PR target/19516 - * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): - Always produce a RELATIVE reloc for a local symbol. - -2016-02-23 Hans-Peter Nilsson - - Fix test-case ld-elf/pr19617b - * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't - discard unused non-function symbols when --dynamic-list-data. - -2016-02-22 H.J. Lu - - * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the - dynsym section, even if it is empty, with dynamic sections. - -2016-02-22 H.J. Lu - - * syms.c: Remove BSF_COMMON from comments. - * bfd-in2.h: Regenerated. - -2016-02-22 Jiong Wang - - * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation - for destination. Remove useless function parameters. - (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub. - -2016-02-19 Nick Clifton - - PR ld/19629 - * aoutx.h (aout_link_add_symbols): Check for out of range string - table offsets. - - PR ld/19628 - * reloc.c (bfd_generic_get_relocated_section_contents): Stop - processing if we encounter a reloc without an associated symbol. - -2016-02-18 H.J. Lu - - PR ld/19617 - * elflink.c (elf_link_add_object_symbols): Always create dynamic - sections for -E/--dynamic-list. - -2016-02-17 H.J. Lu - - * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined - to bfd_true. - -2016-02-16 Joseph Myers - - * plugin.c (plugin_vec): Set match priority to 255. - * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When - matching against the plugin vector, take priority from there not - from TEMP. - -2016-02-15 Nick Clifton - - * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values - for length and type fields. Use a signed value for the - suffix_length field. - -2016-02-10 H.J. Lu - - PR ld/19601 - * elf32-i386.c (elf_i386_relocate_section): Mask off the least - significant bit in GOT offset for R_386_GOT32X. - -2016-02-10 Nick Clifton - - PR 19405 - * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed - immediate values. - * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the - number of messages about FDE encoding preventing .eh_frame_hdr - generation. - -2016-02-09 Nick Clifton - - * oasys.c (oasys_archive_p): Fix indentation. - * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned - constant for left shifting. - - * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more - helpful warning message to explain why certain AArch64 relocs - might overflow. - -2016-02-05 Simon Marchi - - * pe-mips.c (coff_mips_reloc): Fix formatting. - -2016-02-05 Cupertino Miranda - - * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2 - to bfd_mach_arc_arc600. - -2016-02-04 Alan Modra - - * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch - for big-endian. - -2016-02-02 H.J. Lu - - PR ld/19542 - * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated - distances in the compressed_size field of the output section. - -2016-02-02 Alan Modra - - * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict - ELFv2 entry optimization. - -2016-02-02 H.J. Lu - - PR binutils/19547 - * elf.c (assign_section_numbers): Clear HAS_RELOC if there are - no relocations in relocatable files. - -2016-02-01 H.J. Lu - - PR ld/19553 - * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED - if a symbol from a library loaded via DT_NEEDED doesn't match - the symbol referenced by regular object. - -2016-02-01 Nathaniel Smith - - * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both - CODE and DATA. - -2016-02-01 Alan Modra - - * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on - an out of range reloc_index. - * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise. - -2016-02-01 Kamil Rytarowski - - * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo. - (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c. - * Makefile.in: Regenerated. - -2016-02-01 Jan Kratochvil - - * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation. - -2016-01-31 John David Anglin - - PR ld/19526 - * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output - files. - * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval. - -2016-01-30 H.J. Lu - - PR ld/19539 - * elf32-i386.c (elf_i386_reloc_type_class): Check relocation - against STT_GNU_IFUNC symbol only with dynamic symbols. - * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise. - -2016-01-28 H.J. Lu - - PR binutils/19523 - * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to - decompress debug sections. - -2016-01-25 Maciej W. Rozycki - - * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to - `dynindx'. - -2016-01-25 Nick Clifton - - PR target/19435 - * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free - dsym filename buffer. - -2016-01-24 Maciej W. Rozycki - - * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation. - -2016-01-24 Maciej W. Rozycki - - * elfxx-mips.c (BZ16_REG): Correct calculation. - -2016-01-21 Nick Clifton - - * elf32-arc.c (ADD_RELA): Fix compile time warning errors by - changing the type of _loc to be bfd_byte *. - (elf_arc_finish_dynamic_symbol): Likewise. - -2016-01-21 Nick Clifton - - PR ld/19455 - * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF - class of the linker stub bfd. - (elf32_arm_check_relocs): Skip check for pic format after - processing a vxWorks R_ARM_ABS12 reloc. - * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when - reporting a class mismatch. - -2016-01-21 Jiong Wang - - * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch - veneer for sym_sec != input_sec. - (elfNN_aarch64_size_stub): Support STT_SECTION symbol. - (elfNN_aarch64_final_link_relocate): Take rela addend into account when - calculation destination. - -2016-01-21 Alan Modra - - * elf-linux-core.h (swap_linux_prpsinfo32_out): New function. - (swap_linux_prpsinfo64_out): New function. - (LINUX_PRPSINFO32_SWAP_FIELDS): Delete. - (LINUX_PRPSINFO64_SWAP_FIELDS): Delete. - * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset. - (elfcore_write_linux_prpsinfo64): Likewise. - * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function. - (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete. - (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset. - -2016-01-21 Alan Modra - - * elf-linux-core.h: Rename from elf-linux-psinfo.h. - * elf.c: Adjust #include. - * elf32-ppc.c: Don't #include elf-linux-psinfo.h - * Makefile.am (SOURCE_HFILES): Update. - * Makefile.in: Regenerate. - * po/SRC-PORFILES.in: Regenerate. - -2016-01-21 Alan Modra - - * configure.ac: Move corefile selection later in file. Move - tdefaults code immediately after other target vector code. - * configure: Regenerate. - -2016-01-20 Mickael Guene - - * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread - section using '.text.noread' pattern. - -2016-01-19 John Baldwin - - * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes. - -2016-01-18 Miranda Cupertino - Zissulescu Claudiu - - * arc-plt.def: New file. - * arc-plt.h: Likewise. - * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry, - elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry, - elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry, - elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove. - (name_for_global_symbol): Added. - (ADD_RELA): Helper to create dynamic relocs. - (new_got_entry_to_list): Create a new got entry in linked list. - (symbol_has_entry_of_type): Search for specific type of entry in - list. - (is_reloc_for_GOT): return FALSE for any TLS related relocs. - (is_reloc_for_TLS, arc_elf_set_private_flags) - (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data) - (arc_elf_merge_private_bfd_data): New functions. - (debug_arc_reloc): Cleaned debug info printing. - (PDATA reloc): Changed not to perform address alignment. - (reverse_me): Added. Fix for ARC_32 relocs. - (arc_do_relocation): Return bfd_reloc_of when no relocation should - occur. - (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets. - Changed function to access an array of list of GOT entries instead - of just an array of offsets. - (elf_arc_relocate_section): Added support for PIC and TLS related relocations. - (elf_arc_check_relocs): Likewise. - (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol, - (elf_arc_finish_dynamic_sections): Likewise - (arc_create_dynamic_sections): Modified conditions to create - dynamic sections. - (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro. - (plt_do_relocs_for_symbol, relocate_plt_for_symbol) - (relocate_plt_for_entry): Changed to support new way to define PLT - related code. - (add_symbol_to_plt): Likewise. - (arc_elf_link_hash_table_create): New function. - -2016-01-18 Nick Clifton - - PR ld/19440 - * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external - section number into internal section number. - * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise. - * coffswap.h (coff_swap_sym_in): Likewise. - * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise. - * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal - section number field is big enough to hold the external value. - -2016-01-17 Alan Modra - - * configure: Regenerate. - -2016-01-12 Yury Usishchev - - * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind - when address in first unwind entry does not match start of - section. - -2016-01-08 Richard Sandiford - Jiong Wang - - PR ld/19368 - * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to - reloc_class_ifunc. - -2016-01-06 Andrew Burgess - - * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to - place 'R_' before the reloc name returned. - (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before - the relocation string. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function, - factored out from... - (_bfd_mips_elf_merge_private_bfd_data): ... here. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move - attribute check after ELF file header flag check. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the - return status from `_bfd_elf_merge_object_attributes'. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function, - factored out from... - (_bfd_mips_elf_merge_private_bfd_data): ... here. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the - handling of input MIPS ABI flags together. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress - attribute checks for null input. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local - pointers to target data. - -2016-01-04 Maciej W. Rozycki - - * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct - an FP ABI warning. - -2016-01-01 Alan Modra - - Update year range in copyright notice of all files. - -For older changes see ChangeLog-2015 and doc/ChangeLog-0415 +For older changes see ChangeLog-2016 -Copyright (C) 2016 Free Software Foundation, Inc. +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 diff --git a/bfd/ChangeLog-2016 b/bfd/ChangeLog-2016 new file mode 100644 index 0000000..15e104a --- /dev/null +++ b/bfd/ChangeLog-2016 @@ -0,0 +1,4293 @@ +2016-12-31 Alan Modra + + * elfn32-mips.c (elf_backend_want_dynrelro): Define. + +2016-12-31 Dimitar Dimitrov + + * archures.c: Add bfd_arch_pru. + * Makefile.am: Add PRU target. + * config.bfd: Ditto. + * configure.ac: Ditto. + * elf-bfd.h (enum elf_target_id): Add PRU_ELF_DATA. + * targets.c: Add pru_elf32_vec. + * reloc.c: Add PRU relocations. + * cpu-pru.c: New file. + * elf32-pru.c: New file. + * Makefile.in: Regenerate. + * configure: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + * bfd-in2.h: Regenerate + * libbfd.h: Regenerate. + +2016-12-29 Alan Modra + + * elflink.c (_bfd_elf_link_hash_copy_indirect): Only omit + copying one flag, ref_dynamic, when versioned_hidden. + * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise. + * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Use same + logic for copying weakdef flags. Copy plabel flag and merge + tls_type. + * elf32-i386.c (elf_i386_copy_indirect_symbol): Use same logic + for copying weakdef flags. + * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Likewise. + * elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise. + * elf32-sh.c (sh_elf_copy_indirect_symbol): Likewise. + * elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise. + * elfnn-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise. + * elf64-x86-64.c (elf_x86_64_copy_indirect_symbol): Likewise. + Simplify. + +2016-12-28 Alan Modra + + PR ld/20995 + * elflink.c (elf_link_add_object_symbols): Mark relro sections + in dynamic objects SEC_READONLY. + +2016-12-26 Alan Modra + + PR ld/20995 + * elf-bfd.h (struct elf_link_hash_table): Add sdynrelro and + sreldynrelro. + (struct elf_backend_data): Add want_dynrelro. + * elfxx-target.h (elf_backend_want_dynrelro): Define. + (elfNN_bed): Update initializer. + * elflink.c (_bfd_elf_create_dynamic_sections): Create + sdynrelro and sreldynrelro sections. + * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Place variables + copied into the executable from read-only sections into sdynrelro. + (elf32_arm_size_dynamic_sections): Handle sdynrelro. + (elf32_arm_finish_dynamic_symbol): Select sreldynrelro for + dynamic relocs in sdynrelro. + (elf_backend_want_dynrelro): Define. + * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol) + (elf32_hppa_size_dynamic_sections, elf32_hppa_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-i386.c (elf_i386_adjust_dynamic_symbol) + (elf_i386_size_dynamic_sections, elf_i386_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-metag.c (elf_metag_adjust_dynamic_symbol) + (elf_metag_size_dynamic_sections, elf_metag_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol) + (microblaze_elf_size_dynamic_sections) + (microblaze_elf_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol) + (nios2_elf32_adjust_dynamic_symbol) + (nios2_elf32_size_dynamic_sections) + (elf_backend_want_dynrelro): As above. + * elf32-or1k.c (or1k_elf_finish_dynamic_symbol) + (or1k_elf_adjust_dynamic_symbol, or1k_elf_size_dynamic_sections) + (elf_backend_want_dynrelro): As above. + * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol) + (ppc_elf_size_dynamic_sections, ppc_elf_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-s390.c (elf_s390_adjust_dynamic_symbol) + (elf_s390_size_dynamic_sections, elf_s390_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-tic6x.c (elf32_tic6x_adjust_dynamic_symbol) + (elf32_tic6x_size_dynamic_sections) + (elf32_tic6x_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf32-tilepro.c (tilepro_elf_adjust_dynamic_symbol) + (tilepro_elf_size_dynamic_sections) + (tilepro_elf_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol) + (ppc64_elf_size_dynamic_sections, ppc64_elf_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf64-s390.c (elf_s390_adjust_dynamic_symbol) + (elf_s390_size_dynamic_sections, elf_s390_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol) + (elf_x86_64_size_dynamic_sections) + (elf_x86_64_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol) + (elfNN_aarch64_size_dynamic_sections) + (elfNN_aarch64_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol) + (riscv_elf_size_dynamic_sections, riscv_elf_finish_dynamic_symbol) + (elf_backend_want_dynrelro): As above. + * elfxx-mips.c (_bfd_mips_elf_adjust_dynamic_symbol) + (_bfd_mips_elf_size_dynamic_sections) + (_bfd_mips_vxworks_finish_dynamic_symbol): As above. + * elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol) + (_bfd_sparc_elf_size_dynamic_sections) + (_bfd_sparc_elf_finish_dynamic_symbol): As above. + * elfxx-tilegx.c (tilegx_elf_adjust_dynamic_symbol) + (tilegx_elf_size_dynamic_sections) + (tilegx_elf_finish_dynamic_symbol): As above. + * elf32-mips.c (elf_backend_want_dynrelro): Define. + * elf64-mips.c (elf_backend_want_dynrelro): Define. + * elf32-sparc.c (elf_backend_want_dynrelro): Define. + * elf64-sparc.c (elf_backend_want_dynrelro): Define. + * elf32-tilegx.c (elf_backend_want_dynrelro): Define. + * elf64-tilegx.c (elf_backend_want_dynrelro): Define. + * elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol): Tidy. + (microblaze_elf_size_dynamic_sections): Handle sdynbss. + * elf32-nios2.c (nios2_elf32_size_dynamic_sections): Make use + of linker shortcuts to dynamic sections rather than comparing + names. Correctly set "got" flag. + +2016-12-26 Alan Modra + + * elf-bfd.h (struct elf_link_hash_table): Add sdynbss and srelbss. + * elflink.c (_bfd_elf_create_dynamic_sections): Set them. Create + .rel.bss/.rela.bss for executables, both PIE and non-PIE. + * elf32-arc.c (struct elf_arc_link_hash_table): Delete srelbss. + Use ELF hash table var throughout. + * elf32-arm.c (struct elf32_arm_link_hash_table): Delete sdynbss + and srelbss. Use ELF hash table vars throughout. + * elf32-hppa.c (struct elf32_hppa_link_hash_table): Likewise. + * elf32-i386.c (struct elf_i386_link_hash_table): Likewise. + * elf32-metag.c (struct elf_metag_link_hash_table): Likewise. + * elf32-microblaze.c (struct elf32_mb_link_hash_table): Likewise. + * elf32-nios2.c (struct elf32_nios2_link_hash_table): Likewise. + * elf32-or1k.c (struct elf_or1k_link_hash_table): Likewise. + * elf32-ppc.c (struct ppc_elf_link_hash_table): Likewise. + * elf32-s390.c (struct elf_s390_link_hash_table): Likewise. + * elf32-tic6x.c (struct elf32_tic6x_link_hash_table): Likewise. + * elf32-tilepro.c (struct tilepro_elf_link_hash_table): Likewise. + * elf64-ppc.c (struct ppc_link_hash_table): Likewise. + * elf64-s390.c (struct elf_s390_link_hash_table): Likewise. + * elf64-x86-64.c (struct elf_x86_64_link_hash_table): Likewise. + * elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Likewise. + * elfnn-riscv.c (struct riscv_elf_link_hash_table): Likewise. + * elfxx-mips.c (struct mips_elf_link_hash_table): Likewise. + * elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c (struct tilegx_elf_link_hash_table): Likewise. + + * elf32-arc.c (arc_elf_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + * elf32-microblaze.c (microblaze_elf_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + * elf32-or1k.c (or1k_elf_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + * elf32-s390.c (elf_s390_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + * elf64-ppc.c (ppc64_elf_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + * elf64-s390.c (elf_s390_create_dynamic_sections): Delete. + (elf_backend_create_dynamic_sections): Use base ELF version. + + * elf32-tilepro.c (tilepro_elf_create_dynamic_sections): Remove + extraneous tests. + * elfnn-aarch64.c (elfNN_aarch64_create_dynamic_sections): Likewise. + * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Likewise. + * elfxx-tilegx.c (tilegx_elf_create_dynamic_sections): Likewise. + + * elf32-i386.c (elf_i386_create_dynamic_sections): Don't create + ".rel.bss" for executables. + * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Don't create + ".rela.bss" for executables. + * elf32-nios2.c (nios2_elf32_create_dynamic_sections): Don't + ignore return status from _bfd_elf_create_dynamic_sections. + +2016-12-23 Maciej W. Rozycki + + * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Revert + 2016-02-23 change and remove EI_ABIVERSION 5 support. + +2016-12-23 Alan Modra + + * linker.c (generic_link_check_archive_element): Call target + bfd_link_add_symbols to add element symbols. + +2016-12-23 Alan Modra + + * linker.c (generic_link_add_symbols): Delete. Merge into.. + (_bfd_generic_link_add_symbols): ..here. + (generic_link_check_archive_element_no_collect): Delete. + (generic_link_check_archive_element_collect): Likewise. + (generic_link_add_object_symbols): Remove "collect" param. Update + callers. + (generic_link_add_symbol_list): Likewise. + (generic_link_check_archive_element): Likewise. Call + bfd_link_add_symbols rather than generic_link_add_object_symbols. + * libbfd-in.h (_bfd_generic_link_add_symbols_collect): Delete. + * libbfd.h: Regenerate. + +2016-12-23 Alan Modra + + PR binutils/20464 + PR binutils/14625 + * configure.ac: Revert 2016-05-25 configure change setting + want_64_bit_archive for mips64 and s390x. Revise USE_64_BIT_ARCHIVE + description. + * configure: Regenerate. + * config.in: Regenerate. + +2016-12-23 Tristan Gingold + + * version.m4: Bump version to 2.28.51 + * configure: Regenerate. + +2016-12-23 Tristan Gingold + + * po/bfd.pot: Regenerate. + +2016-12-22 Alan Modra + + * 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 + Andreas Schwab + + * 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 + + * 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 + + * elfnn-riscv.c (bfd_riscv_get_max_alignment): Return bfd_vma + instead of unsigned int. + +2016-12-20 Andrew Waterman + Kuan-Lin Chen + + * 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 + + * 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 + + * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Improve + error message when linking elf32 and elf64. + +2016-12-19 Christian Groessler + + * elf32-arm.c (elf32_arm_popcount): Rename from 'popcount'. Make + 'sum' local variable signed. + +2016-12-16 fincs + + * 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 + + 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 + + * 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 + + * bfd/elfnn-aarch64.c: fix TLS relaxations for ilp32 where + TCB_SIZE is used. + +2016-12-13 Alan Modra + + * 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 + + * 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 + + PR ld/20932 + * elflink.c (bfd_elf_record_link_assignment): Handle warning symbols. + +2016-12-07 Nick Clifton + + 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 + + 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 + + * 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 + + * elfxx-sparc.c: Do not stop processing relocations after + partially relaxing a call with WDISP30. + +2016-12-05 Nick Clifton + + 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 + + * 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 + + * 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 + + * elf64-ppc.c (add_symbol_adjust): Delete dead code. + +2016-12-03 Alan Modra + + * elf64-ppc.c (add_symbol_adjust): Correct order of tests for + warning and indirect symbols. + +2016-12-03 Alan Modra + + * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic + flags when direct symbol is versioned_hidden. + +2016-12-02 Nick Clifton + + 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 + + * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to + elf_parse_notes. + +2016-12-02 Josh Conner + + * config.bfd: Add support for fuchsia (OS). + +2016-12-01 Yury Norov + + 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 + + PR ld/16720 + * elfxx-mips.c (mips_elf_calculate_relocation): Remove overflow + test for HI16 relocs. + +2016-12-01 Nick Clifton + + 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 + + * elf.c (get_program_header_size): Revert accidental change. + +2016-11-30 Alan Modra + + 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 + + * 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 + + PR ld/20815 + * elf.c (phdr_sorter): Delete. + (assign_file_positions_except_relocs): Do not sort program + headers. + +2016-11-25 Jon Turney + + PR ld/20193 + * peXXigen.c (rsrc_process_section): Do not shrink the merged + .rsrc section. + +2016-11-24 Jiong Wang + + PR target/20737 + * elf32-arm.c (elf32_arm_final_link_relocate): Bind defined symbol + locally in PIE. + +2016-11-24 Kuan-Lin Chen + + * bfd/elfxx-riscv.c (howto_table): Fix bitsize of R_RISCV_ADD8. + +2016-11-23 Nick Clifton + + 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 + + * 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 + + * elf-m10300.c (mn10300_elf_check_relocs): Use elf htab shortcuts + to dynamic sections. + (mn10300_elf_final_link_relocate): Likewise. + (_bfd_mn10300_elf_adjust_dynamic_symbol): Likewise. + (_bfd_mn10300_elf_size_dynamic_sections): Likewise. + (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise. + (_bfd_mn10300_elf_finish_dynamic_sections): Likewise. + * elf32-bfin.c (bfin_check_relocs): Likewise. + (bfin_relocate_section): Likewise. + (bfin_gc_sweep_hook): Likewise. + (struct bfinfdpic_elf_link_hash_table): Delete sgot, sgotrel, splt + and spltrel. + (bfinfdpic_got_section, bfinfdpic_gotrel_section, + bfinfdpic_plt_section, bfinfdpic_pltrel_section): Define using elf + shortcut sections. + (_bfin_create_got_section): Use elf htab shortcuts to dyn sections. + Delete dead code. + (bfin_finish_dynamic_symbol): Use elf htab shortcuts to dyn sections. + (bfin_size_dynamic_sections): Likewise. + * elf32-cr16.c (_bfd_cr16_elf_create_got_section): Likewise. + (cr16_elf_check_relocs): Likewise. + (cr16_elf_final_link_relocate): Likewise. + (_bfd_cr16_elf_create_dynamic_sections): Likewise. + (_bfd_cr16_elf_adjust_dynamic_symbol): Likewise. + (_bfd_cr16_elf_size_dynamic_sections): Likewise. + (_bfd_cr16_elf_finish_dynamic_symbol): Likewise. + (_bfd_cr16_elf_finish_dynamic_sections): Likewise. + * elf32-cris.c (cris_elf_relocate_section): Likewise. + (elf_cris_finish_dynamic_symbol): Likewise. + (elf_cris_finish_dynamic_sections): Likewise. + (cris_elf_gc_sweep_hook): Likewise. + (elf_cris_adjust_gotplt_to_got): Likewise. + (elf_cris_adjust_dynamic_symbol): Likewise. + (cris_elf_check_relocs): Likewise. Delete dead code. + (elf_cris_size_dynamic_sections): Use elf htab shortcuts to dynamic + sections. + (elf_cris_discard_excess_program_dynamics): Likewise. + * elf32-frv.c (struct frvfdpic_elf_link_hash_table): Delete sgot, + sgotrel, splt and spltrel. + (frvfdpic_got_section, frvfdpic_gotrel_section, + frvfdpic_plt_section, frvfdpic_pltrel_section): Define using elf + shortcut sections. + (_frv_create_got_section): Likewise. + * elf32-hppa.c (struct elf32_hppa_link_hash_table): Delete sgot, + srelgot, splt and srelplt. + (hppa_build_one_stub): Use elf htab shortcuts to dynamic sections. + (elf32_hppa_create_dynamic_sections): Likewise. + (elf32_hppa_check_relocs): Likewise. + (allocate_plt_static): Likewise. + (allocate_dynrelocs): Likewise. + (elf32_hppa_size_dynamic_sections): Likewise. + (elf32_hppa_relocate_section): Likewise. + (elf32_hppa_finish_dynamic_symbol): Likewise. + (elf32_hppa_finish_dynamic_sections): Likewise. + * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise. + * elf32-lm32.c (struct elf_lm32_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + (lm32fdpic_got_section, lm32fdpic_gotrel_section): Define using elf + shortcut sections. + (create_got_section): Delete. Use _bfd_elf_create_got_section instead. + (lm32_elf_relocate_section): Use elf htab shortcuts to dyn sections. + (lm32_elf_check_relocs): Likewise. + (lm32_elf_finish_dynamic_sections): Likewise. + (lm32_elf_finish_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (lm32_elf_size_dynamic_sections): Likewise. + (lm32_elf_create_dynamic_sections): Likewise. + * elf32-m32c.c (m32c_elf_relocate_section): Likewise. + (m32c_elf_check_relocs): Likewise. + (m32c_elf_finish_dynamic_sections): Likewise. + (m32c_elf_always_size_sections): Likewise. + * elf32-m32r.c (struct elf_m32r_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + (create_got_section): Delete. Use _bfd_elf_create_got_section instead. + (m32r_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic + sections. + (allocate_dynrelocs): Likewise. + (m32r_elf_size_dynamic_sections): Likewise. + (m32r_elf_relocate_section): Likewise. + (m32r_elf_finish_dynamic_symbol): Likewise. + (m32r_elf_finish_dynamic_sections): Likewise. + (m32r_elf_check_relocs): Likewise. + * elf32-m68k.c (elf_m68k_partition_multi_got): Likewise. + (elf_m68k_check_relocs): Likewise. + (elf_m68k_adjust_dynamic_symbol): Likewise. + (elf_m68k_size_dynamic_sections): Likewise. + (elf_m68k_relocate_section): Likewise. + (elf_m68k_finish_dynamic_symbol): Likewise. + (elf_m68k_finish_dynamic_sections): Likewise. + * elf32-metag.c (struct elf_metag_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + (elf_metag_relocate_section): Use elf htab shortcuts to dynamic + sections. + (elf_metag_create_dynamic_sections): Likewise. Allocate got header + here in .got. + (elf_metag_check_relocs): Use elf htab shortcuts to dynamic sections. + (allocate_dynrelocs): Likewise. + (elf_metag_size_dynamic_sections): Likewise. + (elf_metag_finish_dynamic_symbol): Likewise. + (elf_metag_finish_dynamic_sections): Likewise. + (elf_metag_size_stubs): Likewise. + (elf_backend_got_header_size): Don't define. + (elf_backend_want_got_plt): Define. + * elf32-microblaze.c (struct elf32_mb_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelpl. + (microblaze_elf_relocate_section): Use elf htab shortcuts to dynamic + sections. + (create_got_section): Delete. Use _bfd_elf_create_got_section instead. + (microblaze_elf_check_relocs): Use elf htab shortcuts to dyn sections. + (microblaze_elf_create_dynamic_sections): Likewise. + (allocate_dynrelocs): Likewise. + (microblaze_elf_size_dynamic_sections): Likewise. + (microblaze_elf_finish_dynamic_symbol): Likewise. + (microblaze_elf_finish_dynamic_sections): Likewise. + * elf32-nds32.c (nds32_elf_link_hash_table_create): Don't NULL + already zero fields. + (create_got_section): Delete. Use _bfd_elf_create_got_section instead. + (nds32_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic + sections. + (allocate_dynrelocs): Likewise. + (nds32_elf_size_dynamic_sections): Likewise. + (nds32_elf_relocate_section): Likewise. + (nds32_elf_finish_dynamic_symbol): Likewise. + (nds32_elf_finish_dynamic_sections): Likewise. + (nds32_elf_check_relocs): Likewise. + (calculate_plt_memory_address): Likewise. + (calculate_got_memory_address): Likewise. + * elf32-nds32.h (struct elf_nds32_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + * elf32-or1k.c (struct elf_or1k_link_hash_table): Likewise. + (or1k_elf_relocate_section): Use elf htab shortcuts to dyn sections. + (create_got_section): Delete. Use _bfd_elf_create_got_section instead. + (or1k_elf_check_relocs): Use elf htab shortcuts to dynamic sections. + (or1k_elf_finish_dynamic_sections): Likewise. + (or1k_elf_finish_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (or1k_elf_size_dynamic_sections): Likewise. + (or1k_elf_create_dynamic_sections): Likewise. + * elf32-ppc.c (struct ppc_elf_link_hash_table): Delete got, relgot, + plt, relplt, iplt, reliplt and sgotplt. + (ppc_elf_create_got): Use elf htab shortcuts to dynamic sections. + (ppc_elf_create_glink): Likewise. + (ppc_elf_create_dynamic_sections): Likewise. + (ppc_elf_check_relocs): Likewise. + (ppc_elf_select_plt_layout): Likewise. + (ppc_elf_tls_setup): Likewise. + (allocate_got): Likewise. + (allocate_dynrelocs): Likewise. + (ppc_elf_size_dynamic_sections): Likewise. + (ppc_elf_relax_section): Likewise. + (ppc_elf_relocate_section): Likewise. + (ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_reloc_type_class): Likewise. + (ppc_elf_finish_dynamic_sections): Likewise. + * elf32-rl78.c (rl78_elf_relocate_section): Likewise. + (rl78_elf_check_relocs): Likewise. + (rl78_elf_finish_dynamic_sections): Likewise. + (rl78_elf_always_size_sections): Likewise. + * elf32-s390.c (create_got_section): Delete. + (elf_s390_create_dynamic_sections): Use _bfd_elf_create_got_section. + (elf_s390_check_relocs): Likewise. + * elf32-score.c (score_elf_create_got_section): Set elf shortcuts. + (s3_bfd_score_elf_finish_dynamic_sections): Use elf shortcuts. + * elf32-score7.c (score_elf_create_got_section): As above. + (s7_bfd_score_elf_finish_dynamic_sections): As above. + * elf32-sh.c (struct elf_sh_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + (create_got_section): Don't set them. + (sh_elf_create_dynamic_sections): Use elf htab shortcuts to dynamic + sections. + (allocate_dynrelocs): Likewise. + (sh_elf_size_dynamic_sections): Likewise. + (sh_elf_add_rofixup): Likewise. + (sh_elf_relocate_section): Likewise. + (sh_elf_check_relocs): Likewise. + (sh_elf_finish_dynamic_symbol): Likewise. + (sh_elf_finish_dynamic_sections): Likewise. + * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise. + * elf32-tilepro.c (tilepro_elf_create_got_section): Likewise. + * elf32-vax.c (elf_vax_check_relocs): Likewise. + (elf_vax_adjust_dynamic_symbol): Likewise. + (elf_vax_always_size_sections): Likewise. + (elf_vax_instantiate_got_entries): Likewise. + (elf_vax_relocate_section): Likewise. + (elf_vax_finish_dynamic_symbol): Likewise. + (elf_vax_finish_dynamic_sections): Likewise. + * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise. + (xstormy16_elf_always_size_sections): Likewise. + (xstormy16_elf_relocate_section): Likewise. + (xstormy16_elf_finish_dynamic_sections): Likewise. + * elf32-xtensa.c (struct elf_xtensa_link_hash_table): Delete sgot, + sgotplt, srelgot, splt and srelplt. + (elf_xtensa_create_dynamic_sections): Use elf htab shortcuts to + dynamic sections. + (elf_xtensa_allocate_dynrelocs): Likewise. + (elf_xtensa_allocate_local_got_size): Likewise. + (elf_xtensa_size_dynamic_sections): Likewise. + (elf_xtensa_relocate_section): Likewise. + (elf_xtensa_finish_dynamic_sections): Likewise. + (shrink_dynamic_reloc_sections): Likewise. + (elf_xtensa_get_plt_section): Likewise. + (elf_xtensa_get_gotplt_section): Likewise. + (xtensa_callback_required_dependence): Likewise. + * elf64-alpha.c (elf64_alpha_create_dynamic_sections): Set elf htab + shortcuts to dynamic sections. + (elf64_alpha_adjust_dynamic_symbol): Use elf htab shortcuts to + dynamic sections. + (elf64_alpha_size_plt_section): Likewise. + (elf64_alpha_size_rela_got_1): Likewise. + (elf64_alpha_size_rela_got_section): Likewise. + (elf64_alpha_relocate_section): Likewise. + (elf64_alpha_finish_dynamic_symbol): Likewise. + (elf64_alpha_finish_dynamic_sections): Likewise. + * elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise. + * elf64-s390.c (create_got_section): Delete. + (elf_s390_create_dynamic_sections): Use _bfd_elf_create_got_section. + (elf_s390_check_relocs): Likewise. + * elf64-sh64.c (sh_elf64_relocate_section): Use elf htab shortcuts to + dynamic sections. + (sh_elf64_check_relocs): Likewise. + (sh64_elf64_adjust_dynamic_symbol): Likewise. + (sh64_elf64_size_dynamic_sections): Likewise. + (sh64_elf64_finish_dynamic_symbol): Likewise. + (sh64_elf64_finish_dynamic_sections): Likewise. + * elflink.c (_bfd_elf_create_got_section): Likewise. + * elfnn-aarch64.c (aarch64_elf_create_got_section): Likewise. + * elfnn-ia64.c (elfNN_ia64_size_dynamic_sections): Likewise. + (elfNN_ia64_finish_dynamic_sections): Likewise. + * elfnn-riscv.c (riscv_elf_create_got_section): Likewise. + * elfxx-mips.c (struct mips_elf_link_hash_table): Delete srellt, + sgotplt, splt and sgot. + (mips_elf_initialize_tls_slots): Use elf htab shortcuts to dynamic + sections. + (mips_elf_gotplt_index): Likewise. + (mips_elf_primary_global_got_index): Likewise. + (mips_elf_global_got_index): Likewise. + (mips_elf_got_offset_from_index): Likewise. + (mips_elf_create_local_got_entry): Likewise. + (mips_elf_create_got_section): Likewise. + (mips_elf_calculate_relocation): Likewise. + (_bfd_mips_elf_create_dynamic_sections): Likewise. + (_bfd_mips_elf_adjust_dynamic_symbol): Likewise. + (mips_elf_lay_out_got): Likewise. + (mips_elf_set_plt_sym_value): Likewise. + (_bfd_mips_elf_size_dynamic_sections): Likewise. + (_bfd_mips_elf_finish_dynamic_symbol): Likewise. + (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. + (mips_finish_exec_plt): Likewise. + (mips_vxworks_finish_exec_plt): Likewise. + (mips_vxworks_finish_shared_plt): Likewise. + (_bfd_mips_elf_finish_dynamic_sections): Likewise. + * elfxx-sparc.c (sparc_finish_dyn): Likewise. + * elfxx-tilegx.c (tilegx_elf_create_got_section): Likewise. + +2016-11-23 Alan Modra + + * po/BLD-POTFILES.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2016-11-22 Ambrogino Modigliani + + * warning.m4: Fix spelling in comments. + * configure.ac: Fix spelling in comments. + * configure: Regenerate. + +2016-11-22 Alan Modra + + PR 20744 + * elf32-ppc.h (struct ppc_elf_params): Add vle_reloc_fixup field. + * elf32-ppc.c: Include opcode/ppc.h. + (ppc_elf_howto_raw): Correct dst_mask for R_PPC_VLE_LO16A, + R_PPC_VLE_LO16D, R_PPC_VLE_HI16A, R_PPC_VLE_HI16D, R_PPC_VLE_HA16A, + R_PPC_VLE_HA16D, R_PPC_VLE_SDAREL_LO16A, R_PPC_VLE_SDAREL_LO16D, + R_PPC_VLE_SDAREL_HI16A, R_PPC_VLE_SDAREL_HI16D, + R_PPC_VLE_SDAREL_HA16A, and R_PPC_VLE_SDAREL_HA16D relocs. + (ppc_elf_link_hash_table_create): Update default_params init. + (ppc_elf_vle_split16): Correct shift and mask. Add params. + Report or fix insn/reloc mismatches. + (ppc_elf_relocate_section): Pass input_section, offset and fixup + to ppc_elf_vle_split16. + +2016-11-22 Alan Modra + + * elf32-ppc.c (ppc64_elf_relocate_section): Calculate d_offset for + input_bfd. Replace occurrences of output_bfd as bfd_get_32 and + bfd_put_32 param with input_bfd. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. Also + ppc_elf_vle_split16 param. + (ppc_elf_vle_split16): Rename output_bfd param to input_bfd. + +2016-11-21 Maciej W. Rozycki + + * dwarf2.c (build_line_info_table): Rename `index' local + variable to `line_index'. + (build_lookup_funcinfo_table): Rename `index' local variable to + `func_index'. + +2016-11-19 Jose E. Marchesi + + * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Do not + apply the negative GOT offset optimization in 64-bit code. + +2016-11-18 James Clarke + + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert + R_SPARC_GOTDATA_OP_HIX22 and R_SPARC_GOTDATA_OP_LOX10 to + R_SPARC_GOT* for non-local references. Instead, treat them like + R_SPARC_GOTDATA_HIX22/R_SPARC_GOTDATA_LOX10 when filling in the + immediate with the calculated relocation. + +2016-11-18 Nick Clifton + + PR ld/20675 + * elf32-metag.c (elf_metag_relocate_section): Replace abort with + an informative error message. + +2016-11-15 Senthil Kumar Selvaraj + + PR ld/20789 + * bfd/elf32-avr.c (elf32_avr_adjust_diff_reloc_value): Do signed + manipulation of diff value, and don't assume sym2 is less than sym1. + (elf32_avr_adjust_reloc_if_spans_insn): New function. + (elf32_avr_relax_delete_bytes): Use elf32_avr_adjust_diff_reloc_value, + and remove redundant did_pad. + + +2016-11-14 H.J. Lu + + PR ld/20800 + * elf64-x86-64.c (elf_x86_64_relocate_section): Also check + plt_got.offset for R_X86_64_PLTOFF64. + +2016-11-14 Nick Clifton + + * coffcode.h (coff_slurp_symbol_table): Fix typo: Faal -> Fall. + +2016-11-11 Luke Allardyce + + PR ld/20722 + * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols, + but treat them as debugging symbols. + +2016-11-10 Jiong Wang + + PR target/20737 + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined + symbol locally in PIE. + +2016-11-10 Nick Clifton + + PR binutils/20801 + * compress.c (bfd_get_full_section_contents): Provide a more + helpful error message when a section is too large to load. + +2016-11-08 Pedro Alves + + * dwarf2.c (struct funcinfo) : Type is bfd_boolean, + not "bfd boolean". + +2016-11-08 Igor Tsimbalist + + * dwarf2.c (comp_unit): Add new fields 'lookup_funcinfo_table' and + 'number_of_functions' to keep lookup table and number of entries in + the table. + (line_sequence): Add new fields 'line_info_lookup' and 'num_lines' + to keep lookup table and number of entries in the table. + (lookup_funcinfo): New structure for lookup table for function + references. + (build_line_info_table): New function to create and build the lookup + table for line information. + (lookup_address_in_line_info_table): Use the lookup table instead of + traverse a linked list. + (compare_lookup_funcinfos): New compare fuction used in sorting of + lookup table for function references. + (build_lookup_funcinfo_table): New function to create, build and + sort the lookup table for functions references. + (lookup_address_in_function_table): Use the table instead of + traverse a linked list. + (_bfd_dwarf2_cleanup_debug_info): Free memory from function references + lookup table. + +2016-11-04 Nick Clifton + + * targets.c (bfd_target_vector): Only add riscv_elf32_vec target + when supporting 64-bit BFD targets. + +2016-11-03 Tristan Gingold + + * config.bfd: Deprecate many old triplets. + +2016-11-03 Nick Clifton + + * po/da.po: Updated Danish translation. + +2016-11-01 Maciej W. Rozycki + + * reloc.c (bfd_default_reloc_type_lookup) : Do + not fall through to the default case. + +2016-11-01 Palmer Dabbelt + Andrew Waterman + + Add support for RISC-V architecture. + * Makefile.am: Add entries for riscv32-elf and riscv64-elf. + * config.bdf: Likewise. + * configure.ac: Likewise. + * Makefile.in: Regenerate. + * configure: Regenerate. + * archures.c: Add bfd_riscv_arch. + * reloc.c: Add riscv relocs. + * targets.c: Add riscv_elf32_vec and riscv_elf64_vec. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf-bfd.h: Add RISCV_ELF_DATA to enum elf_target_id. + * elfnn-riscv.c: New file. + * elfxx-riscv.c: New file. + * elfxx-riscv.h: New file. + +2016-10-31 Alan Modra + + PR 20748 + * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Revert + 2016-05-13 change. + +2016-10-27 Andrew Burgess + + * cpu-arc.c (arc_get_mach): Delete. + +2016-10-25 Maciej W. Rozycki + + * elfxx-mips.c (STUB_JALR): Correct description. + +2016-10-20 Nick Clifton + + * po/gas.pot: Regenerate. + +2016-10-19 Nick Clifton + + * aout-adobe.c: Add missing c-format tags for translatable strings. + * aout-cris.c: Likewise. + * aoutx.h: Likewise. + * bfd.c: Likewise. + * binary.c: Likewise. + * cache.c: Likewise. + * coff-alpha.c: Likewise. + * coff-arm.c: Likewise. + * coff-i860.c: Likewise. + * coff-mcore.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-tic4x.c: Likewise. + * coff-tic54x.c: Likewise. + * coff-tic80.c: Likewise. + * coff64-rs6000.c: Likewise. + * coffcode.h: Likewise. + * coffgen.c: Likewise. + * cofflink.c: Likewise. + * coffswap.h: Likewise. + * cpu-arm.c: Likewise. + * dwarf2.c: Likewise. + * ecoff.c: Likewise. + * elf-attrs.c: Likewise. + * elf-eh-frame.c: Likewise. + * elf-ifunc.c: Likewise. + * elf-m10300.c: Likewise. + * elf-s390-common.c: Likewise. + * elf.c: Likewise. + * elf32-arc.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-avr.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-cr16c.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-crx.c: Likewise. + * elf32-d10v.c: Likewise. + * elf32-d30v.c: Likewise. + * elf32-epiphany.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-gen.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-i960.c: Likewise. + * elf32-ip2k.c: Likewise. + * elf32-iq2000.c: Likewise. + * elf32-lm32.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68hc11.c: Likewise. + * elf32-m68hc12.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-mcore.c: Likewise. + * elf32-mep.c: Likewise. + * elf32-metag.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-moxie.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-mt.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-nios2.c: Likewise. + * elf32-or1k.c: Likewise. + * elf32-pj.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-rx.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-sh-symbian.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-spu.c: Likewise. + * elf32-tic6x.c: Likewise. + * elf32-tilepro.c: Likewise. + * elf32-v850.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-visium.c: Likewise. + * elf32-xgate.c: Likewise. + * elf32-xtensa.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-gen.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-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + * elfcode.h: Likewise. + * elfcore.h: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * libbfd.c: Likewise. + * linker.c: Likewise. + * m68klinux.c: Likewise. + * mach-o.c: Likewise. + * merge.c: Likewise. + * mmo.c: Likewise. + * oasys.c: Likewise. + * pdp11.c: Likewise. + * pe-mips.c: Likewise. + * peXXigen.c: Likewise. + * pei-x86_64.c: Likewise. + * peicode.h: Likewise. + * ppcboot.c: Likewise. + * reloc.c: Likewise. + * sparclinux.c: Likewise. + * srec.c: Likewise. + * stabs.c: Likewise. + * vms-alpha.c: Likewise. + * vms-lib.c: Likewise. + * xcofflink.c: Likewise. + +2016-10-18 Nick Clifton + + * po/da.po: Updated Danish translation. + +2016-10-18 Maciej W. Rozycki + + * elf32-nds32.c (nds32_elf_check_relocs): Avoid aliasing warning + from GCC. + +2016-10-18 Maciej W. Rozycki + + * elf32-arm.c (elf32_arm_update_relocs): Rename `index' local + variable to `reloc_index'. + +2016-10-12 Alan Modra + + * section.c (BFD_FAKE_SECTION): Reorder parameters. Formatting. + (STD_SECTION): Adjust to suit. + * elf.c (_bfd_elf_large_com_section): Likewise. + * bfd-in2.h: Regenerate. + +2016-10-11 Alan Modra + + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Handle symbols + defined temporarily with bfd_und_section. + * elflink.c (_bfd_elf_gc_keep): Don't set SEC_KEEP for bfd_und_section. + * elfxx-mips.c (mips_elf_local_pic_function_p): Exclude defined + symbols with bfd_und_section. + +2016-10-07 Alan Modra + + * targets.c (bfd_target <_bfd_merge_private_bfd_data>): Replace + obfd param with struct bfd_link_info param. Update all callers. + * linker.c (bfd_merge_private_bfd_data): Likewise. + (_bfd_generic_verify_endian_match): Likewise. + * aoutf1.h (sunos_merge_private_bfd_data): Likewise. + * coff-arm.c (coff_arm_merge_private_bfd_data): Likewise. + * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise. + * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Likewise. + (_bfd_elf_merge_object_attributes): Likewise. + * elf-m10300.c (_bfd_mn10300_elf_merge_private_bfd_data): Likewise. + * elf-s390-common.c (elf_s390_merge_obj_attributes): Likewise. + * elf32-arc.c (arc_elf_merge_private_bfd_data): Likewise. + * elf32-arm.c (elf32_arm_merge_eabi_attributes): Likewise. + (elf32_arm_merge_private_bfd_data): Likewise. + * elf32-bfin.c (elf32_bfin_merge_private_bfd_data): Likewise. + * elf32-cr16.c (_bfd_cr16_elf_merge_private_bfd_data): Likewise. + * elf32-cris.c (cris_elf_merge_private_bfd_data): Likewise. + * elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise. + * elf32-h8300.c (elf32_h8_merge_private_bfd_data): Likewise. + * elf32-i370.c (i370_elf_merge_private_bfd_data): Likewise. + * elf32-iq2000.c (iq2000_elf_merge_private_bfd_data): Likewise. + * elf32-m32c.c (m32c_elf_merge_private_bfd_data): Likewise. + * elf32-m32r.c (m32r_elf_merge_private_bfd_data): Likewise. + * elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. + * elf32-m68hc1x.h (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise. + * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Likewise. + * elf32-mcore.c (mcore_elf_merge_private_bfd_data): Likewise. + * elf32-mep.c (mep_elf_merge_private_bfd_data): Likewise. + * elf32-msp430.c (elf32_msp430_merge_mspabi_attributes): Likewise. + (elf32_msp430_merge_private_bfd_data): Likewise. + * elf32-mt.c (mt_elf_merge_private_bfd_data): Likewise. + * elf32-nds32.c (nds32_elf_merge_private_bfd_data): Likewise. + * elf32-nios2.c (nios2_elf32_merge_private_bfd_data): Likewise. + * elf32-or1k.c (elf32_or1k_merge_private_bfd_data): Likewise. + * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Likewise. + (ppc_elf_merge_obj_attributes): Likewise. + (ppc_elf_merge_private_bfd_data): Likewise. + * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Likewise. + * elf32-rx.c (rx_elf_merge_private_bfd_data): Likewise. + * elf32-s390.c (elf32_s390_merge_private_bfd_data): Likewise. + * elf32-score.c (s3_elf32_score_merge_private_bfd_data): Likewise. + (elf32_score_merge_private_bfd_data): Likewise. + * elf32-score.h (s7_elf32_score_merge_private_bfd_data): Likewise. + * elf32-score7.c (s7_elf32_score_merge_private_bfd_data): Likewise. + * elf32-sh.c (sh_merge_bfd_arch, sh_elf_merge_private_data): Likewise. + * elf32-sh64.c (sh64_elf_merge_private_data): Likewise. + * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Likewise. + * elf32-tic6x.c (elf32_tic6x_merge_attributes): Likewise. + (elf32_tic6x_merge_private_bfd_data): Likewise. + * elf32-v850.c (v850_elf_merge_private_bfd_data): Likewise. + * elf32-vax.c (elf32_vax_merge_private_bfd_data): Likewise. + * elf32-visium.c (visium_elf_merge_private_bfd_data): Likewise. + * elf32-xtensa.c (elf_xtensa_merge_private_bfd_data): Likewise. + * elf64-ia64-vms.c (elf64_ia64_merge_private_bfd_data): Likewise. + * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Likewise. + * elf64-s390.c (elf64_s390_merge_private_bfd_data): Likewise. + * elf64-sh64.c (sh_elf64_merge_private_data): Likewise. + * elf64-sparc.c (elf64_sparc_merge_private_bfd_data): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_merge_private_bfd_data): Likewise. + * elfnn-ia64.c (elfNN_ia64_merge_private_bfd_data): Likewise. + * elfxx-mips.c (mips_elf_merge_obj_e_flags): Likewise. + (mips_elf_merge_obj_attributes): Likewise. + (_bfd_mips_elf_merge_private_bfd_data): Likewise. + * elfxx-mips.h (_bfd_mips_elf_merge_private_bfd_data): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_merge_private_bfd_data): Likewise. + * elfxx-sparc.h (_bfd_sparc_elf_merge_private_bfd_data): Likewise. + * elfxx-target.h (bfd_elfNN_bfd_merge_private_bfd_data): Likewise. + * elfxx-tilegx.c (_bfd_tilegx_elf_merge_private_bfd_data): Likewise. + * elfxx-tilegx.h (_bfd_tilegx_elf_merge_private_bfd_data): Likewise. + * libbfd-in.h (_bfd_generic_bfd_merge_private_bfd_data): Likewise. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2016-10-07 Alan Modra + + * Makefile.am (LIBBFD_H_FILES): Update. + * doc/Makefile.am (LIBBFD_H_DEP): Likewise. + * cpu-sh.c (sh_merge_bfd_arch): Move to.. + * elf32-sh.c: ..here, and make static. + * elf32-arc.c (arc_elf_merge_private_bfd_data): Delete extraneous + error. + * elf32-cris.c (cris_elf_merge_private_bfd_data): Don't call + _bfd_generic_verify_endian_match. + * elf32-microblaze.c (microblaze_elf_merge_private_bfd_data): Delete. + (bfd_elf32_bfd_merge_private_bfd_data): Define as + _bfd_generic_verify_endian_match. + * elf32-mt.c (mt_elf_merge_private_bfd_data): Don't test + boolean == FALSE. + * elf32-xgate.c (_bfd_xgate_elf_merge_private_bfd_data): Delete. + (bfd_elf32_bfd_merge_private_bfd_data): Don't define. + * elf32-xgate.h (_bfd_xgate_elf_merge_private_bfd_data): Delete. + * libbfd-in.h (_bfd_generic_verify_endian_match): Delete. + * libbfd.c (_bfd_generic_verify_endian_match): Move to.. + * linker.c: ..here, and make internal. + * bfd.c (bfd_merge_private_bfd_data): Move to.. + * linker.c: ..here. + * Makefile.in: Regenerate. + * doc/Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2016-10-06 Alan Modra + + * coff-h8300.c: Spell fall through comments consistently. + * coffgen.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf64-ppc.c: Likewise. + * elfxx-aarch64.c: Likewise. + * elfxx-mips.c: Likewise. + * cpu-ns32k.c: Add missing fall through comments. + * elf-m10300.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-avr.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-rx.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-tic6x.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-x86-64.c: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * ieee.c: Likewise. + * oasys.c: Likewise. + * pdp11.c: Likewise. + * srec.c: Likewise. + * versados.c: Likewise. + +2016-10-06 Alan Modra + + * coffcode.h (coff_slurp_symbol_table): Revert accidental commit + made 2015-01-08. + * elf32-nds32.c (nds32_elf_grok_psinfo): Add missing break. + * reloc.c (bfd_default_reloc_type_lookup): Add missing breaks. + +2016-10-06 Alan Modra + + * elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise + OR in arithmetic expression, not boolean OR. + +2016-09-30 Alan Modra + + * Makefile.am (BFD_H_FILES): Add linker.c and simple.c. Sort + as per comment at head of bfd-in2.h. + * Makefile.in: Regenerate. + +2016-09-30 Alan Modra + + * aout-adobe.c: Replace (*_bfd_error_handler) (...) with + _bfd_error_handler (...) throughout. + * aout-cris.c, * aoutx.h, * archive.c, * bfd.c, * binary.c, + * cache.c, * coff-alpha.c, * coff-arm.c, * coff-h8300.c, + * coff-i860.c, * coff-mcore.c, * coff-ppc.c, * coff-rs6000.c, + * coff-sh.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, + * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c, + * coffswap.h, * cpu-arm.c, * cpu-m68k.c, * cpu-sh.c, * dwarf2.c, + * ecoff.c, * elf-eh-frame.c, * elf-m10300.c, * elf.c, * elf32-arc.c, + * elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c, + * elf32-cris.c, * elf32-crx.c, * elf32-dlx.c, * elf32-frv.c, + * elf32-hppa.c, * elf32-i370.c, * elf32-i386.c, * elf32-lm32.c, + * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-m68k.c, + * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c, + * elf32-mips.c, * elf32-nds32.c, * elf32-nios2.c, * elf32-or1k.c, + * elf32-pj.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-s390.c, + * elf32-score.c, * elf32-score7.c, * elf32-sh.c, * elf32-sh64.c, + * elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilepro.c, + * elf32-v850.c, * elf32-vax.c, * elf32-xtensa.c, * elf64-alpha.c, + * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c, + * elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c, + * elf64-x86-64.c, * elfcode.h, * elfcore.h, * elflink.c, + * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfxx-mips.c, + * elfxx-sparc.c, * elfxx-tilegx.c, * hpux-core.c, * i386linux.c, + * ieee.c, * ihex.c, * libbfd.c, * linker.c, * m68klinux.c, + * mach-o.c, * merge.c, * mmo.c, * oasys.c, * osf-core.c, * pdp11.c, + * pe-mips.c, * peXXigen.c, * pef.c, * plugin.c, * reloc.c, + * rs6000-core.c, * sco5-core.c, * som.c, * sparclinux.c, * srec.c, + * stabs.c, * syms.c, * vms-alpha.c, * vms-lib.c, * vms-misc.c, + * xcofflink.c: Likewise. + +2016-09-30 Alan Modra + + * bfd-in.h: Include stdarg.h. + * bfd.c (bfd_error_handler_type): Make like vprintf. + (_bfd_error_internal): Rename from _bfd_error_handler. Make static. + (error_handler_internal): New function, split out from.. + (_bfd_default_error_handler): ..here. Rename to _bfd_error_handler. + (bfd_set_error_handler): Update. + (bfd_get_error_handler, bfd_get_assert_handler): Delete. + (_bfd_assert_handler): Make static. + * coffgen.c (null_error_handler): Update params. + * elf-bfd.h (struct elf_backend_data ): + Don't use bfd_error_handler_type. + * elf64-mmix.c (mmix_dump_bpo_gregs): Likewise. + * elfxx-target.h (elf_backend_link_order_error_handler): Default + to _bfd_error_handler. + * libbfd-in.h (_bfd_default_error_handler): Don't declare. + (bfd_assert_handler_type): Likewise. + (_bfd_error_handler): Update. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2016-09-28 Akihiko Odaki + + PR ld/20636 + * elf-bfd.h (struct elf_backend_data): Delete + elf_backend_count_output_relocs callback and add + elf_backend_update_relocs. + * elf32-arm.c (elf32_arm_count_output_relocs): Deleted. + (emit_relocs): Deleted. + (elf32_arm_emit_relocs): Deleted. + (elf_backend_emit_relocs): Updated not to use the old functions. + (elf32_arm_update_relocs): New function. + (elf_backend_update_relocs): New define. + * elflink.c (bfd_elf_final_link): Add additional_reloc_count to the + relocation count. Call elf_backend_emit_relocs. + (_bfd_elf_size_reloc_section): Do not call + elf_backend_count_output_relocs. + * elfxx-target.h (elf_backend_count_output_relocs): Deleted. + (elf_backend_update_relocs): New define. + +2016-09-28 Christophe Lyon + + PR ld/20608 + * elf32-arm.c (arm_type_of_stub): Handle the case when the pre-PLT + Thumb-ARM stub is too far. + +2016-09-27 Nick Clifton + + PR ld/20634 + * peXXigen.c (_bfd_XXi_only_swap_filehdr_out): Put 0 in the + timestamp field if real time values are not being stored. + +2016-09-26 Vlad Zakharov + + * warning.m4 (AC_EGREP_CPP_FOR_BUILD): Introduce macro + to verify CC_FOR_BUILD compiler. + (AM_BINUTILS_WARNINGS): Introduce ac_cpp_for_build variable + and add CC_FOR_BUILD compiler checks. + * Makefile.in: Regenerate. + * configure: Likewise. + * doc/Makefile.in: Likewise. + +2016-09-26 Awson + + PR ld/17955 + * coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset + for R_AMD64_PCRQUAD relocations. + +2016-09-26 Alan Modra + + * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare. + * elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): New function. + (ppc_elf_merge_obj_attributes): Use it. Don't copy first file + attributes, merge them. Don't warn about undefined tag bits, + or copy unknown values to output. + * elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Call + _bfd_elf_ppc_merge_fp_attributes. + +2016-09-23 Akihiko Odaki + + PR ld/20595 + * elf-bfd.h (struct elf_backend_data): Add + elf_backend_count_output_relocs callback to count relocations in + the final output. + * elf-arm.c (elf32_arm_add_relocation): Deleted. + (elf32_arm_write_section): Move additional relocation to emit_relocs. + (elf32_arm_count_output_relocs): New function. + (emit_relocs): New function. + (elf32_arm_emit_relocs): New function. + (elf32_arm_vxworks_emit_relocs): New function. + (elf_backend_emit_relocs): Updated to use the new functions. + (elf_backend_count_output_relocs): New define. + * bfd/elflink.c (bfd_elf_final_link): Do not add additional_reloc_count + to the relocation count. + (_bfd_elf_link_size_reloc_section): Use callback to count the + relocations which will be in output. + (_bfd_elf_default_count_output_relocs): New function. + * bfd/elfxx-target.h (elf_backend_count_output_relocs): New define. + +2016-09-19 Jose E. Marchesi + + * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Allow + negative offsets to _GLOBAL_OFFSET_TABLE_ if the .got section is + bigger than 0x1000 bytes. + +2016-09-14 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Only mark section + not already marked. + +2016-09-14 Nick Clifton + + PR binutils/20605 + * peicode.h (pe_bfd_read_buildid): Check that the Data Directory + contains a valid size for the Debug directory. + +2016-09-14 Bhushan Attarde + + * format.c (struct bfd_preserve): New "build_id" field. + (bfd_preserve_save): Save "build_id". + (bfd_preserve_restore): Restore "build_id". + +2016-09-06 H.J. Lu + + PR ld/20550 + * elf64-x86-64.c (elf_x86_64_relocate_section): Resolve size + relocation with copy relocation when building executable. + +2016-09-02 Senthil Kumar Selvaraj + + PR ld/20545 + * elf32-avr.c (elf32_avr_relax_delete_bytes): Add parameter + delete_shrinks_insn. Modify computation of shrinked_insn_address. + Compute shrink_boundary and adjust addend only if + addend_within_shrink_boundary. + (elf32_avr_relax_section): Modify calls to + elf32_avr_relax_delete_bytes to pass extra parameter. + +2016-09-01 Thomas Preud'homme + + * elf32-arm.c (cmse_entry_fct_p): Store instruction encoding in an + array of bytes and use bfd_get_16 to interpret its encoding according + to endianness of target. + +2016-09-01 Alan Modra + + * elf64-ppc.c (synthetic_opd): New static var. + (compare_symbols): Don't treat symbols in .opd specially for ELFv2. + (ppc64_elf_get_synthetic_symtab): Likewise. Comment. + +2016-08-31 Alan Modra + + * elf64-ppc.c (group_sections): Delete stub14_group_size. Instead, + track max group size with a new "group_size" var that is reduced + by a factor of 1024 from the 24-bit branch size whenever a 14-bit + branch is seen. + +2016-08-31 Alan Modra + + * elf32-ppc.c (ppc_elf_section_processing): Delete. + (elf_backend_section_processing): Don't define. + (ppc_elf_modify_segment_map): Set p_flags and mark valid. Don't + split on non-exec sections differing in SHF_PPC_VLE. When + splitting segments, mark size invalid. + +2016-08-30 Alan Modra + + PR 20531 + * elf32-ppc.c (_bfd_elf_ppc_set_arch): Add missing "break". + +2016-08-29 H.J. Lu + + PR ld/14961 + PR ld/20515 + * elf32-i386.c (elf_i386_check_relocs): Issue an error when + R_386_PC32 relocation is used to call IFUNC function in PIC + object. + +2016-08-27 Alan Modra + + PR 20520 + * elf.c (_bfd_elf_setup_sections): Check that SHT_GROUP sections + have corresponding SHF_GROUP sections. + (bfd_elf_set_group_contents): Comment. + +2016-08-27 Alan Modra + + PR 20519 + * elf64-ppc.c (pc_dynrelocs): New function. + (ppc64_elf_relocate_section): Use it and must_be_dyn_reloc to + handle pic dynamic relocs. + +2016-08-26 Thomas Preud'homme + + * bfd-in.h (struct elf32_arm_params): Define. + (bfd_elf32_arm_set_target_relocs): Rename into ... + (bfd_elf32_arm_set_target_params): This. Use a struct + elf32_arm_params to pass all parameters but the bfd and bfd_link_info. + * bfd-in2.h: Regenerate. + * elf32-arm.c (bfd_elf32_arm_set_target_relocs): Rename into ... + (bfd_elf32_arm_set_target_params): This. Pass all values via a struct + elf32_arm_params rather than as individual parameters. + +2016-08-26 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access + passed the end of htab->stub_group array. + (elf32_arm_create_or_find_stub_sec): Likewise. + (elf32_arm_create_stub): Likewise. + +2016-08-26 Cupertino Miranda + + * elf32-arc.c (elf_arc_relocate_section): Changed. Set should_relocate + to TRUE for GOT and TLS relocs. + +2016-08-26 Cupertino Miranda + + * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed. + +2016-08-26 Cupertino Miranda + + * elf-bfd.h: Added ARC_ELF_DATA to enum elf_target_id. + * elf32-arc.c (struct elf_arc_link_hash_entry): Added. + (struct elf_arc_link_hash_table): Likewise. + (elf_arc_link_hash_newfunc): Likewise. + (elf_arc_link_hash_table_free): Likewise. + (arc_elf_link_hash_table_create): Likewise. + (elf_arc_relocate_section): Fixed conditions related to dynamic + (elf_arc_check_relocs): Likewise. + (arc_elf_create_dynamic_sections): Added + (elf_arc_adjust_dynamic_symbol): Changed access to .rela.bss to be done + through the hash table. + +2016-08-26 Cupertino Miranda + + * arc-got.h (relocate_fix_got_relocs_for_got_info): Fixed addresses in + debug comments. Fixed address in .got related to TLS_IE_GOT dynamic + relocation. + +2016-08-26 Cupertino Miranda + + * reloc.c: Fixed type in ARC_SECTOFF relocations. Added ARC_SDA_12 + relocation. + * bfd-in2.h: Regenerated from the previous changes. + * libbfd.h: Regenerated from the previous changes. + +2016-08-26 Thomas Preud'homme + + * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for + the input import library bfd. + * bfd-in2.h: Regenerate. + * elf32-arm.c (struct elf32_arm_link_hash_table): New in_implib_bfd + and new_cmse_stub_offset fields. + (stub_hash_newfunc): Initialize stub_offset and stub_template_size to + -1. + (elf32_arm_add_stub): Likewise for stub_offset. + (arm_new_stubs_start_offset_ptr): New function. + (arm_build_one_stub): Only allocate a stub_offset if it is -1. Allow + empty SG veneers to have zero relocations. + (arm_size_one_stub): Only initialize stub size and template + information for non empty veneers. Do not update veneer section size + if veneer already has an offset. + (elf32_arm_create_stub): Return the stub entry pointer or NULL instead + of a boolean indicating success or failure. + (cmse_scan): Change stub_changed parameter into an integer pointer + parameter cmse_stub_created to count the number of stub created and + adapt to change of return value in elf32_arm_create_stub. + (cmse_entry_fct_p): New function. + (arm_list_new_cmse_stub): Likewise. + (set_cmse_veneer_addr_from_implib): Likewise. + (elf32_arm_size_stubs): Define cmse_stub_created, pass its address to + cmse_scan instead of that of cmse_stub_changed to compute the number + of stub created and use it to initialize stub_changed. Call + set_cmse_veneer_addr_from_implib after all cmse_scan. Adapt to change + of return value in elf32_arm_create_stub. Use + arm_stub_section_start_offset () if not NULL to initialize size of + secure gateway veneers section. Initialize stub_offset of Cortex-A8 + erratum fix to -1. Use ret to hold return value. + (elf32_arm_build_stubs): Use arm_stub_section_start_offset () if not + NULL to initialize size of secure gateway veneers section. Adapt + comment to stress the importance of zeroing veneer section content. + (bfd_elf32_arm_set_target_relocs): Add new in_implib_bfd parameter to + initialize eponymous field in struct elf32_arm_link_hash_table. + +2016-08-25 Andreas Arnez + + * elf32-s390.c (stdarg.h): New include. + (elf_s390_grok_psinfo): New function. + (elf_s390_write_core_note): New function. + (elf_backend_grok_psinfo): Declare backend hook. + (elf_backend_write_core_note): Likewise. + * elf64-s390.c (stdarg.h): New include. + (elf_s390_grok_prstatus): New function. + (elf_s390_grok_psinfo): New function. + (elf_s390_write_core_note): New function. + (elf_backend_grok_prstatus): Declare backend hook. + (elf_backend_grok_psinfo): Likewise. + (elf_backend_write_core_note): Likewise. + +2016-08-25 Andreas Arnez + + * elf32-s390.c (allocate_dynrelocs): Fix indentation. + (elf_s390_finish_ifunc_symbol): Likewise. + (elf_s390_finish_dynamic_symbol): Likewise. + (elf_s390_finish_dynamic_sections): Likewise. + (elf_s390_grok_prstatus): Likewise. + * elf64-s390.c (elf_s390_hash_table): Fix indentation. + (elf_s390_finish_dynamic_symbol): Likewise. + +2016-08-24 Anton Kolesov + + * elf32-arc.c (elf32_arc_grok_prstatus): New function. + +2016-08-23 Nick Clifton + + * elf32-arm.c (elf32_arm_count_additional_relocs): Return zero if + there is no arm data associated with the section. + +2016-08-23 Alan Modra + + PR 20475 + * elf32-or1k.c (or1k_elf_relocate_section): Offset from + _GLOBAL_OFFSET_TABLE_, not start of .got section. + +2016-08-22 Nick Clifton + + * doc/chew.c (main): Free the string buffer used to files as they + are parsed. + +2016-08-22 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Move error for @local ifunc.. + (ppc_elf_relocate_section): ..to here. Comment. Error on + detecting -mbss-plt -fPIC local ifuncs too. + (ppc_elf_size_dynamic_sections): Comment on unnecessary glink + branch table entries. + +2016-08-19 Nick Clifton + + * elf.c (assign_section_numbers): Assign number for the .shstrtab + section after the symbol table and string table sections. + +2016-08-19 Alan Modra + + * elf64-ppc.c (struct ppc_link_hash_entry): Add weakref. + (ppc64_elf_copy_indirect_symbol): Set weakref. Don't merge + dyn_relocs for weakdefs. + (alias_readonly_dynrelocs): New function. + (ppc64_elf_adjust_dynamic_symbol): Use alias_readonly_dynrelocs. + (ppc64_elf_relocate_section): Simplify condition under which + dyn_relocs are emitted. + +2016-08-19 Alan Modra + + PR 20472 + * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test. + (readonly_dynrelocs): Comment fix. + (global_entry_stub): New function. + (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test. Match + ELFv2 code deciding on dynamic relocs vs. global entry stubs to + that in size_global_entry_stubs, handling ifunc too. Delete dead + weak sym code. + (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no + dyn_relocs are needed. Correct handling of ifunc dyn_relocs. + Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for + undefweak syms. Expand and correct comments. + (size_global_entry_stubs): Ensure symbol is defined. + (ppc64_elf_relocate_section): Match condition under which + dyn_relocs are emitted to that in allocate_dynrelocs. + +2016-08-12 Alan Modra + + * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount. + * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount. + (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount. + +2016-08-11 Alan Modra + + * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't exit with + non_got_ref true in any case where we could have generated dynbss + copies but decide not to do so. + +2016-08-10 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_add_la25_stub): Clear the ISA bit of + the stub address retrieved if associated with a microMIPS + function. + +2016-08-10 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_create_stub_symbol): For a microMIPS + stub also add STO_MICROMIPS annotation. + +2016-08-10 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation): Set the ISA bit + in microMIPS LA25 stub references. + +2016-08-09 Jiaming Wei + + * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Fix thinko + adjusting the use_count of merged .got entries. + +2016-08-08 Nick Clifton + + * doc/chew.c (delete_string): Only free the string buffer if it is + there. Mark the buffer as NULL after freeing. + (drop): Free the dropped string. + (free_words): New function: Frees the memory allocated to the + dictionary. + (add_instrinsic): Duplicate the name string, so that it can be + freed later on. + (compile): Free unused words. + (main): Free the dictionary and top level string buffers at the + end. + +2016-08-04 Thomas Preud'homme + + * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter. + * bfd-in2.h: Regenerate. + * elf32-arm.c (struct elf32_arm_link_hash_table): Declare new + cmse_implib field. + (bfd_elf32_arm_set_target_relocs): Add new parameter to initialize + cmse_implib field in struct elf32_arm_link_hash_table. + (elf32_arm_filter_cmse_symbols): New function. + (elf32_arm_filter_implib_symbols): Likewise. + (elf_backend_filter_implib_symbols): Define to + elf32_arm_filter_implib_symbols. + +2016-08-04 Thomas Preud'homme + + * elf32-arm.c (CMSE_PREFIX): Define macro. + (elf32_arm_stub_cmse_branch_thumb_only): Define stub sequence. + (cmse_branch_thumb_only): Declare stub. + (struct elf32_arm_link_hash_table): Define cmse_stub_sec field. + (elf32_arm_get_plt_info): Add globals parameter. Use it to return + FALSE if there is no PLT. + (arm_type_of_stub): Adapt to new elf32_arm_get_plt_info signature. + (elf32_arm_final_link_relocate): Likewise. + (elf32_arm_gc_sweep_hook): Likewise. + (elf32_arm_gc_mark_extra_sections): Mark sections holding ARMv8-M + secure entry functions. + (arm_stub_is_thumb): Add case for arm_stub_cmse_branch_thumb_only. + (arm_dedicated_stub_output_section_required): Change to a switch case + and add a case for arm_stub_cmse_branch_thumb_only. + (arm_dedicated_stub_output_section_required_alignment): Likewise. + (arm_stub_dedicated_output_section_name): Likewise. + (arm_stub_dedicated_input_section_ptr): Likewise and remove + ATTRIBUTE_UNUSED for htab parameter. + (arm_stub_required_alignment): Likewise. + (arm_stub_sym_claimed): Likewise. + (arm_dedicated_stub_section_padding): Likewise. + (cmse_scan): New function. + (elf32_arm_size_stubs): Call cmse_scan for ARM M profile targets. + Set stub_changed to TRUE if such veneers were created. + (elf32_arm_swap_symbol_in): Add detection code for CMSE special + symbols. + +2016-08-02 Alan Modra + + PR ld/20428 + * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group. + +2016-08-02 Nick Clifton + + PR ld/17739 + * elf32-sh.c (sh_elf_gc_sweep_hook): Delete. + (elf_backend_sweep_hook): Delete. + +2016-08-01 Andrew Jenner + Kwok Cheung Yeung + + * elf32-ppc.c (is_branch_reloc): Recognise VLE branch relocations. + (ppc_elf_howto_raw): Fix dst_mask of R_PPC_VLE_REL15. + (ppc_elf_vle_split16): Clear field before inserting. + +2016-08-01 Nick Clifton + + * po/sv.po: Updated Swedish translation. + +2016-07-27 Ozkan Sezer + Nick Clifton + + PR ld/20401 + * coffgen.c (fini_reloc_cookie_rels): Check for the extistence + of the coff_section_data before using it. + +2016-07-26 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation): Handle branches + in PLT compression selection. + (_bfd_mips_elf_check_relocs): Likewise. + +2016-07-22 Cupertino Miranda + + * arc-got.h (relocate_fix_got_relocs_for_got_info): Handle the + case where there's no elf_link_hash_entry while processing + GOT_NORMAL got entries. + +2016-07-21 H.J. Lu + + * version.m4 (BFD_VERSION): Set to 2.27.51. + * configure: Regenerated. + +2016-07-21 Nick Clifton + + * elf.c (_bfd_elf_filter_global_symbols): Skip local symbols. + (swap_out_syms): Return an error when not finding ELF output + section rather than asserting. + +2016-07-21 Thomas Preud'homme + + * elflink.c (elf_output_implib): Call bfd_set_error on no symbols. + +2016-07-20 John Baldwin + + * elf.c (elfcore_grok_freebsd_psinfo): Check for minimum note size + and handle pr_pid if present. + +2016-07-20 H.J. Lu + + PR ld/20376 + * elf.c (assign_file_positions_for_load_sections): Also check + p_paddr for program header space. + +2016-07-20 Alan Modra + + * elf64-ppc.c (ppc64_elf_howto_raw ): Put + ppc64_elf_unhandled_reloc for special_function. + * elf32-ppc.c (ppc_elf_howto_raw): Similarly for lots of relocs. + +2016-07-19 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_perform_relocation): Convert cross-mode + BAL to JALX. + (_bfd_mips_elf_relocate_section) : Add a + corresponding error message. + +2016-07-19 Maciej W. Rozycki + + * elfxx-mips.c (b_reloc_p): Add R_MICROMIPS_PC16_S1, + R_MICROMIPS_PC10_S1 and R_MICROMIPS_PC7_S1. + (branch_reloc_p): New function. + (mips_elf_calculate_relocation): Handle ISA mode determination + for relocations against section symbols, against absolute + symbols and absolute relocations. Also set `*cross_mode_jump_p' + for branches. + : Suppress alignment + checks for weak undefined symbols. Also check target alignment + within the same ISA mode. + : Handle cross-mode branches + in the alignment check. + : Add an alignment check. + : Likewise. + : Likewise. + (mips_elf_perform_relocation): Report a failure for unsupported + same-mode JALX instructions and cross-mode branches. + (_bfd_mips_elf_relocate_section) : Add + error messages for jumps to misaligned addresses. + +2016-07-16 Alan Modra + + * elflink.c: Include plugin-api.h. + * plugin.c (bfd_plugin_open_input): New function, extracted from.. + (try_claim): ..here. + * plugin.h: Don't include bfd.h. + (bfd_plugin_open_input): Declare. + +2016-07-16 Alan Modra + + * targets.c (bfd_seach_for_target): Rename to.. + (bfd_iterate_over_targets): ..this. Rewrite doc. + * bfd-in2.h: Regenerate. + +2016-07-16 Alan Modra + + * archures.c (bfd_default_set_arch_mach): Make available in bfd.h. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2016-07-16 Alan Modra + + * libbfd-in.h (BFD_ALIGN): Move to.. + * bfd-in.h: ..here. + * elf32-ppc.h (struct ppc_elf_params): Add pagesize. + * elf32-ppc.c (default_params): Adjust init. + (ppc_elf_link_params): Set pagesize_p2. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2016-07-15 Thomas Preud'homme + + * elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook. + (_bfd_elf_filter_global_symbols): Declare. + * elf.c (_bfd_elf_filter_global_symbols): New function. + * elflink.c (elf_filter_global_symbols): Likewise. + (elf_output_implib): Likewise. + (bfd_elf_final_link): Call above function, failing if it does. + * elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and + default it to NULL. + (elf_backend_copy_indirect_symbol): Fix spacing. + (elf_backend_hide_symbol): Likewise. + (elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook. + +2016-07-15 Andrew Burgess + Nick Clifton + + * elf32-arc.c (PR_DEBUG): Delete. + Fix printing of debug information. Fix formatting of debug + statements. + (debug_arc_reloc): Handle symbols that are not from an input file. + (arc_do_relocation): Remove excessive exclamation points. + + * arc-got.h: Fix formatting. Fix printing of debug information. + (new_got_entry_to_list): Use xmalloc. + * config.bfd: use the big-endian arc vector as the default vector + for big-endian arc targets. + +2016-07-15 Alan Modra + + * cofflink.c (mark_relocs): Exclude relocs with -1 r_symndx + from marking sym_indices. + +2016-07-14 Maciej W. Rozycki + + * reloc.c (bfd_perform_relocation): Try the `howto' handler + first with relocations against absolute symbols. + (bfd_install_relocation): Likewise. + +2016-07-12 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align + .got/.got.plt sections to 8 bytes. + +2016-07-12 Nick Clifton + + * binary.c (binary_set_section_contents): Second grammar fix. + +2016-07-12 Douglas B Rupp + + * binary.c (binary_set_section_contents): Fix grammar in warning + message. + +2016-07-11 Cupertino Miranda + + * elf32-arc.c: made PR_DEBUG always defined. + +2016-07-11 Cupertino Miranda + + * arc-got.h: Moved got related structures from elf32-arc.c to + this file. More precisely, tls_type_e, tls_got_entries, got_entry. + * (arc_get_local_got_ents, got_entry_for_type, new_got_entry_to_list, + tls_type_for_reloc, symbol_has_entry_of_type, + get_got_entry_list_for_symbol, arc_got_entry_type_for_reloc, + ADD_SYMBOL_REF_SEC_AND_RELOC, rc_fill_got_info_for_reloc, + relocate_fix_got_relocs_for_got_info, + create_got_dynrelocs_for_single_entry, + create_got_dynrelocs_for_got_info): Added to file. + * elf32-arc.c: Removed GOT & TLS related structs and functions to + arc-got.h. + +2016-07-08 James Bowman + + * elf32-ft32.c (ft32_reloc_map): Use R_FT32_32 for BFD_RELOC_32. + +2016-07-05 Andre Vieria + + * elf32-arm.c (THUMB32_MOVT): New veneer macro. + (THUMB32_MOVW): Likewise. + (elf32_arm_stub_long_branch_thumb2_only_pure): New. + (DEF_STUBS): Define long_branch_thumb2_only_pure. + (arm_stub_is_thumb): Add new veneer stub. + (arm_type_of_stub): Use new veneer. + (arm_stub_required_alignment): Add new veneer. + +2016-07-05 Andre Vieria + + * bfd-in2.h (SEC_ELF_NOREAD): Rename to ... + (SEC_ELF_PURECODE): ... this. + * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD + to SEC_ELF_NOREAD. + (elf32_arm_fake_sections): Likewise. + (elf_32_arm_section_flags): Likewise. + (elf_32_arm_lookup_section_flags): Likewise. + * section.c (SEC_ELF_NOREAD): Rename to ... + (SEC_ELF_PURECODE): ... this. + +2016-07-01 Thomas Preud'homme + + * elf32-arm.c (using_thumb2_bl): New function. + (arm_type_of_stub): Declare thumb2 variable together and change type + to bfd_boolean. Use using_thumb2_bl () to determine whether + THM_MAX_FWD_BRANCH_OFFSET or THM2_MAX_FWD_BRANCH_OFFSET should be + checked for BL range. + (elf32_arm_final_link_relocate): Use using_thumb2_bl () to determine + the bit size of BL offset. + +2016-06-29 Nick Clifton + + * elfnn-aarch64.c (is_aarch64_mapping_symbol): New function. + Returns TRUE for AArch64 mapping symbols. + (elfNN_aarch64_backend_symbol_processing): New function. Marks + mapping symbols as precious in object files so that they will not + be stripped. + (elf_backend_symbol_processing): Define. + + * elf32-arm.c (is_arm_mapping_symbol): New function. Returns TRUE + for ARM mapping symbols. + (elf32_arm_backend_symbol_processing): Make use of the new function. + +2016-06-28 H.J. Lu + + PR ld/20306 + * elflink.c (elf_link_check_versioned_symbol): Return false + for unreferenced undefined symbol. + +2016-06-28 Nick Clifton + + * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc + is needed. + + * elf32-arm.c (elf32_arm_backend_symbol_processing): New + function. Marks mapping symbols in object files as precious, so + that strip will not remove them. + (elf_backend_symbol_processing): Define. + +2016-06-28 James Clarke + + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert + R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64. + +2016-06-28 Maciej W. Rozycki + + * elf32-mips.c (elf_mips16_howto_table_rel): Add + R_MIPS16_PC16_S1. + (mips16_reloc_map): Likewise. + * elf64-mips.c (mips16_elf64_howto_table_rel): Likewise. + (mips16_elf64_howto_table_rela): Likewise. + (mips16_reloc_map): Likewise. + * elfn32-mips.c (elf_mips16_howto_table_rel): Likewise. + (elf_mips16_howto_table_rela): Likewise. + (mips16_reloc_map): Likewise. + * elfxx-mips.c (mips16_branch_reloc_p): New function. + (mips16_reloc_p): Handle R_MIPS16_PC16_S1. + (b_reloc_p): Likewise. + (mips_elf_calculate_relocation): Likewise. + (_bfd_mips_elf_check_relocs): Likewise. + * reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2016-06-27 Alan Modra + + PR ld/19264 + * elf64-ppc.c (STUB_SHRINK_ITER): Define. + (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER + if shrinking stubs. + (ppc64_elf_size_stubs): Adjust to suit. + +2016-06-27 Trevor Saunders + + * elf32-dlx.h: New file. + * elf32-dlx.c: Adjust. + +2016-06-25 Trevor Saunders + + * elf32-xtensa.c (xtensa_make_property_section): Remove prototype. + +2016-06-24 John Baldwin + + * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV + notes. + +2016-06-24 John Baldwin + + * elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for + FreeBSD. Remove case for NT_FREEBSD_THRMISC. + (elfcore_grok_freebsd_psinfo): New function. + (elfcore_grok_freebsd_prstatus): New function. + (elfcore_grok_freebsd_note): New function. + (elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD" + notes. + +2016-06-24 Joel Brobecker + + * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather + than its existance. + +2016-06-24 Alan Modra + + * config.bfd: Delete mips vxworks patterns matched earlier. + Combine mips*-*-none with mips*-*-elf*. + +2016-06-21 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_perform_relocation): Call + `info->callbacks->einfo' rather than `*_bfd_error_handler' and + use the `%X%H' format for the cross-mode jump conversion error + message. Remove the full stop from the end of the message. + Continue processing rather than returning failure. + +2016-06-21 Graham Markall + + * archures.c: Remove bfd_mach_arc_nps400. + * bfd-in2.h: Likewise. + * cpu-arc.c (arch_info_struct): Likewise. + * elf32-arc.c (arc_elf_object_p, arc_elf_final_write_processing): + Likewise. + +2016-06-20 H.J. Lu + + PR ld/18250 + PR ld/20267 + * elflink.c: Include plugin.h if BFD_SUPPORTS_PLUGINS is + defined. + (elf_link_is_defined_archive_symbol): Call + bfd_link_plugin_object_p on unknown plugin object and use the + IR symbol table if the input is an IR object. + * plugin.c (bfd_link_plugin_object_p): New function. + * plugin.h (bfd_link_plugin_object_p): New prototype. + +2016-06-20 H.J. Lu + + PR ld/20276 + * elflink.c (elf_link_add_object_symbols): Don't check alignment + on symbol from plugin dummy input. + +2016-06-18 H.J. Lu + + * bfd.c (bfd_plugin_format): Rename bfd_plugin_uknown to + bfd_plugin_unknown. + * bfd-in2.h: Regenerated. + * plugin.c (bfd_plugin_object_p): Replace bfd_plugin_uknown + with bfd_plugin_unknown. + +2016-06-18 H.J. Lu + + PR ld/20253 + * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an + bfd_boolean argument. + * elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace + "shared object" with "PIC object" in comments. + (_bfd_elf_allocate_ifunc_dyn_relocs): Updated. Replace + "shared object" with "PIC object" in comments. Avoid PLT if + requested. Generate dynamic relocations for non-GOT references. + Make room for the special first entry in PLT and allocate PLT + entry only for PLT and PC-relative references. Store dynamic + GOT relocations in .rel[a].iplt section for static executables. + If PLT isn't used, always use GOT for symbol value. Don't + allocate GOT entry if it isn't used. + * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference + count only in the code section. Allocate dynamic pointer + relocation against STT_GNU_IFUNC symbol in the non-code section. + (elf_i386_adjust_dynamic_symbol): Increment PLT reference count + only for PC-relative references. + (elf_i386_allocate_dynrelocs): Pass TRUE to + _bfd_elf_allocate_ifunc_dyn_relocs. + (elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X + relocations against STT_GNU_IFUNC symbols without PLT. Generate + dynamic pointer relocation against STT_GNU_IFUNC symbol in + the non-code section and store it in the proper REL section. + Don't allow non-pointer relocation against STT_GNU_IFUNC symbol + without PLT. + (elf_i386_finish_dynamic_symbol): Generate dynamic + R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against + STT_GNU_IFUNC symbols without PLT. + (elf_i386_finish_dynamic_sections): Don't handle local + STT_GNU_IFUNC symbols here. + (elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC + symbols here. + (elf_backend_output_arch_local_syms): New. + * elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference + count only in the code section. Allocate dynamic pointer + relocation against STT_GNU_IFUNC symbol in the non-code section. + (elf_x86_64_adjust_dynamic_symbol): Increment PLT reference + count only for PC-relative references. + (elf_x86_64_allocate_dynrelocs): Pass TRUE to + _bfd_elf_allocate_ifunc_dyn_relocs. + (elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL, + R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and + R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols + without PLT. Generate dynamic pointer relocation against + STT_GNU_IFUNC symbol in the non-code section and store it in + the proper RELA section. Don't allow non-pointer relocation + against STT_GNU_IFUNC symbol without PLT. + (elf_x86_64_finish_dynamic_symbol): Generate dynamic + R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against + STT_GNU_IFUNC symbols without PLT. + (elf_x86_64_finish_dynamic_sections): Don't handle local + STT_GNU_IFUNC symbols here. + (elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC + symbols here. + (elf_backend_output_arch_local_syms): New. + * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs): + Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs. + +2016-06-17 Thomas Preud'homme + Tony Wang + + * elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub + sequence. + (stub_long_branch_thumb2_only): Define stub. + (arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only. + (arm_stub_long_branch_thumb2_only): Likewise. + (arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2 + capable targets. + +2016-06-17 Jose E. Marchesi + + * archures.c (bfd_mach_sparc_v8plusc): Define. + (bfd_mach_sparc_v9c): Likewise. + (bfd_mach_sparc_v8plusd): Likewise. + (bfd_mach_sparc_v9d): Likewise. + (bfd_mach_sparc_v8pluse): Likewise. + (bfd_mach_sparc_v9e): Likewise. + (bfd_mach_sparc_v8plusv): Likewise + (bfd_mach_sparc_v9v): Likewise. + (bfd_mach_sparc_v8plusm): Likewise. + (bfd_mach_sparc_v9m): Likewise. + (bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m. + (bfd_mach_sparc_64bit_p): Likewise. + * bfd-in2.h: Regenerate. + * cpu-sparc.c (arch_info_struct): Add entries for + bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}. + * aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m} + and bfd_mach_sparc_v9{c,d,e,v,m}. + * elf32-sparc.c (elf32_sparc_final_write_processing): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise. + +2016-06-16 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Don't check undefined + symbols for relocations against IFUNC symbols. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2016-06-16 Marcin Koƛcielnicki + + * elf32-s390.c (elf_s390_finish_dynamic_sections): Include + .rela.iplt in DT_PLTRELSZ. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise, + for DT_PLTRELSZ and DT_RELASZ as well. + +2016-06-16 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Skip relocations in + non-loaded, non-alloced sections. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2016-06-15 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Check SEC_ALLOC before + allocating dynamic relocation. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2016-06-14 Senthil Kumar Selvaraj + + PR ld/20254 + * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc + offsets until reloc_toaddr. + +2016-06-14 H.J. Lu + + * elf32-i386.c (elf_i386_reloc_type_class): Check R_386_IRELATIVE. + Don't check symbol type for STN_UNDEF symbol index. + * elf64-x86-64.c (elf_x86_64_reloc_type_class): Check + R_X86_64_IRELATIVE. Don't check symbol type for STN_UNDEF symbol + index. + +2016-06-14 Thomas Preud'homme + + * elf32-arm.c (using_thumb_only): Force review of arch check logic for + new architecture. + (using_thumb2): Try Tag_THUMB_ISA_use first and check + for exact arch value then. Force review of arch check logic for new + architecture. + (arch_has_arm_nop): Update and fix arch check logic. Force review of + that logic for new architecture. + (arch_has_thumb2_nop): Remove. + (elf32_arm_tls_relax): Use using_thumb2 instead of above function. + (elf32_arm_final_link_relocate): Likewise but using thumb2. + +2016-06-14 Alan Modra + + * bfd-in.h (bfd_my_archive): Delete. + * bfd-in2.h: Regenerate. + +2016-06-14 Alan Modra + + PR ld/20241 + * archive.c (open_nested_file): Set my_archive. + * bfd.c (_bfd_default_error_handler <%B>): Exclude archive file name + for thin archives. + * bfdio.c (bfd_tell): Don't adjust origin for thin archives. + (bfd_seek): Likewise. + * bfdwin.c (bfd_get_file_window): Likewise. + * cache.c (cache_bmmap): Likewise. + (bfd_cache_lookup_worker): Don't look in my_archive for thin archives. + * mach-o.c (bfd_mach_o_follow_dsym): Don't open my_archive for + thin archives. + * plugin.c (try_claim): Likewise. + * xcofflink.c (xcoff_link_add_dynamic_symbols): Use import path of + file within thin archive, not the archive. + +2016-06-13 H.J. Lu + + PR ld/20244 + * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt + section address for R_386_GOT32/R_386_GOT32X relocations against + IFUNC symbols if there is no base register and return error for + PIC. + +2016-06-13 H.J. Lu + + * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC + GOT32 adjustment for static executables. + +2016-06-13 Maciej W. Rozycki + + * elf32-mips.c (elf_mips_gnu_pcrel32): Update comment. + +2016-06-13 Cupertino Miranda + + * elf32-arc.c (elf_arc_relocate_section): Fixed condition. + +2016-06-13 Cupertino Miranda + + * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed. + +2016-06-13 Cupertino Miranda + + * elf32-arc.c (arc_local_data, arc_local_data): Removed. + (SECTSTART): Changed. + (elf_arc_relocate_section): Fixed mistake in PIE related + condition. + (elf_arc_size_dynamic_sections): Changed DT_RELENT to DT_RELAENT. + +2016-06-13 Cupertino Miranda + + * elf32-arc.c (elf32_arc_reloc_type_class): Defined function to + enable support for "-z combreloc" and DT_RELACOUNT. + (elf_backend_reloc_type_class): Likewise + +2016-06-11 H.J. Lu + + PR ld/20244 + * elf32-i386.c (elf_i386_relocate_section): When relocating + R_386_GOT32, return error without a base register for PIC and + subtract the .got.plt section address only with a base register. + +2016-06-10 Alan Modra + + * elf-strtab.c (struct strtab_save): Use size_t for "size". + (struct elf_strtab_hash): Likewise for "size" and "alloced". + (_bfd_elf_strtab_init): Formatting. + (_bfd_elf_strtab_add): Return size_t rather than bfd_size_type. + (_bfd_elf_strtab_addref): Take size_t idx param. + (_bfd_elf_strtab_delref, _bfd_elf_strtab_refcount): Likewise. + (_bfd_elf_strtab_offset): Likewise. + (_bfd_elf_strtab_clear_all_refs): Use size_t idx. + (_bfd_elf_strtab_save): Use size_t "idx" and "size" vars. + (_bfd_elf_strtab_restore, _bfd_elf_strtab_emit): Similarly. + (_bfd_elf_strtab_finalize): Similarly. + * elf-bfd.h (_bfd_elf_strtab_add): Update prototypes. + (_bfd_elf_strtab_addref, _bfd_elf_strtab_delref): Likewise. + (_bfd_elf_strtab_refcount, _bfd_elf_strtab_offset): Likewise. + * elf.c (bfd_elf_get_elf_syms): Calculate symbol buffer size + using bfd_size_type. + (bfd_section_from_shdr): Delete amt. + (_bfd_elf_init_reloc_shdr): Likewise. + (_bfd_elf_link_assign_sym_version): Likewise. + (assign_section_numbers): Use size_t reloc_count. + * elflink.c (struct elf_symbuf_head): Use size_t "count". + (bfd_elf_link_record_dynamic_symbol): Use size_t for some vars. + (elf_link_is_defined_archive_symbol): Likewise. + (elf_add_dt_needed_tag): Likewise. + (elf_finalize_dynstr): Likewise. + (elf_link_add_object_symbols): Likewise. + (bfd_elf_size_dynamic_sections): Likewise. + (elf_create_symbuf): Similarly. + (bfd_elf_match_symbols_in_sections): Likewise. + (elf_link_swap_symbols_out): Likewise. + (elf_link_check_versioned_symbol): Likewise. + (bfd_elf_gc_record_vtinherit): Likewise. + (bfd_elf_gc_common_finalize_got_offsets): Likewise. + +2016-06-08 Senthil Kumar Selvaraj + + PR ld/20221 + * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms + and relocs only if shrinking occurred. + +2016-06-08 H.J. Lu + + * elf64-i386.c (elf_i386_link_hash_entry): Add tls_get_addr. + (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 2. + (elf_i386_check_tls_transition): Check indirect call and direct + call with the addr32 prefix for general and local dynamic models. + Set the tls_get_addr feild. + (elf_i386_convert_load_reloc): Always use addr32 prefix for + indirect ___tls_get_addr call via GOT. + (elf_i386_relocate_section): Handle GD->LE, GD->IE and LD->LE + transitions with indirect call and direct call with the addr32 + prefix. + +2016-06-07 Marcin Koƛcielnicki + + * elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment. + * elf64-s390.c (elf_s390x_plt_entry): Fix comment. + (elf_s390_relocate_section): Fix comment. + (elf_s390_finish_dynamic_sections): Fix initialization of fixed + .got.plt entries. + +2016-06-07 Ulrich Weigand + + * elf64-s390.c (elf_s390_finish_dynamic_sections): Subtract plt + section offset when calculation the larl operand in the first PLT + entry. + +2016-06-07 Alan Modra + + * cpu-powerpc.c (powerpc_compatible): Allow bfd_mach_ppc_vle entry + to match other 32-bit archs. + * elf32-ppc.c (_bfd_elf_ppc_set_arch): New function. + (ppc_elf_object_p): Call it. + (ppc_elf_special_sections): Use APUINFO_SECTION_NAME. Fix + overlong line. + (APUINFO_SECTION_NAME, APUINFO_LABEL): Don't define here. + * elf64-ppc.c (ppc64_elf_object_p): Call _bfd_elf_ppc_set_arch. + * bfd-in.h (_bfd_elf_ppc_at_tls_transform, + _bfd_elf_ppc_at_tprel_transform): Move to.. + * elf-bfd.h: ..here. + (_bfd_elf_ppc_set_arch): Declare. + * bfd-in2.h: Regenerate. + +2016-06-06 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add tls_get_addr. + (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 2. + (elf_x86_64_check_tls_transition): Check indirect call and + direct call with the addr32 prefix for general and local dynamic + models. Set the tls_get_addr feild. + (elf_x86_64_convert_load_reloc): Always use addr32 prefix for + indirect __tls_get_addr call via GOT. + (elf_x86_64_relocate_section): Handle GD->LE, GD->IE and LD->LE + transitions with indirect call and direct call with the addr32 + prefix. + +2016-06-04 Christian Groessler + + * coff-z8k.c (extra_case): Fix range check for R_JR relocation. + +2016-06-02 Nick Clifton + + PR target/20088 + * cpu-arm.c (processors): Add "arm_any" type to match any ARM + architecture. + (arch_info_struct): Likewise. + (architectures): Likewise. + +2016-06-02 Vineet Gupta + + * config.bfd: Replace -uclibc with *. + +2016-06-02 H.J. Lu + + * elf64-x86-64.c: Replace data32 with data16 in comments. + +2016-05-31 Alan Modra + + PR ld/20159 + PR ld/16467 + * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change. + (_bfd_elf_add_default_symbol): Don't indirect to/from defined + symbol given a version by a script different to the version + of the symbol being added. + (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and + _bfd_elf_strtab_restore. Don't fudge dynstr references. + * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete. + (struct strtab_save): New. + (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions. + * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete. + (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare. + +2016-06-01 Trevor Saunders + + * elf32-hppa.h: Add extern "C". + * elf32-nds32.h: Likewise. + * elf32-tic6x.h: Likewise. + +2016-06-01 Nick Clifton + + * po/sr.po: New Serbian translation. + * configure.ac (ALL_LINGUAS): Add sr. + * configure: Regenerate. + +2016-05-28 Maciej W. Rozycki + + * elfxx-mips.c (b_reloc_p): New function. + (_bfd_mips_elf_relocate_section) : Handle + branch relocations. + +2016-05-28 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation): + : Drop the region bits of the + reloc location from calculation, treat the addend as signed with + local non-section symbols and enable overflow detection. + +2016-05-28 Alan Modra + + * aoutx.h: Adjust linker callback calls throughout file, + removing dead code. + * bout.c: Likewise. + * coff-alpha.c: Likewise. + * coff-arm.c: Likewise. + * coff-h8300.c: Likewise. + * coff-h8500.c: Likewise. + * coff-i960.c: Likewise. + * coff-mcore.c: Likewise. + * coff-mips.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-tic80.c: Likewise. + * coff-w65.c: Likewise. + * coff-z80.c: Likewise. + * coff-z8k.c: Likewise. + * coff64-rs6000.c: Likewise. + * cofflink.c: Likewise. + * ecoff.c: Likewise. + * elf-bfd.h: Likewise. + * elf-m10200.c: Likewise. + * elf-m10300.c: Likewise. + * elf32-arc.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-avr.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-cr16c.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-crx.c: Likewise. + * elf32-d10v.c: Likewise. + * elf32-epiphany.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-ft32.c: Likewise. + * elf32-h8300.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-i860.c: Likewise. + * elf32-ip2k.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-mep.c: Likewise. + * elf32-metag.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-moxie.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-mt.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-nios2.c: Likewise. + * elf32-or1k.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-spu.c: Likewise. + * elf32-tic6x.c: Likewise. + * elf32-tilepro.c: Likewise. + * elf32-v850.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-visium.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. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c: Likewise. + * linker.c: Likewise. + * pdp11.c: Likewise. + * pe-mips.c: Likewise. + * reloc.c: Likewise. + * reloc16.c: Likewise. + * simple.c: Likewise. + * vms-alpha.c: Likewise. + * xcofflink.c: Likewise. + * elf32-rl78.c (get_symbol_value, get_romstart, get_ramstart): Delete + status param. Adjust calls to these and linker callbacks throughout. + * elf32-rx.c: (get_symbol_value, get_gp, get_romstart, + get_ramstart): Delete status param. Adjust calls to these and + linker callbacks throughout. + +2016-05-27 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation) + : Include the addend in JALX's + target alignment verification. + +2016-05-27 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_calculate_relocation): Also use the + section name if `bfd_elf_string_from_elf_section' returns an + empty string. + +2016-05-26 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_relocate_section) + : Use the `%X%H' rather than `%C' format + for message. Continue processing rather than returning failure. + +2016-05-25 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_relocate_section) + : Call `->einfo' rather than `->warning'. + Call `bfd_set_error'. + +2016-05-25 H.J. Lu + + PR binutils/14625 + * archive.c (bfd_slurp_armap): Replace + bfd_elf64_archive_slurp_armap with + _bfd_archive_64_bit_slurp_armap. + (bsd_write_armap): Call _bfd_archive_64_bit_write_armap if + BFD64 is defined and the archive is too big. + (coff_write_armap): Likewise. + * archive64.c (bfd_elf64_archive_slurp_armap): Renamed to ... + (_bfd_archive_64_bit_slurp_armap): This. + (bfd_elf64_archive_write_armap): Renamed to ... + (_bfd_archive_64_bit_write_armap): This. + * configure.ac: Add --enable-64-bit-archive. + (want_64_bit_archive): New. Set to true by default for 64-bit + MIPS and s390 ELF targets. + (USE_64_BIT_ARCHIVE): New AC_DEFINE. + * config.in: Regenerated. + * configure: Likewise. + * elf64-mips.c (bfd_elf64_archive_functions): Removed. + (bfd_elf64_archive_slurp_armap): Likewise. + (bfd_elf64_archive_write_armap): Likewise. + (bfd_elf64_archive_slurp_extended_name_table): Likewise. + (bfd_elf64_archive_construct_extended_name_table): Likewise. + (bfd_elf64_archive_truncate_arname): Likewise. + (bfd_elf64_archive_read_ar_hdr): Likewise. + (bfd_elf64_archive_write_ar_hdr): Likewise. + (bfd_elf64_archive_openr_next_archived_file): Likewise. + (bfd_elf64_archive_get_elt_at_index): Likewise. + (bfd_elf64_archive_generic_stat_arch_elt): Likewise. + (bfd_elf64_archive_update_armap_timestamp): Likewise. + * elf64-s390.c (bfd_elf64_archive_functions): Removed. + (bfd_elf64_archive_slurp_armap): Likewise. + (bfd_elf64_archive_write_armap): Likewise. + (bfd_elf64_archive_slurp_extended_name_table): Likewise. + (bfd_elf64_archive_construct_extended_name_table): Likewise. + (bfd_elf64_archive_truncate_arname): Likewise. + (bfd_elf64_archive_read_ar_hdr): Likewise. + (bfd_elf64_archive_write_ar_hdr): Likewise. + (bfd_elf64_archive_openr_next_archived_file): Likewise. + (bfd_elf64_archive_get_elt_at_index): Likewise. + (bfd_elf64_archive_generic_stat_arch_elt): Likewise. + (bfd_elf64_archive_update_armap_timestamp): Likewise. + * elfxx-target.h (TARGET_BIG_SYM): Use _bfd_archive_64_bit on + BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined and + bfd_elfNN_archive_functions isn't defined. + (TARGET_LITTLE_SYM): Likewise. + * libbfd-in.h (_bfd_archive_64_bit_slurp_armap): New prototype. + (_bfd_archive_64_bit_write_armap): Likewise. + (_bfd_archive_64_bit_slurp_extended_name_table): New macro. + (_bfd_archive_64_bit_construct_extended_name_table): Likewise. + (_bfd_archive_64_bit_truncate_arname): Likewise. + (_bfd_archive_64_bit_read_ar_hdr): Likewise. + (_bfd_archive_64_bit_write_ar_hdr): Likewise. + (_bfd_archive_64_bit_openr_next_archived_file): Likewise. + (_bfd_archive_64_bit_get_elt_at_index): Likewise. + (_bfd_archive_64_bit_generic_stat_arch_elt): Likewise. + (_bfd_archive_64_bit_update_armap_timestamp): Likewise. + * libbfd.h: Regenerated. + * plugin.c (plugin_vec): Use _bfd_archive_64_bit on + BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined. + +2016-05-25 H.J. Lu + + PR ld/20103 + * cofflink.c (coff_link_check_archive_element): Return TRUE if + linker add_archive_element callback returns FALSE. + * ecoff.c (ecoff_link_check_archive_element): Likewise. + * elf64-ia64-vms.c (elf64_vms_link_add_archive_symbols): Skip + archive element if linker add_archive_element callback returns + FALSE. + * elflink.c (elf_link_add_archive_symbols): Likewise. + * pdp11.c (aout_link_check_ar_symbols): Likewise. + * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise. + * xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Likewise. + (xcoff_link_check_ar_symbols): Likewise. + +2016-05-24 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_relocate_section) + : Unify error reporting code. + +2016-05-23 Jim Wilson + + * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and + R_AARCH64_NONE. Use HOWTO64 for R_AARCH64_NULL. + * relocs.c: Add BFD_RELOC_AARCH64_NULL. + * bfd-in2.h: Regenerate. + * libbfd.h: Likewise. + +2016-05-23 Kuba Sejdak + + * config.bfd: Add entry for arm-phoenix. + +2016-05-23 Thomas Preud'homme + + * elf32-arm.c (arm_dedicated_stub_section_padding): New function. + (elf32_arm_size_stubs): Declare stub_type in a more outer scope and + account for padding for stub section requiring one. + (elf32_arm_build_stubs): Add comment to stress the importance of + zeroing veneer section content. + +2016-05-23 Thomas Preud'homme + + * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare + bfd hook. + * bfd-in2.h: Regenerate. + * elf32-arm.c (arm_dedicated_stub_output_section_required): New + function. + (arm_dedicated_stub_output_section_required_alignment): Likewise. + (arm_dedicated_stub_output_section_name): Likewise. + (arm_dedicated_stub_input_section_ptr): Likewise. + (elf32_arm_create_or_find_stub_sec): Add stub type parameter and + function description comment. Add support for dedicated output stub + section to given stub types. + (elf32_arm_add_stub): Add a stub type parameter and pass it down to + elf32_arm_create_or_find_stub_sec. + (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub. + (elf32_arm_size_stubs): Pass stub type when calling + elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers. + (bfd_elf32_arm_keep_private_stub_output_sections): New function. + +2016-05-20 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32 + when setting need_convert_load. + +2016-05-20 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_read_rel_addend): Adjust the addend for + microMIPS JALX. + +2016-05-19 H.J. Lu + + PR ld/20117 + * elf32-i386.c (elf_i386_convert_load_reloc): Don't check + R_386_GOT32X. + (elf_i386_convert_load): Don't convert R_386_GOT32. + +2016-05-20 Alan Modra + + PR gas/20118 + * elf.c (elf_fake_sections): Set sh_entsize for SHT_INIT_ARRAY, + SHT_FINI_ARRAY, and SHT_PREINIT_ARRAY. + +2016-05-19 Cupertino Miranda + + * elf32-arc.c (arc_elf_final_write_processing): Changed. + (debug_arc_reloc): Likewise. + (elf_arc_relocate_section): Likewise. + (elf_arc_check_relocs): Likewise. + (elf_arc_adjust_dynamic_symbol): Likewise. + (elf_arc_add_symbol_hook): Likewise. + +2016-05-19 Maciej W. Rozycki + + * config.bfd: Remove `am34-*-linux*' support. + +2016-05-19 Alan Modra + + * elf64-ppc.c (allocate_dynrelocs): Allocate got and other dynamic + relocs before plt relocs. + +2016-05-19 Alan Modra + + * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner + before dereferencing. + +2016-05-18 Nick Clifton + + * po/sv.po: Updated Swedish translation. + +2016-05-18 Alan Modra + + * elf32-arm.c (elf32_arm_size_stubs): Free or cache local syms + for each BFD. Don't goto error_ret_free_local from outside loop. + +2016-05-17 Maciej W. Rozycki + + * elf-s390-common.c (elf_s390_add_symbol_hook): Remove + STB_GNU_UNIQUE handling. + * elf32-arc.c (elf_arc_add_symbol_hook): Likewise. + * elf32-arm.c (elf32_arm_add_symbol_hook): Likewise. + * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise. + * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise. + * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise. + * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise. + * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise. + * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise. + * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise. + * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Likewise. + * elf32-i386.c (elf_i386_add_symbol_hook): Remove function. + (elf_backend_add_symbol_hook): Remove macro. + * elflink.c (elf_link_add_object_symbols): Set `has_gnu_symbols' + for STB_GNU_UNIQUE symbols. + +2016-05-16 Maciej W. Rozycki + + * elf32-v850.c (v850_elf_copy_notes): New function, factored out + from... + (v850_elf_copy_private_bfd_data): ... here. Call the new + function and `_bfd_elf_copy_private_bfd_data'. + +2016-05-13 H.J. Lu + + PR ld/20093 + * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert + GOTPCREL relocation against large section. + +2016-05-13 Alan Modra + + * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use + linker dynamic sections in calculating size and address of + dynamic tags rather than using output sections. Remove asserts. + * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise. + * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise. + * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise. + * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise. + * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise. + * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise. + * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise. + * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise. + * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise. + * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise. + * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise. + * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise. + * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise. + * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise. + * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise. + * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise. + * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise. + * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise. + * elflink.c (bfd_elf_final_link): Likewise. + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise. + * elfxx-sparc.c (sparc_finish_dyn): Likewise. Adjust error message. + * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and + don't set doit. Look up dynobj section. + (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION + invocation and dynamic tag vma calculation. Don't test + boolean var == TRUE. + * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix + DT_JMPREL calc. + +2016-05-13 Alan Modra + + * elflink.c (elf_link_sort_relocs): Wrap overlong lines. Fix + octets_per_byte. Put dynamic .rela.plt last in link orders. + Assign output_offset for reloc sections rather than writing + sorted relocs from block corresponding to output_offset. + +2016-05-12 Alan Modra + + * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last. + +2016-05-11 Andrew Bennett + + * elfxx-mips.c (print_mips_ases): Add DSPR3. + +2016-05-11 Alan Modra + + * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function. + (elf32_hppa_check_relocs): Don't set dynobj. + (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections. + (elf32_hppa_build_stubs): Likewise. + * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare. + +2016-05-11 Alan Modra + + PR 20060 + * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local. + * elf32-ppc.c (ppc_elf_tls_setup): Likewise. + +2016-05-10 Jiong Wang + + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant + aarch64_tls_transition check. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type + enumerator. + (arm_stub_sym_claimed): New function. + (elf32_arm_create_stub): Use veneered symbol name and section if + veneer needs to claim its symbol, and keep logic unchanged otherwise. + (arm_stub_claim_sym): New function. + (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim + veneered symbol, otherwise create local symbol as before. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_size_stubs): Use new macros + ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get + and set branch type of a symbol. + (bfd_elf32_arm_process_before_allocation): Likewise. + (elf32_arm_relocate_section): Likewise and fix identation along the + way. + (allocate_dynrelocs_for_symbol): Likewise. + (elf32_arm_finish_dynamic_symbol): Likewise. + (elf32_arm_swap_symbol_in): Likewise. + (elf32_arm_swap_symbol_out): Likewise. + +2016-05-10 Thomas Preud'homme + + * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter. + * bfd-in2.h: Regenerated. + * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section + parameter to add_stub_section callback. + (elf32_arm_create_or_find_stub_sec): Get output section from link_sec + and pass it down to add_stub_section. + (elf32_arm_add_stub): Set section to stub_sec if NULL before using it + for error message. + (elf32_arm_size_stubs): Add output section parameter to + add_stub_section function pointer parameter. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_create_stub): New function. + (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation. + +2016-05-10 Thomas Preud'homme + + * elf32-arm.c (enum elf32_arm_stub_type): Delete + arm_stub_a8_veneer_lwm enumerator. + (arm_stub_a8_veneer_lwm): New unsigned constant to replace + aforementioned enumerator. + (struct elf32_arm_stub_hash_entry): Delete target_addend + field and add source_value. + (struct a8_erratum_fix): Delete addend field and add target_offset. + (stub_hash_newfunc): Initialize source_value field amd remove + initialization for target_addend. + (arm_build_one_stub): Stop special casing Thumb relocations: promote + the else to being always executed, moving the + arm_stub_a8_veneer_b_cond specific code in it. Remove + stub_entry->target_addend from points_to computation. + (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset + to target symbol from start of section rather than the offset from the + stub address. + (elf32_arm_size_stubs): Set stub_entry's source_value and target_value + fields from struct a8_erratum_fix's offset and target_offset + respectively. + (make_branch_to_a8_stub): Rename target variable to loc. Compute + veneered_insn_loc and loc using stub_entry's source_value. + +2016-05-10 Thomas Preud'homme + + (elf32_arm_merge_eabi_attributes): Add merging logic for + Tag_DSP_extension. + +2016-05-10 Pip Cet + + PR ld/20059 + * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): + Define as _bfd_generic_copy_link_hash_symbol_type when using + generic hash table. + +2016-05-09 Nick Clifton + + PR binutils/20063 + * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link + field before accessing sections array. + +2016-05-09 Christophe Monat + + PR ld/20030 + * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding. + (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs + to nb_words. + (create_instruction_vldmia): Add is_dp to disambiguate SP/DP + encoding. + (create_instruction_vldmdb): Likewise. + (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding, + uses it to re-encode. + +2016-05-09 Nick Clifton + + PR 19938 + * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental + commit. + +2016-05-09 Alan Modra + + * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check. + +2016-05-06 H.J. Lu + + PR ld/17550 + * elf-bfd.h (elf_link_hash_entry): Update comments for indx, + documenting that indx == -3 if symbol is defined in a discarded + section. + * elflink.c (elf_link_add_object_symbols): Set indx to -3 if + symbol is defined in a discarded section. + (elf_link_output_extsym): Strip a global symbol defined in a + discarded section. + +2016-05-06 H.J. Lu + + * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel + MCU. + +2016-05-05 H.J. Lu + + * elf32-i386.c (elf_i386_convert_load): Extract the GOT load + conversion to ... + (elf_i386_convert_load_reloc): This. New function. + * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load + conversion to ... + (elf_x86_64_convert_load_reloc): This. New function. + +2016-05-05 H.J. Lu + + * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd. + Don't check if contents == NULL. + (elf_i386_tls_transition): Add from_relocate_section. Check + from_relocate_section instead of contents != NULL. Update + elf_i386_check_tls_transition call. + (elf_i386_check_relocs): Cache the section contents if + keep_memory is FALSE. Pass FALSE as from_relocate_section to + elf_i386_tls_transition. + (elf_i386_relocate_section): Pass TRUE as from_relocate_section + to elf_i386_tls_transition. + (elf_backend_caches_rawsize): New. + * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check + if contents == NULL. + (elf_x86_64_tls_transition): Add from_relocate_section. Check + from_relocate_section instead of contents != NULL. + (elf_x86_64_check_relocs): Cache the section contents if + keep_memory is FALSE. Pass FALSE as from_relocate_section to + elf_x86_64_tls_transition. + (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section + to elf_x86_64_tls_transition. + (elf_backend_caches_rawsize): New. + +2016-05-03 Maciej W. Rozycki + + PR 10549 + * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle + STB_GNU_UNIQUE. + +2016-05-03 Jiong Wang + + * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype. + * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise. + * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize + no_apply_dynamic_relocs. + (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though + dynamic relocations generated. + +2016-04-29 H.J. Lu + + * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp + setting to ... + (elf_i386_create_dynamic_sections): Here. + * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move + interp setting to ... + (elf_x86_64_create_dynamic_sections): Here. + +2016-04-29 H.J. Lu + + * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC + and replace (EH)->has_got_reloc with GOT_RELOC. + (elf_i386_fixup_symbol): Pass has_got_reloc to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (elf_i386_convert_load): Pass TRUE to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take + GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC. + (elf_x86_64_fixup_symbol): Pass has_got_reloc to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + (elf_x86_64_allocate_dynrelocs): Likewise. + (elf_x86_64_relocate_section): Likewise. + (elf_x86_64_finish_dynamic_symbol): Likewise. + (elf_x86_64_convert_load): Pass TRUE to + UNDEFINED_WEAK_RESOLVED_TO_ZERO. + +2016-04-29 H.J. Lu + + * elf32-i386.c (check_relocs_failed): New. + (elf_i386_check_relocs): Set check_relocs_failed on error. + (elf_i386_relocate_section): Skip if check_relocs failed. + +2016-04-29 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_check_relocs): Set + check_relocs_failed on error. + +2016-04-29 Nick Clifton + + PR 19938 + * elf-bfd.h (struct elf_backend_data): Rename + elf_backend_set_special_section_info_and_link to + elf_backend_copy_special_section_fields. + * elfxx-target.h: Likewise. + * elf.c (section_match): Ignore the SHF_INFO_LINK flag when + comparing section flags. + (copy_special_section_fields): New function. + (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field. + Perform two scans over special sections. The first one looks for + a direct mapping between the output section and an input section. + The second scan looks for a possible match based upon section + characteristics. + * elf32-arm.c (elf32_arm_copy_special_section_fields): New + function. Handle setting the sh_link field of SHT_ARM_EXIDX + sections. + * elf32-i386.c (elf32_i386_set_special_info_link): Rename to + elf32_i386_copy_solaris_special_section_fields. + * elf32-sparc.c (elf32_sparc_set_special_section_info_link): + Rename to elf32_sparc_copy_solaris_special_section_fields. + * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to + elf64_x86_64_copy_solaris_special_section_fields. + +2016-04-28 Nick Clifton + + * po/zh_CN.po: Updated Chinese (simplified) translation. + +2016-04-27 H.J. Lu + + PR ld/20006 + * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections + when estimating distances between output sections. + +2016-04-27 Alan Modra + + * elflink.c (_bfd_elf_is_start_stop): New function. + (_bfd_elf_gc_mark_rsec): Use it. + * elf-bfd.h (_bfd_elf_is_start_stop): Declare. + +2016-04-26 Trevor Saunders + + * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *. + * mmo.c (mmo_get_section_contents): Likewise. + (mmo_set_section_contents): Likewise. + +2016-04-26 H.J. Lu + + * elf-bfd.h (elf_link_hash_table): Update comments for + dynsymcount. + * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for + the unused NULL entry at the head of dynamic symbol table. + (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0 + checks. + +2016-04-21 H.J. Lu + + * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker + created file from dynobj. + +2016-04-21 H.J. Lu + + * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a + normal input file if possible. + +2016-04-21 Nick Clifton + + * aout-adobe.c: Use _bfd_generic_link_check_relocs. + * aout-target.h: Likewise. + * aout-tic30.c: Likewise. + * binary.c: Likewise. + * bout.c: Likewise. + * coff-alpha.c: Likewise. + * coff-rs6000.c: Likewise. + * coff64-rs6000.c: Likewise. + * coffcode.h: Likewise. + * i386msdos.c: Likewise. + * i386os9k.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * libbfd-in.h: Likewise. + * libecoff.h: Likewise. + * mach-o-target.c: Likewise. + * mmo.c: Likewise. + * nlm-target.h: Likewise. + * oasys.c: Likewise. + * pef.c: Likewise. + * plugin.c: Likewise. + * ppcboot.c: Likewise. + * som.c: Likewise. + * srec.c: Likewise. + * tekhex.c: Likewise. + * versados.c: Likewise. + * vms-alpha.c: Likewise. + * xsym.c: Likewise. + * elfxx-target.h: Use _bfd_elf_link_check_relocs. + * linker.c (bfd_link_check_relocs): New function. + (_bfd_generic_link_check_relocs): New function. + * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of + _bfd_link_check_relocs field. + (struct bfd_target)L Add _bfd_link_check_relocs field. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2016-04-20 H.J. Lu + + * elf32-i386.c (elf_i386_gc_sweep_hook): Removed. + (elf_backend_gc_sweep_hook): Likewise. + * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise. + (elf_backend_gc_sweep_hook): Likewise. + +2016-04-20 H.J. Lu + + * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations + in excluded sections + +2016-04-20 H.J. Lu + + PR ld/19969 + * elf64-x86-64.c (check_relocs_failed): New. + (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs. + Support relocation agaist local symbol. Set check_relocs_failed. + (elf_x86_64_check_relocs): Use elf_x86_64_need_pic. Check + R_X86_64_32 relocation overflow. + (elf_x86_64_relocate_section): Skip if check_relocs failed. + Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic. + +2016-04-20 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Call + _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2016-04-20 H.J. Lu + + * elf-bfd.h (_bfd_elf_link_check_relocs): New. + * elflink.c (_bfd_elf_link_check_relocs): New function. + (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs + if check_relocs_after_open_input is FALSE. + +2016-04-20 Trevor Saunders + + * cache.c: Update old style function definitions. + * elf32-m68k.c: Likewise. + * elf64-mmix.c: Likewise. + * stab-syms.c: Likewise. + +2016-04-20 Trevor Saunders + + * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *. + +2016-04-15 H.J. Lu + + * Makefile.in: Regenerated with automake 1.11.6. + * aclocal.m4: Likewise. + * doc/Makefile.in: Likewise. + +2016-04-14 Andrew Burgess + + * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf32-arc.c: Add 'opcode/arc.h' include. + (struct arc_relocation_data): Add symbol_name. + (arc_special_overflow_checks): New function. + (arc_do_relocation): Use arc_special_overflow_checks, reindent as + required, add an extra comment. + (elf_arc_relocate_section): Setup symbol_name in reloc_data. + +2016-04-14 Andrew Burgess + + * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all + entries. + (elf_arc_relocate_section): Update enum uses. + (elf_arc_check_relocs): Likewise. + (elf_arc_finish_dynamic_symbol): Likewise. + +2016-04-14 H.J. Lu + + * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with + "sh_link". + +2016-04-14 Nick Clifton + + PR target/19938 + * elf-bbfd.h (struct elf_backend_data): New field: + elf_strtab_flags. + New field: elf_backend_set_special_section_info_and_link + * elfxx-target.h (elf_backend_strtab_flags): Define if not already + defined. + (elf_backend_set_special_section_info_and_link): Define if not + already defined. + (elfNN_bed): Use elf_backend_set_special_section_info_and_link and + elf_backend_strtab_flags macros to initialise fields in structure. + * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS + being set even if SHF_MERGE is not set. + (elf_fake_sections): Likewise. + (section_match): New function. Matches two ELF sections based + upon fixed characteristics. + (find_link): New function. Locates a section in a BFD that + matches a section in a different BFD. + (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link + fields of reserved sections. + (bfd_elf_compute_section_file_positions): Set the flags for the + .shstrtab section based upon the elf_strtab_flags field in the + elf_backend_data structure. + (swap_out_syms): Likewise for the .strtab section. + * elflink.c (bfd_elf_final_link): Set the flags for the + .strtab section based upon the elf_strtab_flags field in the + elf_backend_data structure. + * elf32-i386.c (elf32_i386_set_special_info_link): New function. + (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris + targets. + (elf_backend_set_special_section_info_and_link): Define for + Solaris targets. + * elf32-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + +2016-04-11 H.J. Lu + + PR ld/19939 + * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer + to bfd_boolean. + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated. + Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc + applies to read-only section. + * elf32-i386.c (elf_i386_link_hash_table): Add + readonly_dynrelocs_against_ifunc. + (elf_i386_allocate_dynrelocs): Updated. + (elf_i386_size_dynamic_sections): Issue an error for read-only + segment with dynamic IFUNC relocations only if + readonly_dynrelocs_against_ifunc is TRUE. + * elf64-x86-64.c (elf_x86_64_link_hash_table): Add + readonly_dynrelocs_against_ifunc. + (elf_x86_64_allocate_dynrelocs): Updated. + (elf_x86_64_size_dynamic_sections): Issue an error for read-only + segment with dynamic IFUNC relocations only if + readonly_dynrelocs_against_ifunc is TRUE. + * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs): + Updated. + +2016-04-06 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be + a fall through from error_ret_free_internal. Free local_syms in + error_ret_free_local if allocated from bfd_elf_get_elf_syms (). + +2016-04-05 Cupertino Miranda + + * elf32-arc.c (plt_do_relocs_for_symbol): Changed. + (relocate_plt_for_entry): Likewise. + +2016-04-05 Cupertino Miranda + + * elf32-arc.c (elf_arc_check_relocs): Changed + +2016-04-05 Cupertino Miranda + + * elf32-arc.c (name_for_global_symbol): Changed assert. + (get_replace_function): Created.: + (struct arc_relocation_data): Changed to signed types. + (defines S, L, P, PDATA): Casted to signed type. + (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise. + (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed. + (arc_do_relocation): Changed. + +2016-04-05 Cupertino Miranda + + * elf32-arc.c (name_for_global_symbol): Added assert to check for + symbol index. + (elf_arc_relocate_section): Added and changed asserts, validating + the synamic symbol index. + (elf_arc_finish_dynamic_symbol): Do not fill the dynamic + relocation if symbol has dynindx set to -1. + +2016-04-05 Maciej W. Rozycki + + PR ld/19908 + * elflink.c (elf_link_add_object_symbols): Always turn hidden + and internal symbols which have a dynamic index into local + ones. + +2016-04-04 Nick Clifton + + PR 19872 + * dwarf2.c (parse_comp_unit): Skip warning about unrecognised + version number if the version is zero. + +2016-04-01 Alan Modra + + PR 19886 + * elflink.c (on_needed_list): Recursively check needed status. + (elf_link_add_object_symbols): Adjust. + +2016-03-30 Senthil Kumar Selvaraj + + * elf32-avr.c (avr_elf32_load_records_from_section): Free + internal_relocs only if they aren't cached. + +2016-03-29 Nick Clifton + + PR 17334 + * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax + assertion on the size of the got section to allow it to be bigger + than the number of relocs. + +2016-03-29 Toni Spets + + PR 19878 + * coffcode.h (coff_write_object_contents): Revert accidental + 2014-11-10 change. + +2016-03-22 Alan Modra + + PR 19850 + * dwarf2.c (read_attribute_value): Skip info_ptr check for + DW_FORM_flag_present. + +2016-03-22 Nick Clifton + + * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an + architecture name for backwards compatibility. + + * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible + unbounded stack use. + + * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a + sufficiently recent version of GCC. + * configure: Regenerate. + +2016-03-22 Alan Modra + + PR 19851 + * plugin.c (try_load_plugin): Avoid -Wstack-usage warning. + +2016-03-21 Andrew Burgess + + * archures.c (bfd_mach_arc_nps400): Define. + * bfd-in2.h: Regenerate. + * cpu-arc.c (arch_info_struct): New entry for nps400, renumber + some existing entries to make space. + * elf32-arc.c (arc_elf_object_p): Add nps400 case. + (arc_elf_final_write_processing): Likewise. + +2016-03-21 Andrew Burgess + + * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of + EF_ARC_CPU_GENERIC. + (arc_elf_final_write_processing): Don't bother setting cpu field + in e_flags, this will have been set elsewhere. + +2016-03-21 Andrew Burgess + + * elf32-arc.c (arc_elf_final_write_processing): Switch to using + EF_ARC_MACH_MSK. + +2016-03-21 Nick Clifton + + * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144 + * configure: Regenerate. + * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of + alloca with call to xmalloc. + * elf32-nds32.c: Likewise. + * elf64-hppa.c: Likewise. + * elfxx-mips.c: Likewise. + * pef.c: Likewise. + * pei-x86_64.c: Likewise. + * som.c: Likewise. + * xsym.c: Likewise. + +2016-03-15 H.J. Lu + + PR ld/19827 + * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol + locally in PIE. + (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + (elf_x86_64_relocate_section): Likewise. + +2016-03-15 H.J. Lu + + PR ld/19807 + * elf64-x86-64.c (elf_x86_64_relocate_section): Check + no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S + relocation overflow check. + +2016-03-14 H.J. Lu + + * bfd-in2.h: Regenerated. + +2016-03-11 Dan Gissel + + PR 19713 + * elf.c (_bfd_elf_section_offset): Ensure that the returned offset + uses bytes not octets. + * elflink.c (resolve_section): Likewise. + Add a bfd parameter. + (eval_section): Pass the input_bfd to resolve_section. + (bfd_elf_perform_complex_relocation): Convert byte offset to + octets before read and writing values. + (elf_link_input_bfd): Add byte to octet conversions. + (elf_reloc_link_order): Likewise. + (elf_fixup_link_order): Likewise. + (bfd_elf_final_link): Likewise. + * reloc.c (_bfd_final_link_relocate): Likewise. + * syms.c (_bfd_stab_section_find_nearest_line): Likewise. + +2016-03-10 Nick Clifton + + * config.bfd: Mark the i370 target as obsolete. + +2016-03-09 Pedro Alves + + * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old + gcc ABI)" to printable name. + * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead + of "v850-rh850" as printable name. + +2016-03-09 Leon Winter + + PR ld/19623 + * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply + relocations against absolute symbols. + +2016-03-09 Alan Modra + + PR binutils/19775 + * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero + length elements in the archive. + +2016-03-08 H.J. Lu + + PR ld/19789 + * elflink.c (elf_link_add_object_symbols): Create dynamic sections + for -E/--dynamic-list only when not relocatable. + +2016-03-08 H.J. Lu + + PR ld/19784 + * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference + count for locally defined local IFUNC symbols in shared object. + * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. + +2016-03-08 H.J. Lu + + PR ld/19579 + * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking + together. + +2016-03-08 Cupertino Miranda + Andrew Burgess + + * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32. + (arc_bfd_put_32): Becomes an alias for bfd_put_32. + (arc_elf_howto_init): Added assert to validate relocations. + (get_middle_endian_relocation): Delete. + (middle_endian_convert): New function. + (ME): Redefine, now does nothing. + (IS_ME): New define. + (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO' + definition to call middle_endian_convert. Add a new local + variable and make use of this throughout. Added call to + arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations. + +2016-03-07 Nick Clifton + + PR binutils/19775 + * archive.c (bfd_generic_openr_next_archived_file): Allow zero + length elements in the archive. + +2016-03-07 Jiong Wang + + * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got + section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced. + +2016-03-04 H.J. Lu + + PR ld/19579 + * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in + executable as definition if the new definition comes from a + shared library. + +2016-03-02 Alan Modra + + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2016-02-29 Cupertino Miranda + + * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the + relocation addend when sections get merged. + +2016-02-29 Cupertino Miranda + + * elf32-arc.c (arc_elf_final_write_processing): Add condition to + the flag change. + (elf_arc_relocate_section): Fixes and conditions to support PIE. + Assert for code sections dynamic relocs. + +2016-02-26 Renlin Li + + * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow + check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2. + +2016-02-26 H.J. Lu + + PR ld/19609 + * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for + load with locally bound symbols if PIC is false or there is no + base register. Optimize branch to 0 if PIC is false. + (elf_i386_relocate_section): Don't generate dynamic relocations + against undefined weak symbols if PIC is false. + * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization + if we can't estimate relocation overflow with --no-relax. + Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound + symbols if PIC is false. Optimize branch to 0 if PIC is false. + (elf_x86_64_relocate_section): Don't generate dynamic relocations + against undefined weak symbols if PIC is false. + +2016-02-26 H.J. Lu + + PR ld/19645 + * bfd.c (bfd): Change flags to 20 bits. + (BFD_CONVERT_ELF_COMMON): New. + (BFD_USE_ELF_STT_COMMON): Likewise. + (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and + BFD_USE_ELF_STT_COMMON. + (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise. + * configure.ac: Remove --enable-elf-stt-common. + * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for + common symbol depending on BFD_CONVERT_ELF_COMMON and + BFD_USE_ELF_STT_COMMON. + * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for + STT_COMMON. + * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check + STT_COMMON. + (elf_link_convert_common_type): New function. + (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for + common symbol depending on BFD_CONVERT_ELF_COMMON and + BFD_USE_ELF_STT_COMMON. Set sym.st_info after sym.st_shndx. + * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON + and BFD_USE_ELF_STT_COMMON to object_flags. + (TARGET_LITTLE_SYM): Likewise. + * syms.c (BSF_KEEP_G): Renamed to ... + (BSF_ELF_COMMON): This. + * bfd-in2.h: Regenerated. + * config.in: Likewise. + * configure: Likewise. + +2016-02-26 H.J. Lu + + PR ld/19636 + PR ld/19704 + PR ld/19719 + * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. + (elf_i386_link_hash_entry): Add has_got_reloc and + has_non_got_reloc. + (elf_i386_link_hash_table): Add interp. + (elf_i386_link_hash_newfunc): Initialize has_got_reloc and + has_non_got_reloc. + (elf_i386_copy_indirect_symbol): Copy has_got_reloc and + has_non_got_reloc. + (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc. + (elf_i386_fixup_symbol): New function. + (elf_i386_pie_finish_undefweak_symbol): Likewise. + (elf_i386_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. + (elf_i386_size_dynamic_sections): Set interp to .interp section. + (elf_i386_relocate_section): Don't generate dynamic relocations + against resolved undefined weak symbols in PIE, except for + R_386_PC32. + (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without + dynamic PLT/GOT relocations for resolved undefined weak symbols. + Don't generate dynamic relocation against resolved undefined weak + symbol in executable. + (elf_i386_finish_dynamic_sections): Call + elf_i386_pie_finish_undefweak_symbol on all symbols in PIE. + (elf_backend_fixup_symbol): New. + * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. + (elf_x86_64_link_hash_entry): Add has_got_reloc and + has_non_got_reloc. + (elf_x86_64_link_hash_table): Add interp. + (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and + has_non_got_reloc. + (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and + has_non_got_reloc. + (elf_x86_64_check_relocs): Set has_got_reloc and + has_non_got_reloc. + (elf_x86_64_fixup_symbol): New function. + (elf_x86_64_pie_finish_undefweak_symbol): Likewise. + (elf_x86_64_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. + (elf_x86_64_size_dynamic_sections): Set interp to .interp section. + (elf_x86_64_relocate_section): Check relocation overflow for + dynamic relocations against unresolved weak undefined symbols. + Don't generate dynamic relocations against resolved weak + undefined symbols in PIE. + (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without + dynamic PLT/GOT relocations for resolved undefined weak symbols. + Don't generate dynamic relocation against resolved undefined weak + symbol in executable. + (elf_x86_64_finish_dynamic_sections): Call + elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE. + (elf_backend_fixup_symbol): New. + +2016-02-26 Alan Modra + + * elf64-ppc.c (create_linkage_sections): Create sfpr when + save_restore_funcs, rest of sections when not relocatable. + (ppc64_elf_init_stub_bfd): Always call create_linkage_sections. + (sfpr_define): Define all symbols on emitted code. + (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created + when relocatable. Move sfpr_define loop earlier. + +2016-02-24 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_need_pic): New function. + (elf_x86_64_relocate_section): Use it. Replace + x86_64_elf_howto_table[r_type] with howto. + +2016-02-24 H.J. Lu + + PR ld/19698 + * elflink.c (bfd_elf_record_link_assignment): Set versioned if + symbol version is unknown. + +2016-02-24 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset + to (bfd_vma) -1 when setting needs_plt to 0. + * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. + +2016-02-23 H.J. Lu + + * elflink.c (bfd_elf_record_link_assignment): Check for shared + library, instead of PIC, and don't check PDE when making linker + assigned symbol dynamic. + +2016-02-23 Faraz Shahbazker + + * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment + ABIVERSION for non-executable stack. + +2016-02-23 Rich Felker + + PR target/19516 + * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): + Always produce a RELATIVE reloc for a local symbol. + +2016-02-23 Hans-Peter Nilsson + + Fix test-case ld-elf/pr19617b + * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't + discard unused non-function symbols when --dynamic-list-data. + +2016-02-22 H.J. Lu + + * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the + dynsym section, even if it is empty, with dynamic sections. + +2016-02-22 H.J. Lu + + * syms.c: Remove BSF_COMMON from comments. + * bfd-in2.h: Regenerated. + +2016-02-22 Jiong Wang + + * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation + for destination. Remove useless function parameters. + (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub. + +2016-02-19 Nick Clifton + + PR ld/19629 + * aoutx.h (aout_link_add_symbols): Check for out of range string + table offsets. + + PR ld/19628 + * reloc.c (bfd_generic_get_relocated_section_contents): Stop + processing if we encounter a reloc without an associated symbol. + +2016-02-18 H.J. Lu + + PR ld/19617 + * elflink.c (elf_link_add_object_symbols): Always create dynamic + sections for -E/--dynamic-list. + +2016-02-17 H.J. Lu + + * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined + to bfd_true. + +2016-02-16 Joseph Myers + + * plugin.c (plugin_vec): Set match priority to 255. + * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When + matching against the plugin vector, take priority from there not + from TEMP. + +2016-02-15 Nick Clifton + + * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values + for length and type fields. Use a signed value for the + suffix_length field. + +2016-02-10 H.J. Lu + + PR ld/19601 + * elf32-i386.c (elf_i386_relocate_section): Mask off the least + significant bit in GOT offset for R_386_GOT32X. + +2016-02-10 Nick Clifton + + PR 19405 + * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed + immediate values. + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the + number of messages about FDE encoding preventing .eh_frame_hdr + generation. + +2016-02-09 Nick Clifton + + * oasys.c (oasys_archive_p): Fix indentation. + * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned + constant for left shifting. + + * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more + helpful warning message to explain why certain AArch64 relocs + might overflow. + +2016-02-05 Simon Marchi + + * pe-mips.c (coff_mips_reloc): Fix formatting. + +2016-02-05 Cupertino Miranda + + * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2 + to bfd_mach_arc_arc600. + +2016-02-04 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch + for big-endian. + +2016-02-02 H.J. Lu + + PR ld/19542 + * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated + distances in the compressed_size field of the output section. + +2016-02-02 Alan Modra + + * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict + ELFv2 entry optimization. + +2016-02-02 H.J. Lu + + PR binutils/19547 + * elf.c (assign_section_numbers): Clear HAS_RELOC if there are + no relocations in relocatable files. + +2016-02-01 H.J. Lu + + PR ld/19553 + * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED + if a symbol from a library loaded via DT_NEEDED doesn't match + the symbol referenced by regular object. + +2016-02-01 Nathaniel Smith + + * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both + CODE and DATA. + +2016-02-01 Alan Modra + + * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on + an out of range reloc_index. + * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise. + +2016-02-01 Kamil Rytarowski + + * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo. + (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c. + * Makefile.in: Regenerated. + +2016-02-01 Jan Kratochvil + + * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation. + +2016-01-31 John David Anglin + + PR ld/19526 + * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output + files. + * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval. + +2016-01-30 H.J. Lu + + PR ld/19539 + * elf32-i386.c (elf_i386_reloc_type_class): Check relocation + against STT_GNU_IFUNC symbol only with dynamic symbols. + * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise. + +2016-01-28 H.J. Lu + + PR binutils/19523 + * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to + decompress debug sections. + +2016-01-25 Maciej W. Rozycki + + * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to + `dynindx'. + +2016-01-25 Nick Clifton + + PR target/19435 + * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free + dsym filename buffer. + +2016-01-24 Maciej W. Rozycki + + * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation. + +2016-01-24 Maciej W. Rozycki + + * elfxx-mips.c (BZ16_REG): Correct calculation. + +2016-01-21 Nick Clifton + + * elf32-arc.c (ADD_RELA): Fix compile time warning errors by + changing the type of _loc to be bfd_byte *. + (elf_arc_finish_dynamic_symbol): Likewise. + +2016-01-21 Nick Clifton + + PR ld/19455 + * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF + class of the linker stub bfd. + (elf32_arm_check_relocs): Skip check for pic format after + processing a vxWorks R_ARM_ABS12 reloc. + * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when + reporting a class mismatch. + +2016-01-21 Jiong Wang + + * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch + veneer for sym_sec != input_sec. + (elfNN_aarch64_size_stub): Support STT_SECTION symbol. + (elfNN_aarch64_final_link_relocate): Take rela addend into account when + calculation destination. + +2016-01-21 Alan Modra + + * elf-linux-core.h (swap_linux_prpsinfo32_out): New function. + (swap_linux_prpsinfo64_out): New function. + (LINUX_PRPSINFO32_SWAP_FIELDS): Delete. + (LINUX_PRPSINFO64_SWAP_FIELDS): Delete. + * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset. + (elfcore_write_linux_prpsinfo64): Likewise. + * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function. + (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete. + (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset. + +2016-01-21 Alan Modra + + * elf-linux-core.h: Rename from elf-linux-psinfo.h. + * elf.c: Adjust #include. + * elf32-ppc.c: Don't #include elf-linux-psinfo.h + * Makefile.am (SOURCE_HFILES): Update. + * Makefile.in: Regenerate. + * po/SRC-PORFILES.in: Regenerate. + +2016-01-21 Alan Modra + + * configure.ac: Move corefile selection later in file. Move + tdefaults code immediately after other target vector code. + * configure: Regenerate. + +2016-01-20 Mickael Guene + + * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread + section using '.text.noread' pattern. + +2016-01-19 John Baldwin + + * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes. + +2016-01-18 Miranda Cupertino + Zissulescu Claudiu + + * arc-plt.def: New file. + * arc-plt.h: Likewise. + * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry, + elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry, + elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry, + elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove. + (name_for_global_symbol): Added. + (ADD_RELA): Helper to create dynamic relocs. + (new_got_entry_to_list): Create a new got entry in linked list. + (symbol_has_entry_of_type): Search for specific type of entry in + list. + (is_reloc_for_GOT): return FALSE for any TLS related relocs. + (is_reloc_for_TLS, arc_elf_set_private_flags) + (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data) + (arc_elf_merge_private_bfd_data): New functions. + (debug_arc_reloc): Cleaned debug info printing. + (PDATA reloc): Changed not to perform address alignment. + (reverse_me): Added. Fix for ARC_32 relocs. + (arc_do_relocation): Return bfd_reloc_of when no relocation should + occur. + (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets. + Changed function to access an array of list of GOT entries instead + of just an array of offsets. + (elf_arc_relocate_section): Added support for PIC and TLS related relocations. + (elf_arc_check_relocs): Likewise. + (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol, + (elf_arc_finish_dynamic_sections): Likewise + (arc_create_dynamic_sections): Modified conditions to create + dynamic sections. + (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro. + (plt_do_relocs_for_symbol, relocate_plt_for_symbol) + (relocate_plt_for_entry): Changed to support new way to define PLT + related code. + (add_symbol_to_plt): Likewise. + (arc_elf_link_hash_table_create): New function. + +2016-01-18 Nick Clifton + + PR ld/19440 + * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external + section number into internal section number. + * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise. + * coffswap.h (coff_swap_sym_in): Likewise. + * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise. + * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal + section number field is big enough to hold the external value. + +2016-01-17 Alan Modra + + * configure: Regenerate. + +2016-01-12 Yury Usishchev + + * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind + when address in first unwind entry does not match start of + section. + +2016-01-08 Richard Sandiford + Jiong Wang + + PR ld/19368 + * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to + reloc_class_ifunc. + +2016-01-06 Andrew Burgess + + * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to + place 'R_' before the reloc name returned. + (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before + the relocation string. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function, + factored out from... + (_bfd_mips_elf_merge_private_bfd_data): ... here. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move + attribute check after ELF file header flag check. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the + return status from `_bfd_elf_merge_object_attributes'. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function, + factored out from... + (_bfd_mips_elf_merge_private_bfd_data): ... here. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the + handling of input MIPS ABI flags together. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress + attribute checks for null input. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local + pointers to target data. + +2016-01-04 Maciej W. Rozycki + + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct + an FP ABI warning. + +2016-01-01 Alan Modra + + Update year range in copyright notice of all files. + +For older changes see ChangeLog-2015 and doc/ChangeLog-0415 + +Copyright (C) 2016 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: -- cgit v1.1