X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2FChangeLog;h=eb702c295c9afdb6a4d47aa18f7410528cad4640;hb=4b0c052e456421a3c6d7b4c98be3ad0b3bd2ad27;hp=88c663c19a3235e26941bf95f253ec7250b4b4a6;hpb=6f57d0469ae5e73643aa5ef96a10e6bae7a79a15;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 88c663c19a..eb702c295c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,580 @@ +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 + + * 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.