diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 16639c6..2635fbd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Alan Modra <amodra@bigpond.net.au> + + * elf.c (_bfd_elf_get_synthetic_symtab): Only bump the symbol + pointer when we have a valid symbol. Init udata.p to NULL. + 2007-11-09 Nathan Sidwell <nathan@codesourcery.com> * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobber @@ -8678,7 +8678,7 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd, names = (char *) (s + count); p = relplt->relocation; n = 0; - for (i = 0; i < count; i++, s++, p++) + for (i = 0; i < count; i++, p++) { size_t len; bfd_vma addr; @@ -8695,12 +8695,13 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd, s->section = plt; s->value = addr - plt->vma; s->name = names; + s->udata.p = NULL; len = strlen ((*p->sym_ptr_ptr)->name); memcpy (names, (*p->sym_ptr_ptr)->name, len); names += len; memcpy (names, "@plt", sizeof ("@plt")); names += sizeof ("@plt"); - ++n; + ++s, ++n; } return n; |