aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2012-03-15 18:20:22 +0000
committerRoland McGrath <roland@gnu.org>2012-03-15 18:20:22 +0000
commita4456d242dd59e4f0ccad3020667df19be2202e8 (patch)
treec6c6dedde0bc08dd96a5f2c34bd023303f38842a /bfd
parenteed180f84ccb6125cbc7df3d927b723cbcc63a5f (diff)
downloadgdb-a4456d242dd59e4f0ccad3020667df19be2202e8.zip
gdb-a4456d242dd59e4f0ccad3020667df19be2202e8.tar.gz
gdb-a4456d242dd59e4f0ccad3020667df19be2202e8.tar.bz2
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Use
elf_x86_64_backend_data parameters for plt_eh_frame. Change-Id: I4e1a7c2787ed1276765e269f50fc8ba89bab41d5
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog3
-rw-r--r--bfd/elf64-x86-64.c10
2 files changed, 9 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0a674b8..f967d45 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index c0a4493..51204a5 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -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;
}