Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / elf64-x86-64.c
index 76f09bd4ceb42efe3f5c37d55f74ddfa5d3278ab..2e21899f0e5c91d96284836ec22296fd8754e159 100644 (file)
@@ -4693,10 +4693,17 @@ do_ifunc_pointer:
             symbols it's the symbol itself relative to GOT.  */
          if (h != NULL
              /* See PLT32 handling.  */
-             && h->plt.offset != (bfd_vma) -1
+             && (h->plt.offset != (bfd_vma) -1
+                 || eh->plt_got.offset != (bfd_vma) -1)
              && htab->elf.splt != NULL)
            {
-             if (htab->plt_bnd != NULL)
+             if (eh->plt_got.offset != (bfd_vma) -1)
+               {
+                 /* Use the GOT PLT.  */
+                 resolved_plt = htab->plt_got;
+                 plt_offset = eh->plt_got.offset;
+               }
+             else if (htab->plt_bnd != NULL)
                {
                  resolved_plt = htab->plt_bnd;
                  plt_offset = eh->plt_bnd.offset;
@@ -6207,21 +6214,6 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
              dyn.d_un.d_val = s->size;
              break;
 
-           case DT_RELASZ:
-             /* The procedure linkage table relocs (DT_JMPREL) should
-                not be included in the overall relocs (DT_RELA).
-                Therefore, we override the DT_RELASZ entry here to
-                make it not include the JMPREL relocs.  Since the
-                linker script arranges for .rela.plt to follow all
-                other relocation sections, we don't have to worry
-                about changing the DT_RELA entry.  */
-             if (htab->elf.srelplt != NULL)
-               {
-                 s = htab->elf.srelplt->output_section;
-                 dyn.d_un.d_val -= s->size;
-               }
-             break;
-
            case DT_TLSDESC_PLT:
              s = htab->elf.splt;
              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
@@ -6751,6 +6743,7 @@ static const struct bfd_elf_special_section
 #define elf_backend_plt_alignment           4
 #define elf_backend_extern_protected_data   1
 #define elf_backend_caches_rawsize         1
+#define elf_backend_dtrel_excludes_plt     1
 
 #define elf_info_to_howto                  elf_x86_64_info_to_howto
 
This page took 0.023902 seconds and 4 git commands to generate.