summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-cris.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9bb846df58..c9ca962011 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-15 Hans-Peter Nilsson <hp@axis.com>
+
+ * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize
+ using ibfd, not abfd.
+
2008-12-11 Alan Modra <amodra@bigpond.net.au>
PR 7041
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 72916f2aa7..87c8026427 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -4094,13 +4094,13 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBUTE_UNUSED,
unsigned long symndx)
{
struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) hr;
- Elf_Internal_Shdr *symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
bfd_vma eltsiz = 0;
/* We may have one regular GOT entry or up to two TLS GOT
entries. */
if (h == NULL)
{
+ Elf_Internal_Shdr *symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (ibfd);
BFD_ASSERT (local_got_refcounts != NULL);
@@ -4137,6 +4137,9 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBUTE_UNUSED,
eltsiz += 4;
}
+ /* We're only called when h->got.refcount is non-zero, so we must
+ have a non-zero size. */
+ BFD_ASSERT (eltsiz != 0);
return eltsiz;
}