summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-05-25 01:13:59 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-05-25 01:13:59 +0000
commit0ab0fc1de1457f225e9175d651c41bacefc90dbe (patch)
treeb293076adf197aa7abcec890e099109ad33af6b9
parent83e8d83b7e9dd9915154aa1b0df16aae11f3b075 (diff)
downloadbinutils-redhat-0ab0fc1de1457f225e9175d651c41bacefc90dbe.tar.gz
PR ld/13909
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle multiple .eh_frame sections attached to bfd.
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/emultempl/elf32.em9
2 files changed, 11 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 38dfb2457f..d9cf5905bc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-25 Alan Modra <amodra@gmail.com>
+
+ PR ld/13909
+ * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle
+ multiple .eh_frame sections attached to bfd.
+
2012-05-23 Cary Coutant <ccoutant@google.com>
* scripttempl/armbpabi.sc: Match .data.rel.ro.* sections more
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index aab1c6d8e6..2b7a352a08 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1142,10 +1142,11 @@ gld${EMULATION_NAME}_after_open (void)
if (!warn_eh_frame)
{
s = bfd_get_section_by_name (abfd, ".eh_frame");
- warn_eh_frame
- = (s
- && s->size > 8
- && !bfd_is_abs_section (s->output_section));
+ while (s != NULL
+ && (s->size <= 8
+ || bfd_is_abs_section (s->output_section)))
+ s = bfd_get_next_section_by_name (s);
+ warn_eh_frame = s != NULL;
}
if (elfbfd && warn_eh_frame)
break;