aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2008-07-21 07:49:58 +0000
committerAlan Modra <amodra@gmail.com>2008-07-21 07:49:58 +0000
commitf60e73e9fc098b5cbf964afa4ccec7d9d8f7ad66 (patch)
tree24fed9e4fb234aa75a4ba3b37a0ad4530dfeeb82 /bfd
parentdc1859a6efe9122ab93383ff256aeff62d41e7cb (diff)
downloadgdb-f60e73e9fc098b5cbf964afa4ccec7d9d8f7ad66.zip
gdb-f60e73e9fc098b5cbf964afa4ccec7d9d8f7ad66.tar.gz
gdb-f60e73e9fc098b5cbf964afa4ccec7d9d8f7ad66.tar.bz2
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
unwanted zero terminators.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf-eh-frame.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f00c73a..a81993d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2008-07-21 Alan Modra <amodra@bigpond.net.au>
+ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
+ unwanted zero terminators.
+
+2008-07-21 Alan Modra <amodra@bigpond.net.au>
+
* elf32-spu.c (spu_elf_relocate_section): Expand
RELOC_FOR_GLOBAL_SYMBOL. Don't warn about undefined symbols for
R_SPU_PPU32 and R_SPU_PPU64 relocations.
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 087c6b0..9b88499 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