Index: ldcref.c =================================================================== RCS file: /cvs/src/src/ld/ldcref.c,v retrieving revision 1.25 diff -u -r1.25 ldcref.c --- ldcref.c 10 Mar 2010 22:44:01 -0000 1.25 +++ ldcref.c 1 Jul 2010 14:23:16 -0000 @@ -432,28 +432,37 @@ for (r = h->refs; r != NULL; r = r->next) { - if (r->def) - { - while (len < FILECOL) - { - putc (' ', fp); - ++len; - } - lfinfo (fp, "%B\n", r->abfd); - len = 0; - } + if ((hl->type == bfd_link_hash_defined + || hl->type == bfd_link_hash_defweak) + && r->abfd == hl->u.def.section->owner) + { + while (len < FILECOL) + { + putc (' ', fp); + ++len; + } + lfinfo (fp, "%B\n", r->abfd); + len = 0; + } } for (r = h->refs; r != NULL; r = r->next) { - if (! r->def) + int prevailing = 0; + if (!((hl->type == bfd_link_hash_defined + || hl->type == bfd_link_hash_defweak) + && r->abfd == hl->u.def.section->owner)) { while (len < FILECOL) { putc (' ', fp); ++len; } - lfinfo (fp, "%B\n", r->abfd); + if (r->common && hl->type == bfd_link_hash_defined + && r->abfd == hl->u.def.section->owner) + prevailing = 1; + + lfinfo (fp, "%B\n", r->abfd); len = 0; } } Index: ldmisc.c =================================================================== RCS file: /cvs/src/src/ld/ldmisc.c,v retrieving revision 1.36 diff -u -r1.36 ldmisc.c --- ldmisc.c 17 Aug 2008 03:12:50 -0000 1.36 +++ ldmisc.c 1 Jul 2010 14:23:17 -0000 @@ -197,8 +197,8 @@ if (abfd == NULL) fprintf (fp, "%s generated", program_name); else if (abfd->my_archive) - fprintf (fp, "%s(%s)", abfd->my_archive->filename, - abfd->filename); + fprintf (fp, "%s(%s@0x%x)", abfd->my_archive->filename, + abfd->filename, (unsigned int)abfd->origin); else fprintf (fp, "%s", abfd->filename); }