https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
--- Comment #3 from acrsofter at gmail dot com --- reproduce steps: [foo.c] int _umh(int i) { return i+1; } int weaks(int i) __attribute__((weak, alias("_umh"))); int main() { return weaks(10); } [bar.c] int weaks(int i) { return i+1; } now compile: gcc -c bar.c gcc -flto -c foo.c gcc -flto -o elf bar.o foo.o note: bar compiled without flt but rest with flt now at linking stage booms at line gcc_assert (c != SYMBOL_EXTERNAL && (c == SYMBOL_DUPLICATE || !symbol_partitioned_p (node))); in lto/lto-partition.c =============================================================== same code compiled without lto ok gcc 4.9.3 not affected but 5.3.0 affected and latest (gcc-6-20160214) affected