<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>