X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=7326ecd4a95c2d6376f2bc02e23e94f5ad295658;hb=e47d628fad1517ff91e8d66eb4609d84c35a2b1c;hp=694acbd6d44c8f2691160af561b46980f0a843ca;hpb=2ac27cd3c16ad828f96991f8f7b83a4bc10cae6c;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 694acbd6d4..7326ecd4a9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,780 @@ +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.