http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59469
--- Comment #17 from Markus Trippelsdorf <octoploid at yandex dot com> --- In the non-lto case one has: lib/libLLVMAsmParser.so: U _ZN4llvm21SymbolTableListTraitsINS_10BasicBlockENS_8FunctionEE21transferNodesFromListERNS_12ilist_traitsIS1_EENS_14ilist_iteratorIS1_EES8_ lib/libLLVMCore.so: 0000000000071e90 W _ZN4llvm21SymbolTableListTraitsINS_10BasicBlockENS_8FunctionEE21transferNodesFromListERNS_12ilist_traitsIS1_EENS_14ilist_iteratorIS1_EES8 Later they get linked together: ... -o bin/llvm-as lib/libLLVMAsmParser.so ... lib/libLLVMCore.so ... In the lto case the weak symbol in lib/libLLVMCore.so is optimized out and the build fails. lib/libLLVMCore.so normally gets this weak symbol from BasicBlock.ii and Function.ii, that I've attached above. If I understand you correctly, you say that the undefined symbol of lib/libLLVMAsmParser.so is a bug in LLVM.