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 bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils