[GOLD] Power10 segv due to wild r2
[binutils-gdb.git] / bfd / ChangeLog
index bae3449fbe87dfe521f67b3cd3ee239aaf114f2f..3ff3b1e23959c1982b70fadb6a99d2da080ec3da 100644 (file)
@@ -1,5 +1,462 @@
+2020-10-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't do local
+       entry offset optimisation.
+
+2020-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/26703
+       * elf-linker-x86.h (elf_linker_x86_params): Add isa_level.
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge
+       GNU_PROPERTY_X86_ISA_1_V[234].
+       (_bfd_x86_elf_link_setup_gnu_properties): Generate
+       GNU_PROPERTY_X86_ISA_1_V[234] for -z x86-64-v[234].
+
+2020-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26711
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge -z ibt
+       and -z shstk only with GNU_PROPERTY_X86_FEATURE_1_AND.
+
+2020-10-06  Brandon Bergren  <bdragon@FreeBSD.org>
+
+       * config.bfd: Add powerpc64le-*-freebsd*.
+       * configure.ac: Add powerpc_elf64_fbsd_le_vec.
+       * elf64-ppc.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define for
+       freebsd.
+       * targets.c (powerpc_elf64_fbsd_le_vec): Declare.
+       (_bfd_target_vector): Add it.
+       * configure: Regenerate.
+
+2020-10-05  Kamil Rytarowski  <n54@gmx.com>
+
+       * config.bfd (aarch64-*-netbsd*, aarch64_be-*-netbsd*): Add target.
+
+2020-10-05  Nick Clifton  <nickc@redhat.com>
+
+       PR 26253
+       * elf.c (_bfd_elf_setup_sections): Do not complain about an
+       sh_link value of zero when the SLF_LINK_ORDER flag is set.
+       (assign_section_numbers): Likewise.
+
+2020-10-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 26681
+       * elflink.c (bfd_elf_gc_sections): Do not arbitrarily keep note
+       sections which are linked to another section.
+
+2020-09-28  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * cpu-arm.c: (processors) Add Cortex-X1.
+
+2020-09-28  Alan Modra  <amodra@gmail.com>
+
+       PR 26656
+       * elf64-ppc.c (ppc_build_one_stub, ppc_size_one_stub): Check for
+       NULL stub_entry->h before calling is_tls_get_addr.
+
+2020-09-26  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Depend on has_plt_localentry0.
+       (LD_R0_0R11, ADD_R11_R0_R11): Define.
+       (ppc64_elf_tls_setup): Disable params->plt_localentry0 when power10
+       code detected.
+       (ppc64_elf_size_stubs): Update __glink_PLTresolve eh_frame.
+       (ppc64_elf_build_stubs): Move r2 save to start of __glink_PLTresolve,
+       and only emit for has_plt_localentry0.  Don't use r2 in the stub.
+
+2020-09-24  Alan Modra  <amodra@gmail.com>
+
+       PR 26656
+       * elf64-ppc.c (plt_stub_size): Add "odd" param.  Use it with
+       size_power10_offset rather than calculating from start of stub.
+       Add size for notoc tls_get_addr_opt stub.
+       (plt_stub_pad): Add "odd" param, pass to plt_stub_size.
+       (build_tls_get_addr_head, build_tls_get_addr_tail): New functions.
+       (build_tls_get_addr_stub): Delete.
+       (ppc_build_one_stub): Use a temp for htab->params->stub_bfd.
+       Emit notoc tls_get_addr_opt stub.  Move eh_frame code to
+       suit.  Adjust code to use bfd_tls_get_addr_head/tail in place
+       of build_tls_get_addr_stub.
+       (ppc_size_one_stub): Size notoc tls_get_addr_opt stub.
+       Adjust plt_stub_size and plt_stub_pad calls.  Correct "odd"
+       when padding stub.  Size eh_frame for notoc stub too.
+       Correct lr_restore value.
+       (ppc64_elf_relocate_section): Don't skip over first insn of
+       notoc tls_get_addr_opt stub.
+
+2020-09-24  Alan Modra  <amodra@gmail.com>
+
+       PR 26655
+       * elf64-ppc.c (ppc64_elf_func_desc_adjust): Rename to..
+       (ppc64_elf_edit): Call params->edit.
+       (ppc64_elf_tls_setup): Don't call _bfd_elf_tls_setup.  Return a
+       bfd_boolean.
+       * elf64-ppc.h (struct ppc64_elf_params): Add "edit".
+       (ppc64_elf_tls_setup): Update declaration.
+
+2020-09-21  Alan Modra  <amodra@gmail.com>
+
+       PR 26569
+       * elfxx-riscv.c (howto_table): Correct size and bitsize of
+       R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, and R_RISCV_RVC_LUI.
+       Correct size for R_RISCV_TLS_DTPMOD32, R_RISCV_TLS_DTPREL32,
+       R_RISCV_CALL, and R_RISCV_CALL_PLT.  Make R_RISCV_TPREL_ADD and
+       R_RISCV_ALIGN like R_RISCV_NONE.  Correct dst_mask many relocs.
+
+2020-09-17  Mikael Pettersson  <mikpelinux@gmail.com>
+
+       PR ld/18808
+       * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Skip IFUNC
+       relocations in debug sections, change abort to _bfd_error_handler.
+
+2020-09-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26583
+       * config.bfd (targ64_selvecs, targ_selvecs): Add x86_64_pe_vec
+       to x86_64_pei_vec.
+       * reloc.c: Include "coff/internal.h".
+       (bfd_perform_relocation): Adjust relocation for PE/x86-64 inputs.
+
+2020-09-16  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (elf_symbol_from): Remove unused ABFD parameter.
+       * elf.c (ignore_section_sym, _bfd_elf_copy_private_symbol_data),
+       (swap_out_syms): Adjust elf_symbol_from invocation.
+
+2020-09-16  Alan Modra  <amodra@gmail.com>
+
+       PR 26623
+       * elf-bfd.h (elf_symbol_from): Exclude synthetic symbols.
+
+2020-09-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * coff-x86_64.c (howto_table): Display PE relocation names.
+
+2020-09-15  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR ld/26589
+       * elf32-cris.c (cris_elf_check_relocs): Add missing NULL check
+       on argument before calling UNDEFWEAK_NO_DYNAMIC_RELOC.
+
+2020-09-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/26391
+       * elflink.c (elf_final_link_info): Add local_hash_table.
+       (local_hash_entry): New.
+       (local_hash_newfunc): Likewise.
+       (elf_link_output_symstrtab): Append ".COUNT" to duplicated local
+       symbols.
+       (bfd_elf_final_link): Initialize and free local_hash_table for
+       "-z unique-symbol".
+
+2020-09-10  Siddhesh Poyarekar  <siddesh.poyarekar@arm.com>
+
+       * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Revert
+       changes in 7e05773767820b441b23a16628b55c98cb1aef46.  Set
+       error for undefined symbol in BFD_RELOC_AARCH64_BRANCH19 and
+       BFD_RELOC_AARCH64_TSTBR14 relocations.
+
+2020-09-09  Nick Clifton  <nickc@redhat.com>
+
+       * cofflink.c (coff_link_check_archive_element): Move the check for
+       coff type input to the start of the function.
+
+2020-09-09  Alan Modra  <amodra@gmail.com>
+
+       * libbfd-in.h (_bfd_write_unsigned_leb128): Declare.
+       * libbfd.h: Regenerate.
+
+2020-09-08  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+           Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+       * bfd-in2.h (bfd_reloc_code_real): Add
+       BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+       * elf32-msp430.c (msp430_elf_ignore_reloc): New.
+       (elf_msp430_howto_table): Add R_MSP430{,X}_GNU_{SET,SUB}_ULEB128.
+       (msp430_reloc_map): Add R_MSP430_GNU_{SET,SUB}_ULEB128.
+       (msp430x_reloc_map): Add R_MSP430X_GNU_{SET,SUB}_ULEB128.
+       (write_uleb128): New.
+       (msp430_final_link_relocate): Handle R_MSP430{,X}_GNU_{SET,SUB}_ULEB128.
+       * libbfd.c (_bfd_write_unsigned_leb128): New.
+       * libbfd.h (_bfd_write_unsigned_leb128): New prototype.
+       Add BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+       * reloc.c: Document BFD_RELOC_MSP430_{SET,SUB}_ULEB128.
+
+2020-09-08  Alex Coplan  <alex.coplan@arm.com>
+
+       * archures.c (bfd_mach_aarch64_8R): New.
+       * bfd-in2.h: Regenerate.
+       * cpu-aarch64.c (bfd_aarch64_arch_v8_r): New.
+       (bfd_aarch64_arch_ilp32): Update tail pointer.
+
+2020-09-08  Alan Modra  <amodra@gmail.com>
+
+       PR 13250
+       PR 26580
+       * elflink.c (_bfd_elf_merge_symbol): Make "override" a bfd**.
+       Return oldbfd in override when old common should override new
+       common.
+       (_bfd_elf_add_default_symbol): Adjust to suit.
+       (elf_link_add_object_symbols): Likewise.  Pass "override" to
+       _bfd_generic_link_add_one_symbol.  Save and restore common u.c.p
+       field for --as-needed shared libraries.  Revert pr13250 changes.
+
+2020-09-08  Nick Clifton  <nickc@redhat.com>
+
+       * plugin.c (bfd_plugin_canonicalize_symtab): Handle the case of an
+       unrecognized symbol type in a weak definition.
+
+2020-09-04  Alan Modra  <amodra@gmail.com>
+
+       PR 26574
+       * elfcode.h (elf_object_p): Sanity check section header offset.
+       * elf.c (_bfd_elf_slurp_secondary_reloc_section): Sanity check
+       sh_entsize.
+
+2020-09-04  Alan Modra  <amodra@gmail.com>
+
+       PR 15146
+       PR 26314
+       PR 26530
+       * elflink.c (elf_link_add_object_symbols): Do set def_regular
+       and ref_regular for IR symbols.  Don't clear dynsym, allowing
+       IR symbols to load --as-needed shared libraries, but prevent
+       IR symbols from becoming dynamic.
+
+2020-09-03  Nick Clifton  <nickc@redhat.com>
+
+       PR 26521
+       * elf.c (_bfd_elf_write_secondary_reloc_section): Check for
+       secondary reloc sections with a zero sh_entsize field.
+
+2020-09-03  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (riscv_i_or_e_p): Minor cleanup for warnings/errors.
+       (riscv_merge_std_ext): Likewise.
+       (riscv_merge_arch_attr_info): Likewise.
+       (riscv_merge_attributes): Likewise and fix comment typos.
+
+2020-09-03  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (riscv_version_mismatch): Change the return type
+       from void to bfd_boolean.  Report warnings rather than errors
+       when the ISA versions are mis-matched.  Afterwards, remember to
+       update the output ISA versions to the newest ones.
+       (riscv_merge_std_ext): Allow to link objects with different
+       standard ISA versions.  Try to add output ISA versions to
+       merged_subsets first.
+       (riscv_merge_multi_letter_ext): Likewise.  But for standard additional
+       ISA and non-standard ISA versions.
+
+2020-09-03  Kito Cheng  <kito.cheng@sifive.com>
+
+       * elfnn-riscv.c (riscv_merge_std_ext): Fix to report the correct
+       error message when the versions of extension are mis-matched.
+       * elfxx-riscv.c (riscv_parse_subset): Don't issue the error when
+       the string is empty.
+
+2020-09-03  Alan Modra  <amodra@gmail.com>
+
+       * xcofflink.c (xcoff_get_archive_info): Allocate xcoff_archive_info
+       on the output bfd objalloc memory.
+
+2020-09-02  Alan Modra  <amodra@gmail.com>
+
+       * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Correct type
+       of constant shifted left.
+
+2020-09-02  Alan Modra  <amodra@gmail.com>
+
+       * elf32-pru.c (pru_elf32_do_ldi32_relocate): Use an unsigned
+       type for "relocation".
+
+2020-09-01  Alan Modra  <amodra@gmail.com>
+
+       * reloc.c (N_ONES): Handle N=0.
+       * elf32-arm.c (elf32_arm_howto_table_1): Set complain_overflow_dont
+       for R_ARM_TLS_DESCSEQ and R_ARM_THM_TLS_DESCSEQ.
+
+2020-09-01  Alan Modra  <amodra@gmail.com>
+
+       PR 26429
+       * elf32-arm.c (elf32_arm_allocate_local_sym_info): Allocate arrays
+       in descending order of alignment.
+
+2020-09-01  Alan Modra  <amodra@gmail.com>
+
+       PR 26423
+       * elf32-arm.c (calculate_group_reloc_mask): Use 3u in shift.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26493
+       * elfnn-riscv.c (riscv_make_plt_header): Cast PLT_HEADER_SIZE to
+       unsigned when using with RISCV_ITYPE.
+       (_bfd_riscv_relax_call): Use an unsigned foff.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26476
+       PR 26477
+       * elfxx-mips.c (CRINFO_CTYPE, CRINFO_RTYPE, CRINFO_DIST2TO),
+       (CRINFO_RELVADDR): Make unsigned.
+       (mips_elf_nullify_got_load): Use unsigned constant when shifting
+       into sign bit.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26466
+       * mep-relocs.pl (emit_apply): Handle HI16S adjustment.  Use "u"
+       variable and rewrite signed overflow check.
+       * elf32-mep.c: Regenerate.
+       (mep_final_link_relocate): Delete "s".
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26461
+       * elfxx-ia64.c (ia64_elf_install_value): Make expressions unsigned
+       that might shift values into sign bit.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26445
+       * elf32-csky.c (csky_relocate_contents): Make relocation a bfd_vma,
+       and similarly for variables dealing with overflow.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26442
+       * elf32-crx.c (crx_elf_final_link_relocate): Calculate reloc_bits
+       without undefined behaviour.  Tidy excess casts.
+
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       * elf-m10300.c (mn10300_elf_relax_delete_bytes): Calculate
+       alignment from reloc addend after reloc type R_MN10300_ALIGN is
+       found.
+
+2020-08-30  Alan Modra  <amodra@gmail.com>
+
+       PR 26435
+       PR 26436
+       * elf32-cr16.c (cr16_elf_final_link_relocate): Calculate reloc_bits
+       without undefined behaviour.
+
+2020-08-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 26520
+       * dwarf2.c (scan_unit_for_symbols): Add member entries to the
+       variable table.
+
+2020-08-29  Alan Modra  <amodra@gmail.com>
+
+       PR 26459
+       * elfnn-ia64.c (get_dyn_sym_info): Don't bsearch or look at last
+       element when count is zero.  bfd_realloc when shrinking.
+
+2020-08-28  Alan Modra  <amodra@gmail.com>
+
+       PR 26418
+       * ecofflink.c (bfd_ecoff_write_accumulated_debug): Don't write
+       zero size buffers.
+
+2020-08-28  Alan Modra  <amodra@gmail.com>
+
+       PR 26418
+       * ecofflink.c (WRITE): Really don't write zero size chunks.
+
+2020-08-28  Tuckker  <tuckkern+sourceware@gmail.com>
+
+       PR 26543
+       * linker.c (bfd_generic_define_common_symbol): Force the alignment
+       to 1 if the section has now alignment requirement.
+
+2020-08-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
+
+       * elf32-csky.c (csky_archs): Fix arch names.
+       (csky_find_arch_with_name): New.
+       (elf32_csky_merge_attributes): New.
+       (csky_elf_merge_private_bfd_data): Add process of merge
+       attribute section.
+       (elf32_csky_obj_attrs_arg_type): New.
+       (elf32_csky_obj_attrs_handle_unknown): New.
+       (elf_backend_obj_attrs_vendor): Define.
+       (elf_backend_obj_attrs_section): Define.
+       (elf_backend_obj_attrs_arg_type): Define.
+       (elf_backend_obj_attrs_section_type): Define.
+
+2020-08-28  Nick Clifton  <nickc@redhat.com>
+
+       PR19011
+       * cofflink.c (_bfd_coff_generic_relocate_section): Provide a value
+       for undefined symbols which will not generate extra warning
+       messages about truncated relocs.
+
+2020-08-28  Nelson Chu  <nelson.chu@sifive.com>
+
+       * elfnn-riscv.c (riscv_elf_check_relocs): Treat R_RISCV_CALL
+       and R_RISCV_CALL_PLT as the same in the riscv_elf_check_relocs.
+       (riscv_elf_relocate_section): Remove the R_RISCV_CALL for the
+       unresolved reloc checks.
+
+2020-08-27  John David Anglin  <danglin@gcc.gnu.org>
+
+       PR 26356
+       * som.c (som_bfd_copy_private_section_data): Issue error when a
+       subspace is specified without its containing space.
+
+2020-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR 26469
+       * elflink.c: Include limits.h.
+       (CHAR_BIT): Provide fallback define.
+       (set_symbol_value): Correct complex reloc comment.
+       (undefined_reference): Set bfd_error.
+       (BINARY_OP_HEAD, BINARY_OP_TAIL): Split out from..
+       (BINARY_OP): ..this.
+       (eval_symbol): Limit shifts.  Force unsigned for left shift.
+       Catch divide by zero.
+       * configure.ac (AC_CHECK_HEADERS): Combine, sort and add limits.h.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+2020-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR 26462
+       * reloc.c (bfd_check_overflow): Return early if zero bitsize.
+
+2020-08-27  Alan Modra  <amodra@gmail.com>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Don't segfault
+       on sym_sec not being output.
+
+2020-08-27  Alan Modra  <amodra@gmail.com>
+
+       PR 26416
+       * elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Correct "dynamic".
+
 2020-08-26  Nick Clifton  <nickc@redhat.com>
 
+       PR 26433
+       * elf32-avr.c (avr_final_link_relocate):  Fix undefined shift
+       behaviour.
+       (avr_elf32_load_records_from_section): Use bfd_get_16 and
+       bfd_get_32 to load values from potentially unaligned pointers.
+
+       PR 26416
+       * elf64-alpha.c (elf64_alpha_relax_tls_get_addr): Test for and
+       ignore local symbols.
+       (elf64_alpha_relax_got_load): Do not check for local dynamic
+       symbols.
+       (OP_LDA, OP_LDAH, OP_LDQ, OP_BR, OP_BSR): Use unsigned constant
+       values.
+       (INSN_A) Cast the A parameter to unsigned.
+       (INSN_AB): Define in terms of INSN_A.
+       (INSN_ABC): Likewise.
+       (INSN_ABO): Likewise.
+       (INSN_AD): Likewise.
+
        PR 26411
        * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Use an
        unsigned long constant when creating a mask to test for alignment