http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47333
--- Comment #36 from Jan Hubicka <hubicka at gcc dot gnu.org> --- I am having problem to reproduce it on a cross compiler. I assume you have non-plugin-enable LD setup, right? There is problem with chained weakrefs that ought to be fixed by the following change: Index: cgraphunit.c =================================================================== --- cgraphunit.c (revision 199591) +++ cgraphunit.c (working copy) @@ -656,8 +656,11 @@ cgraph_process_same_body_aliases (void) @@ -2018,7 +2021,7 @@ compile (void) (DECL_ASSEMBLER_NAME (node->symbol.decl)) = 1; TREE_CHAIN (DECL_ASSEMBLER_NAME (node->symbol.decl)) = (node->symbol.alias_target ? node->symbol.alias_target - : DECL_ASSEMBLER_NAME (symtab_alias_target (node)->symbol.decl)); + : DECL_ASSEMBLER_NAME (symtab_alias_ultimate_target (node)->symbol.decl)); } #endif I however do not see any chained weakrefs in the preprocessed file attached, so I am not quite convinced this can change anything. Can you, please, run it in debugger and take a look what is the assembler name ultimate_target is called for and what is its CHAIN_DECL?