http://sourceware.org/bugzilla/show_bug.cgi?id=12760
--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2011-05-14 14:53:35
UTC ---
This seems to work:
diff --git a/ld/plugin.c b/ld/plugin.c
index 8425fa3..2cf1fc2 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -940,12 +940,19 @@ plugin_notice (struct bfd_link_info *info,
definition, and strong symbols will normally cause multiple
definition errors. Avoid this by making the symbol appear
to be undefined. */
- else if (((h->type == bfd_link_hash_defweak
+ else if ((h->type == bfd_link_hash_defweak
|| h->type == bfd_link_hash_defined)
&& is_ir_dummy_bfd (h->u.def.section->owner))
- || (h->type == bfd_link_hash_common
- && is_ir_dummy_bfd (h->u.c.p->section->owner)))
- h->type = bfd_link_hash_undefweak;
+ {
+ h->u.undef.abfd = h->u.def.section->owner;
+ h->type = bfd_link_hash_undefweak;
+ }
+ else if (h->type == bfd_link_hash_common
+ && is_ir_dummy_bfd (h->u.c.p->section->owner))
+ {
+ h->u.undef.abfd = h->u.c.p->section->owner;
+ h->type = bfd_link_hash_undefweak;
+ }
}
/* Continue with cref/nocrossref/trace-sym processing. */
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils