On Sun, Apr 25, 2010 at 1:24 PM, Toon Moene <t...@moene.org> wrote: > Richard Guenther wrote: > >> On Sat, Apr 24, 2010 at 3:28 PM, Toon Moene <t...@moene.org> wrote: > >>> lto-symtab.c:549: >>> >>> 524 >>> 525 /* Helper to process the decl chain for the symbol table entry >>> *SLOT. >>> */ >>> 526 >>> 527 static int >>> 528 lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED) >>> .... >>> 545 /* Assert it's the only one. */ >>> 546 if (prevailing) >>> 547 for (e = prevailing->next; e; e = e->next) >>> 548 gcc_assert (e->resolution != LDPR_PREVAILING_DEF_IRONLY >>> 549 && e->resolution != LDPR_PREVAILING_DEF); >>> >>> Of course, I'd like to make a test case out of this - but what is this >>> assert checking ? >> >> It is checking that for one symbol we only have one definition. >> >> You are using -fuse-linker-plugin? > > Indeed, I do (all of our code ends up in libraries - .a files - so I have > to, to make -flto -fwhole-program be meaningful). > > Is it a problem with COMMON ? Those typically have umpteen definitions, > which all have to match ...
No, gold should choose a single prevailing definition. The issue is that gold and the linker-plugin seem to be unmaintained. Can you make sure you have an up-to-date gold? There was a gold bugfix related to the above this month. Richard. > Thanks in advance, > > -- > Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290 > Saturnushof 14, 3738 XG Maartensdijk, The Netherlands > At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/ > Progress of GNU Fortran: http://gcc.gnu.org/gcc-4.5/changes.html#Fortran >