From: Alan Modra Date: Fri, 25 May 2012 01:13:59 +0000 (+0000) Subject: PR ld/13909 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9cf8b46e48eea4263ed31ddb8f5dd185ee3b08e4;p=binutils-gdb.git PR ld/13909 * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle multiple .eh_frame sections attached to bfd. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 38dfb2457fd..d9cf5905bc5 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 aab1c6d8e64..2b7a352a08c 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;