diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/ldcref.c | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 7979891..9905b0a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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, diff --git a/ld/ldcref.c b/ld/ldcref.c index c329d7d..2f6a46c 100644 --- a/ld/ldcref.c +++ b/ld/ldcref.c @@ -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); } } } |