diff options
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 15 |
2 files changed, 16 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 886bd89..55fd8e3 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,6 +1,12 @@ 2010-08-22 H.J. Lu <hongjiu.lu@intel.com> PR ld/11937 + * emultempl/elf32.em (_after_open): Find one .eh_frame section + for --eh-frame-hdr. + +2010-08-22 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/11937 * emultempl/elf32.em (_after_open): Find an ELF input for --build-id and --eh-frame-hdr. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index bf4359d..aa9d787 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1132,11 +1132,16 @@ gld${EMULATION_NAME}_after_open (void) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) elfbfd = abfd; - s = bfd_get_section_by_name (abfd, ".eh_frame"); - if (s && s->size > 8 && !bfd_is_abs_section (s->output_section)) - warn_eh_frame = TRUE; - if (elfbfd && warn_eh_frame) - break; + 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)); + } + if (elfbfd && warn_eh_frame) + break; } if (elfbfd) { |