* elf-bfd.h (struct elf_backend_data): Add rela_normal.
[deliverable/binutils-gdb.git] / bfd / elf64-s390.c
index c4c3c1df1b609237efc57c4a73237fc8760912a6..ceb5efa086777d69b61e18cb161479deef728b7c 100644 (file)
@@ -1587,6 +1587,9 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
 
+  if (info->relocateable)
+    return true;
+
   htab = elf_s390_hash_table (info);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -1616,30 +1619,9 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
          bfd_set_error (bfd_error_bad_value);
          return false;
        }
-      howto = elf_howto_table + r_type;
 
+      howto = elf_howto_table + r_type;
       r_symndx = ELF64_R_SYM (rel->r_info);
-
-      if (info->relocateable)
-       {
-         /* This is a relocateable link.  We don't have to change
-            anything, unless the reloc is against a section symbol,
-            in which case we have to adjust according to where the
-            section symbol winds up in the output section.  */
-         if (r_symndx < symtab_hdr->sh_info)
-           {
-             sym = local_syms + r_symndx;
-             if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-               {
-                 sec = local_sections[r_symndx];
-                 rel->r_addend += sec->output_offset + sym->st_value;
-               }
-           }
-
-         continue;
-       }
-
-      /* This is a final link.  */
       h = NULL;
       sym = NULL;
       sec = NULL;
@@ -2384,6 +2366,7 @@ const struct elf_size_info s390_elf64_size_info =
 #define elf_backend_want_plt_sym       0
 #define elf_backend_got_header_size    24
 #define elf_backend_plt_header_size    PLT_ENTRY_SIZE
+#define elf_backend_rela_normal                1
 
 #define elf_info_to_howto              elf_s390_info_to_howto
 
This page took 0.023633 seconds and 4 git commands to generate.