x86: Add sizeof_reloc to elf_x86_link_hash_table
[binutils-gdb.git] / bfd / elfxx-x86.c
index 50d945ef0ac844e347b6e6184fb487fc83c2c6b6..fe5d211af2d2fe68216adeb490d21b8c6a4577d3 100644 (file)
@@ -277,6 +277,7 @@ _bfd_x86_elf_link_hash_table_create (bfd *abfd)
     {
       ret->r_info = elf64_r_info;
       ret->r_sym = elf64_r_sym;
+      ret->sizeof_reloc = sizeof (Elf64_External_Rela);
       ret->pointer_r_type = R_X86_64_64;
       ret->dynamic_interpreter = ELF64_DYNAMIC_INTERPRETER;
       ret->dynamic_interpreter_size = sizeof ELF64_DYNAMIC_INTERPRETER;
@@ -289,6 +290,7 @@ _bfd_x86_elf_link_hash_table_create (bfd *abfd)
       ret->r_sym = elf32_r_sym;
       if (bed->target_id == X86_64_ELF_DATA)
        {
+         ret->sizeof_reloc = sizeof (Elf32_External_Rela);
          ret->pointer_r_type = R_X86_64_32;
          ret->dynamic_interpreter = ELFX32_DYNAMIC_INTERPRETER;
          ret->dynamic_interpreter_size
@@ -297,6 +299,7 @@ _bfd_x86_elf_link_hash_table_create (bfd *abfd)
        }
       else
        {
+         ret->sizeof_reloc = sizeof (Elf32_External_Rel);
          ret->pointer_r_type = R_386_32;
          ret->dynamic_interpreter = ELF32_DYNAMIC_INTERPRETER;
          ret->dynamic_interpreter_size
@@ -735,9 +738,7 @@ _bfd_x86_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
     }
   if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
     {
-      srel->size += ((bed->target_id == I386_ELF_DATA)
-                    ? sizeof (Elf32_External_Rel)
-                    : bed->s->sizeof_rela);
+      srel->size += htab->sizeof_reloc;
       h->needs_copy = 1;
     }