From 89b2bec8ac096eab3b9ec85a4141def240a46071 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 23 May 2012 04:38:08 +0000 Subject: [PATCH] * elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Handle BFDs with multiple .eh_frame sections. --- bfd/ChangeLog | 5 +++++ bfd/elf-eh-frame.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dd15034934..5fe29dbc2d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2012-05-23 Alan Modra + + * elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Handle + BFDs with multiple .eh_frame sections. + 2012-05-23 Alan Modra PR ld/13909 diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 8ec34ab0ca..685540c910 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -1278,7 +1278,11 @@ _bfd_elf_maybe_strip_eh_frame_hdr (struct bfd_link_info *info) /* Count only sections which have at least a single CIE or FDE. There cannot be any CIE or FDE <= 8 bytes. */ o = bfd_get_section_by_name (abfd, ".eh_frame"); - if (o && o->size > 8 && !bfd_is_abs_section (o->output_section)) + while (o != NULL + && (o->size <= 8 + || bfd_is_abs_section (o->output_section))) + o = bfd_get_next_section_by_name (o); + if (o != NULL) break; } -- 2.34.1