<div dir="ltr">This is due to a patch I submitted yesterday. There's actually another thread about it that i just CC'ed to this mailing list called "Replace Execution Engine's mutex with std::recursive_mutex". It's best to centralize all the discussion into a single thread. I'm not sure which thread is more appropriate, but since I already wrote an explanation on that thread, I'll just choose that one as the point of discussion. So please respond on the other thread if you have additional comments.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 20, 2014 at 12:18 AM, G M <span dir="ltr"><<a href="mailto:gmisocpp@gmail.com" target="_blank">gmisocpp@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>Hi Everyone</div><div><br></div><div>I notice llvm has stopped building with g++ in the last 24 hours.</div><div><br></div><div>I build with g++ from here:</div><div><a href="http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.0/threads-win32/seh/" target="_blank">http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.0/threads-win32/seh/</a></div>
<div><br></div><div>The error messages are below. Hope this is useful to someone, assuming the breakage is not intentional.</div><div><br></div><div>lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.obj<br>FAILED: \mingw\bin\x86_64-w64-mingw32-c++.exe -DGTEST_HAS_RTTI=0 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STD<br>
C_LIMIT_MACROS -std=c++1y -pipe -march=corei7 -O3 -Wall -Wpedantic -Wno-deprecated -D_FORTIFY_SOURCE=2 -Wall -W -Wno-unuse<br>d-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtua<br>
l-dtor -Wno-comment -std=gnu++11 -O2 -DNDEBUG -Ilib/Linker -Ic:/llvm/lib/Linker -Iinclude -Ic:/llvm/include -fno-excep<br>tions -fno-rtti -MMD -MT lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.obj -MF lib/Linker/CMakeFiles/LLVMLinker.dir<br>
/LinkModules.cpp.obj.d -o lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.obj -c c:/llvm/lib/Linker/LinkModules.cpp<br>In file included from c:/llvm/include/llvm/Transforms/Utils/Cloning.h:24:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:25:<br>
c:/llvm/include/llvm/IR/ValueMap.h:48:48: error: 'recursive_mutex' in namespace 'std' does not name a type<br> template<typename KeyT, typename MutexT = std::recursive_mutex><br> ^<br>
c:/llvm/include/llvm/IR/ValueMap.h:76:78: error: template argument 2 is invalid<br> template<typename KeyT, typename ValueT, typename Config =ValueMapConfig<KeyT> ><br> ^<br>
In file included from c:/llvm/include/llvm/Transforms/Utils/Cloning.h:25:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:25:<br>c:/llvm/include/llvm/Transforms/Utils/ValueMapper.h:23:41: error: template argument 3 is invalid<br>
typedef ValueMap<const Value *, WeakVH> ValueToValueMapTy;<br> ^<br>c:/llvm/include/llvm/Transforms/Utils/ValueMapper.h:23:60: error: invalid type in declaration before ';' token<br>
typedef ValueMap<const Value *, WeakVH> ValueToValueMapTy;<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'bool {anonymous}::ModuleLinker::linkAppendingVarProto(llvm::Global<br>
Variable*, llvm::GlobalVariable*)':<br>c:/llvm/lib/Linker/LinkModules.cpp:749:19: error: no match for 'operator=' (operand types are 'llvm::GlobalVariable' and '<br>llvm::Constant*')<br> ValueMap[SrcGV] = ConstantExpr::getBitCast(NG, TypeMap.get(SrcGV->getType()));<br>
^<br>c:/llvm/lib/Linker/LinkModules.cpp:749:19: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:22:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: void llvm::GlobalVariable::operator=(const llvm::GlobalVariable&) <de<br>
leted><br> void operator=(const GlobalVariable &) LLVM_DELETED_FUNCTION;<br> ^<br>c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: no known conversion for argument 1 from 'llvm::Constant*' to 'const<br>
llvm::GlobalVariable&'<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'bool {anonymous}::ModuleLinker::linkGlobalProto(llvm::GlobalVariab<br>le*)':<br>c:/llvm/lib/Linker/LinkModules.cpp:796:21: error: no match for 'operator=' (operand types are 'llvm::GlobalVariable' and '<br>
llvm::Constant*')<br> ValueMap[SGV] = ConstantExpr::getBitCast(DGV,TypeMap.get(SGV->getType()));<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:796:21: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:22:0,<br>
from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: void llvm::GlobalVariable::operator=(const llvm::GlobalVariable&) <de<br>leted><br> void operator=(const GlobalVariable &) LLVM_DELETED_FUNCTION;<br>
^<br>c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: no known conversion for argument 1 from 'llvm::Constant*' to 'const<br> llvm::GlobalVariable&'<br>c:/llvm/lib/Linker/LinkModules.cpp:827:17: error: no match for 'operator=' (operand types are 'llvm::GlobalVariable' and '<br>
llvm::GlobalVariable*')<br> ValueMap[SGV] = NewDGV;<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:827:17: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:22:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>
c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: void llvm::GlobalVariable::operator=(const llvm::GlobalVariable&) <de<br>leted><br> void operator=(const GlobalVariable &) LLVM_DELETED_FUNCTION;<br> ^<br>
c:/llvm/include/llvm/IR/GlobalVariable.h:38:8: note: no known conversion for argument 1 from 'llvm::GlobalVariable*' to<br>'const llvm::GlobalVariable&'<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'bool {anonymous}::ModuleLinker::linkFunctionProto(llvm::Function*)<br>
':<br>c:/llvm/lib/Linker/LinkModules.cpp:854:20: error: no match for 'operator=' (operand types are 'llvm::Function' and 'llvm::<br>Constant*')<br> ValueMap[SF] = ConstantExpr::getBitCast(DGV, TypeMap.get(SF->getType()));<br>
^<br>c:/llvm/lib/Linker/LinkModules.cpp:854:20: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:20:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/Function.h:114:8: note: void llvm::Function::operator=(const llvm::Function&) <deleted><br>
void operator=(const Function&) LLVM_DELETED_FUNCTION;<br> ^<br>c:/llvm/include/llvm/IR/Function.h:114:8: note: no known conversion for argument 1 from 'llvm::Constant*' to 'const llvm<br>::Function&'<br>
c:/llvm/lib/Linker/LinkModules.cpp:887:16: error: no match for 'operator=' (operand types are 'llvm::Function' and 'llvm::<br>Function*')<br> ValueMap[SF] = NewDF;<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:887:16: note: candidate is:<br>
In file included from c:/llvm/include/llvm/IR/Module.h:20:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/Function.h:114:8: note: void llvm::Function::operator=(const llvm::Function&) <deleted><br>
void operator=(const Function&) LLVM_DELETED_FUNCTION;<br> ^<br>c:/llvm/include/llvm/IR/Function.h:114:8: note: no known conversion for argument 1 from 'llvm::Function*' to 'const llvm<br>::Function&'<br>
c:/llvm/lib/Linker/LinkModules.cpp: In member function 'bool {anonymous}::ModuleLinker::linkAliasProto(llvm::GlobalAlias*)<br>':<br>c:/llvm/lib/Linker/LinkModules.cpp:914:21: error: no match for 'operator=' (operand types are 'llvm::GlobalAlias' and 'llv<br>
m::Constant*')<br> ValueMap[SGA] = ConstantExpr::getBitCast(DGV,TypeMap.get(SGA->getType()));<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:914:21: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:21:0,<br>
from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/GlobalAlias.h:31:8: note: void llvm::GlobalAlias::operator=(const llvm::GlobalAlias&) <deleted><br> void operator=(const GlobalAlias &) LLVM_DELETED_FUNCTION;<br>
^<br>c:/llvm/include/llvm/IR/GlobalAlias.h:31:8: note: no known conversion for argument 1 from 'llvm::Constant*' to 'const ll<br>vm::GlobalAlias&'<br>c:/llvm/lib/Linker/LinkModules.cpp:940:17: error: no match for 'operator=' (operand types are 'llvm::GlobalAlias' and 'llv<br>
m::GlobalAlias*')<br> ValueMap[SGA] = NewDA;<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:940:17: note: candidate is:<br>In file included from c:/llvm/include/llvm/IR/Module.h:21:0,<br> from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>
c:/llvm/include/llvm/IR/GlobalAlias.h:31:8: note: void llvm::GlobalAlias::operator=(const llvm::GlobalAlias&) <deleted><br> void operator=(const GlobalAlias &) LLVM_DELETED_FUNCTION;<br> ^<br>c:/llvm/include/llvm/IR/GlobalAlias.h:31:8: note: no known conversion for argument 1 from 'llvm::GlobalAlias*' to 'const<br>
llvm::GlobalAlias&'<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'void {anonymous}::ModuleLinker::linkGlobalInits()':<br>c:/llvm/lib/Linker/LinkModules.cpp:974:59: error: cannot convert 'const llvm::GlobalVariable' to 'llvm::GlobalVariable*' i<br>
n initialization<br> GlobalVariable *DGV = cast<GlobalVariable>(ValueMap[I]);<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'void {anonymous}::ModuleLinker::linkFunctionBody(llvm::Function*,<br>
llvm::Function*)':<br>c:/llvm/lib/Linker/LinkModules.cpp:994:17: error: no match for 'operator=' (operand types are 'llvm::Argument' and 'llvm::<br>Function::arg_iterator {aka llvm::ilist_iterator<llvm::Argument>}')<br>
ValueMap[I] = DI;<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:994:17: note: candidates are:<br>In file included from c:/llvm/include/llvm/IR/Function.h:22:0,<br> from c:/llvm/include/llvm/IR/Module.h:20,<br>
from c:/llvm/lib/Linker/LinkModules.cpp:20:<br>c:/llvm/include/llvm/IR/Argument.h:35:7: note: llvm::Argument& llvm::Argument::operator=(const llvm::Argument&) <deleted><br> class Argument : public Value, public ilist_node<Argument> {<br>
^<br>c:/llvm/include/llvm/IR/Argument.h:35:7: note: no known conversion for argument 1 from 'llvm::Function::arg_iterator {ak<br>a llvm::ilist_iterator<llvm::Argument>}' to 'const llvm::Argument&'<br>
c:/llvm/include/llvm/IR/Argument.h:35:7: note: llvm::Argument& llvm::Argument::operator=(llvm::Argument&&) <deleted><br>c:/llvm/include/llvm/IR/Argument.h:35:7: note: no known conversion for argument 1 from 'llvm::Function::arg_iterator {ak<br>
a llvm::ilist_iterator<llvm::Argument>}' to 'llvm::Argument&&'<br>c:/llvm/lib/Linker/LinkModules.cpp:1020:14: error: request for member 'erase' in '(({anonymous}::ModuleLinker*)this)->{ano<br>
nymous}::ModuleLinker::ValueMap', which is of non-class type 'llvm::ValueToValueMapTy {aka int}'<br> ValueMap.erase(I);<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp: In member function 'void {anonymous}::ModuleLinker::linkAliasBodies()':<br>
c:/llvm/lib/Linker/LinkModules.cpp:1031:54: error: cannot convert 'llvm::GlobalAlias' to 'llvm::GlobalAlias*' in initializ<br>ation<br> GlobalAlias *DA = cast<GlobalAlias>(ValueMap[I]);<br> ^<br>
c:/llvm/lib/Linker/LinkModules.cpp: In member function 'bool {anonymous}::ModuleLinker::run()':<br>c:/llvm/lib/Linker/LinkModules.cpp:1288:47: error: cannot convert 'llvm::Function' to 'llvm::Function*' in initialization<br>
Function *DF = cast<Function>(ValueMap[SF]);<br> ^<br>c:/llvm/lib/Linker/LinkModules.cpp:1334:49: error: cannot convert 'llvm::Function' to 'llvm::Function*' in initialization<br>
Function *DF = cast<Function>(ValueMap[SF]);<br> ^<br>[12/1498] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.obj</div><div><br></div><div><br>
</div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>