diff options
author | Roland McGrath <roland@gnu.org> | 2012-03-15 18:20:22 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2012-03-15 18:20:22 +0000 |
commit | a4456d242dd59e4f0ccad3020667df19be2202e8 (patch) | |
tree | c6c6dedde0bc08dd96a5f2c34bd023303f38842a | |
parent | eed180f84ccb6125cbc7df3d927b723cbcc63a5f (diff) | |
download | ppe42-binutils-a4456d242dd59e4f0ccad3020667df19be2202e8.tar.gz ppe42-binutils-a4456d242dd59e4f0ccad3020667df19be2202e8.zip |
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Use
elf_x86_64_backend_data parameters for plt_eh_frame.
Change-Id: I4e1a7c2787ed1276765e269f50fc8ba89bab41d5
-rw-r--r-- | bfd/ChangeLog | 3 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 10 |
2 files changed, 9 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0a674b8d2d..f967d452d5 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 c0a449342c..51204a5cf8 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; } |