From 4440bb778588d144441f18d8053c0dfa42440f5d Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 22 Aug 2010 20:21:21 +0000 Subject: [PATCH] Find one .eh_frame section for --eh-frame-hdr. 2010-08-22 H.J. Lu PR ld/11937 * emultempl/elf32.em (_after_open): Find one .eh_frame section for --eh-frame-hdr. --- ld/ChangeLog | 6 ++++++ ld/emultempl/elf32.em | 15 ++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 886bd89e2a5..55fd8e386da 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2010-08-22 H.J. Lu + + PR ld/11937 + * emultempl/elf32.em (_after_open): Find one .eh_frame section + for --eh-frame-hdr. + 2010-08-22 H.J. Lu PR ld/11937 diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index bf4359dad14..aa9d787927e 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) { -- 2.30.2