From: Alan Modra Date: Mon, 21 Jul 2008 07:49:58 +0000 (+0000) Subject: * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop X-Git-Tag: sid-snapshot-20080801~112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f60e73e9fc098b5cbf964afa4ccec7d9d8f7ad66;p=thirdparty%2Fbinutils-gdb.git * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop unwanted zero terminators. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f00c73a6c6d..a81993d2cd1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2008-07-21 Alan Modra + + * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop + unwanted zero terminators. + 2008-07-21 Alan Modra * elf32-spu.c (spu_elf_relocate_section): Expand diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 087c6b0930a..9b88499e486 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -1077,7 +1077,11 @@ _bfd_elf_discard_section_eh_frame hdr_info = &elf_hash_table (info)->eh_info; for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent) - if (!ent->cie) + if (ent->size == 4) + /* There should only be one zero terminator, on the last input + file supplying .eh_frame (crtend.o). Remove any others. */ + ent->removed = sec->map_head.s != NULL; + else if (!ent->cie) { cookie->rel = cookie->rels + ent->reloc_index; BFD_ASSERT (cookie->rel < cookie->relend