diff -Nur binutils-2.35.orig/bfd/elf32-cris.c binutils-2.35/bfd/elf32-cris.c --- binutils-2.35.orig/bfd/elf32-cris.c 2020-07-24 11:12:19.000000000 +0200 +++ binutils-2.35/bfd/elf32-cris.c 2020-09-07 10:56:01.075626508 +0200 @@ -1021,7 +1021,6 @@ bfd_reloc_status_type r; const char *symname = NULL; enum elf_cris_reloc_type r_type; - bfd_boolean resolved_to_zero; r_type = ELF32_R_TYPE (rel->r_info); @@ -1134,9 +1133,6 @@ if (bfd_link_relocatable (info)) continue; - resolved_to_zero = (h != NULL - && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)); - switch (r_type) { case R_CRIS_16_GOTPLT: @@ -1439,7 +1435,6 @@ case R_CRIS_16: case R_CRIS_32: if (bfd_link_pic (info) - && !resolved_to_zero && r_symndx != STN_UNDEF && (input_section->flags & SEC_ALLOC) != 0 && ((r_type != R_CRIS_8_PCREL @@ -3357,8 +3352,7 @@ render the symbol local. */ /* No need to do anything if we're not creating a shared object. */ - if (! bfd_link_pic (info) - || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)) + if (! bfd_link_pic (info)) break; /* We may need to create a reloc section in the dynobj and made room