X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=f67db84c21238fd89351e45ec2dd7d761e3abfe8;hb=a6a4679fc0ad12e99e0d8374752ecce9ef097ec2;hp=2a32a6f0d9137cd6f9c5d5e017d9419d0040979e;hpb=0f550b3df1d4ae31d12505cf93981313c9c6dd25;p=binutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2a32a6f0d91..f67db84c212 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,593 @@ +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 + + * 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