http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59469
Bug ID: 59469 Summary: LLVM build failure with gcc LTO Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: octoploid at yandex dot com Building LLVM with LTO fails: ... lib/libLLVMAsmParser.so: error: undefined reference to 'llvm::SymbolTableListTraits<llvm::BasicBlock,llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock>&, llvm::ilist_iterator<llvm::BasicBlock>, llvm::ilist_iterator<llvm::BasicBlock>)' This only happens with "-O3 -flto": markus@x4 llvm_build % g++ -flto-partition=none -flto -fPIC -shared -fno-rtti -O3 BasicBlock.ii Function.ii markus@x4 llvm_build % nm ./a.out | c++filt | grep "llvm::SymbolTableListTraits<llvm::BasicBlock, llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock" markus@x4 llvm_build % g++ -flto-partition=none -flto -fPIC -shared -fno-rtti -O2 BasicBlock.ii Function.ii markus@x4 llvm_build % nm ./a.out | c++filt | grep "llvm::SymbolTableListTraits<llvm::BasicBlock, llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock" 000000000001b770 t llvm::SymbolTableListTraits<llvm::BasicBlock, llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock>&, llvm::ilist_iterator<llvm::BasicBlock>, llvm::ilist_iterator<llvm::BasicBlock>) markus@x4 llvm_build % g++ -fPIC -shared -fno-rtti -O3 BasicBlock.ii Function.ii markus@x4 llvm_build % nm ./a.out | c++filt | grep "llvm::SymbolTableListTraits<llvm::BasicBlock, llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock" 000000000006a6e0 W llvm::SymbolTableListTraits<llvm::BasicBlock, llvm::Function>::transferNodesFromList(llvm::ilist_traits<llvm::BasicBlock>&, llvm::ilist_iterator<llvm::BasicBlock>, llvm::ilist_iterator<llvm::BasicBlock>) markus@x4 llvm_build % I will try to reduce this further.