* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Use
authorRoland McGrath <roland@gnu.org>
Thu, 15 Mar 2012 18:20:22 +0000 (18:20 +0000)
committerRoland McGrath <roland@gnu.org>
Thu, 15 Mar 2012 18:20:22 +0000 (18:20 +0000)
elf_x86_64_backend_data parameters for plt_eh_frame.

Change-Id: I4e1a7c2787ed1276765e269f50fc8ba89bab41d5

bfd/ChangeLog
bfd/elf64-x86-64.c

index 0a674b8..f967d45 100644 (file)
@@ -1,5 +1,8 @@
 2012-03-15  Roland McGrath  <mcgrathr@google.com>
 
+       * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Use
+       elf_x86_64_backend_data parameters for plt_eh_frame.
+
        * elf64-x86-64.c (struct elf_x86_64_backend_data): New type.
        (get_elf_x86_64_backend_data, GET_PLT_ENTRY_SIZE): New macros.
        (elf_x86_64_arch_bed): New variable.
index c0a4493..51204a5 100644 (file)
@@ -981,6 +981,8 @@ elf_x86_64_create_dynamic_sections (bfd *dynobj,
       && bfd_get_section_by_name (dynobj, ".eh_frame") == NULL
       && htab->elf.splt != NULL)
     {
+      const struct elf_x86_64_backend_data *const abed
+        = get_elf_x86_64_backend_data (dynobj);
       flagword flags = get_elf_backend_data (dynobj)->dynamic_sec_flags;
       htab->plt_eh_frame
        = bfd_make_section_with_flags (dynobj, ".eh_frame",
@@ -989,11 +991,11 @@ elf_x86_64_create_dynamic_sections (bfd *dynobj,
          || !bfd_set_section_alignment (dynobj, htab->plt_eh_frame, 3))
        return FALSE;
 
-      htab->plt_eh_frame->size = sizeof (elf_x86_64_eh_frame_plt);
+      htab->plt_eh_frame->size = abed->eh_frame_plt_size;
       htab->plt_eh_frame->contents
-       = bfd_alloc (dynobj, htab->plt_eh_frame->size);
-      memcpy (htab->plt_eh_frame->contents, elf_x86_64_eh_frame_plt,
-             sizeof (elf_x86_64_eh_frame_plt));
+        = bfd_alloc (dynobj, htab->plt_eh_frame->size);
+      memcpy (htab->plt_eh_frame->contents,
+              abed->eh_frame_plt, abed->eh_frame_plt_size);
     }
   return TRUE;
 }