PR ld/11367

* ldcref.c (handle_asneeded_cref): Correct copying of refs.
This commit is contained in:
Alan Modra 2010-03-10 22:44:01 +00:00
parent 01c30d6e99
commit 806fc31151
2 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2010-03-11 George Gensure <werkt0@gmail.com>
PR ld/11367
* ldcref.c (handle_asneeded_cref): Correct copying of refs.
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* Makefile.am (ALL_EMULATIONS): Add eelf32_sparc_sol2.o,

View File

@ -226,7 +226,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
entsize += cref_table.root.entsize;
c = (struct cref_hash_entry *) p;
for (r = c->refs; r != NULL; r = r->next)
refsize += sizeof (struct cref_hash_entry);
refsize += sizeof (struct cref_ref);
}
}
@ -258,8 +258,8 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
c = (struct cref_hash_entry *) p;
for (r = c->refs; r != NULL; r = r->next)
{
memcpy (old_ref, r, sizeof (struct cref_hash_entry));
old_ref = (char *) old_ref + sizeof (struct cref_hash_entry);
memcpy (old_ref, r, sizeof (struct cref_ref));
old_ref = (char *) old_ref + sizeof (struct cref_ref);
}
}
}
@ -300,8 +300,8 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
c = (struct cref_hash_entry *) p;
for (r = c->refs; r != NULL; r = r->next)
{
memcpy (r, old_ref, sizeof (struct cref_hash_entry));
old_ref = (char *) old_ref + sizeof (struct cref_hash_entry);
memcpy (r, old_ref, sizeof (struct cref_ref));
old_ref = (char *) old_ref + sizeof (struct cref_ref);
}
}
}