diff options
author | Alan Modra <amodra@bigpond.net.au> | 2012-05-25 01:12:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2012-05-25 01:12:18 +0000 |
commit | 83e8d83b7e9dd9915154aa1b0df16aae11f3b075 (patch) | |
tree | 41ccd352b4a50108269a0693b108727e8e5179ee /bfd/elf32-ppc.c | |
parent | bc6ce2780cd8d2df46e239ec8aec56d312bb9c5d (diff) | |
download | binutils-redhat-83e8d83b7e9dd9915154aa1b0df16aae11f3b075.tar.gz |
PR ld/13909
* elf-eh-frame.c (_bfd_elf_eh_frame_present): New function.
(_bfd_elf_maybe_strip_eh_frame_hdr): Use it here.
* elf-bfd.h (_bfd_elf_eh_frame_present): Declare.
* elflink.c (bfd_elf_size_dynamic_sections): Let the backend
size dynamic sections before stripping eh_frame_hdr.
(bfd_elf_gc_sections): Handle multiple .eh_frame sections.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Drop glink_eh_frame
if no other .eh_frame sections exist.
* elf64-ppc.c (ppc64_elf_size_stubs): Likewise.
* elf32-i386.c (elf_i386_create_dynamic_sections): Don't size
or alloc plt_eh_frame here..
(elf_i386_size_dynamic_sections): ..do it here instead. Don't
specially keep sgotplt, iplt, tgotplt, sdynbss for symbols.
(elf_i386_finish_dynamic_sections): Check plt_eh_frame->contents
before writing plt offset.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Don't size
or alloc plt_eh_frame here..
(elf_x86_64_size_dynamic_sections): ..do it here instead.
(elf_x86_64_finish_dynamic_sections): Check plt_eh_frame->contents
before writing plt offset.
Diffstat (limited to 'bfd/elf32-ppc.c')
-rw-r--r-- | bfd/elf32-ppc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 9665d39bdf..98f1aa838f 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -6244,7 +6244,8 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, if (htab->glink != NULL && htab->glink->size != 0 && htab->glink_eh_frame != NULL - && !bfd_is_abs_section (htab->glink_eh_frame->output_section)) + && !bfd_is_abs_section (htab->glink_eh_frame->output_section) + && _bfd_elf_eh_frame_present (info)) { s = htab->glink_eh_frame; s->size = sizeof (glink_eh_frame_cie) + 20; |