include/elf/ChangeLog
[deliverable/binutils-gdb.git] / bfd / elf32-m68k.c
index 2c50ed08b74993e1d8dd9346d17311877e6ebdbd..a8b5c6e51be7f33a055a5d14783ad8d71a2922f9 100644 (file)
@@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 static reloc_howto_type *reloc_type_lookup
   PARAMS ((bfd *, bfd_reloc_code_real_type));
 static void rtype_to_howto
-  PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
 static struct bfd_hash_entry *elf_m68k_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 static struct bfd_link_hash_table *elf_m68k_link_hash_table_create
@@ -1503,22 +1503,21 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
 
                    if (info->shared)
                      {
-                       asection *srelgot;
+                       asection *s;
                        Elf_Internal_Rela outrel;
+                       bfd_byte *loc;
 
-                       srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
-                       BFD_ASSERT (srelgot != NULL);
+                       s = bfd_get_section_by_name (dynobj, ".rela.got");
+                       BFD_ASSERT (s != NULL);
 
                        outrel.r_offset = (sgot->output_section->vma
                                           + sgot->output_offset
                                           + off);
                        outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE);
                        outrel.r_addend = relocation;
-                       bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                                  (((Elf32_External_Rela *)
-                                                    srelgot->contents)
-                                                   + srelgot->reloc_count));
-                       ++srelgot->reloc_count;
+                       loc = s->contents;
+                       loc += s->reloc_count++ * sizeof (Elf32_External_Rela);
+                       bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
                      }
 
                    local_got_offsets[r_symndx] |= 1;
@@ -1609,6 +1608,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                          & ELF_LINK_HASH_DEF_REGULAR) == 0)))
            {
              Elf_Internal_Rela outrel;
+             bfd_byte *loc;
              boolean skip, relocate;
 
              /* When generating a shared object, these relocations
@@ -1703,11 +1703,9 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
                    }
                }
 
-             bfd_elf32_swap_reloca_out (output_bfd, &outrel,
-                                        (((Elf32_External_Rela *)
-                                          sreloc->contents)
-                                         + sreloc->reloc_count));
-             ++sreloc->reloc_count;
+             loc = sreloc->contents;
+             loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+             bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
              /* This reloc will be computed at runtime, so there's no
                  need to do anything now, except for R_68K_32
@@ -1791,6 +1789,7 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
       bfd_vma plt_index;
       bfd_vma got_offset;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the procedure linkage table.  Set
         it up.  */
@@ -1863,9 +1862,8 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_JMP_SLOT);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + plt_index));
+      loc = srela->contents + plt_index * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
        {
@@ -1880,6 +1878,7 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
       asection *sgot;
       asection *srela;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
         up.  */
@@ -1914,16 +1913,16 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
          rela.r_addend = 0;
        }
 
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) srela->contents
-                                 + srela->reloc_count));
-      ++srela->reloc_count;
+      loc = srela->contents;
+      loc += srela->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
     {
       asection *s;
       Elf_Internal_Rela rela;
+      bfd_byte *loc;
 
       /* This symbol needs a copy reloc.  Set it up.  */
 
@@ -1940,10 +1939,8 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
                       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_COPY);
       rela.r_addend = 0;
-      bfd_elf32_swap_reloca_out (output_bfd, &rela,
-                                ((Elf32_External_Rela *) s->contents
-                                 + s->reloc_count));
-      ++s->reloc_count;
+      loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela);
+      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
     }
 
   /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */
This page took 0.026106 seconds and 4 git commands to generate.