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.