From 9cf8b46e48eea4263ed31ddb8f5dd185ee3b08e4 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 25 May 2012 01:13:59 +0000 Subject: PR ld/13909 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle multiple .eh_frame sections attached to bfd. --- ld/ChangeLog | 6 ++++++ ld/emultempl/elf32.em | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 38dfb24..d9cf590 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2012-05-25 Alan Modra + + PR ld/13909 + * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle + multiple .eh_frame sections attached to bfd. + 2012-05-23 Cary Coutant * scripttempl/armbpabi.sc: Match .data.rel.ro.* sections more diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index aab1c6d..2b7a352 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; -- cgit v1.1