s390: Add DT_JMPREL pointing to .rela.[i]plt with static-pie
[binutils-gdb.git] / bfd / ecoff.c
index 7539fadbeca62fab598d532232b4cfb9f89d45c4..d2081055835613eecaa3638318abc60cfee37650 100644 (file)
@@ -1,5 +1,5 @@
 /* Generic ECOFF (Extended-COFF) routines.
-   Copyright (C) 1990-2021 Free Software Foundation, Inc.
+   Copyright (C) 1990-2022 Free Software Foundation, Inc.
    Original version by Per Bothner.
    Full support added by Ian Lance Taylor, ian@cygnus.com.
 
@@ -1606,7 +1606,7 @@ ecoff_slurp_reloc_table (bfd *abfd,
       (*backend->swap_reloc_in) (abfd,
                                 external_relocs + i * external_reloc_size,
                                 &intern);
-      rptr->sym_ptr_ptr = NULL;
+      rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       rptr->addend = 0;
 
       if (intern.r_extern)
@@ -1617,9 +1617,6 @@ ecoff_slurp_reloc_table (bfd *abfd,
                  < (ecoff_data (abfd)->debug_info.symbolic_header.iextMax)))
            rptr->sym_ptr_ptr = symbols + intern.r_symndx;
        }
-      else if (intern.r_symndx == RELOC_SECTION_NONE
-              || intern.r_symndx == RELOC_SECTION_ABS)
-       rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       else
        {
          const char *sec_name;
@@ -3642,7 +3639,9 @@ ecoff_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
          hash = srch;
        }
 
-      element = (*backend->get_elt_at_filepos) (abfd, (file_ptr) file_offset);
+      element = (*backend->get_elt_at_filepos) (abfd,
+                                               (file_ptr) file_offset,
+                                               info);
       if (element == NULL)
        return false;