Index: lib/LTO/ThinLTOCodeGenerator.cpp =================================================================== --- lib/LTO/ThinLTOCodeGenerator.cpp +++ lib/LTO/ThinLTOCodeGenerator.cpp @@ -822,8 +822,12 @@ * Perform ThinLTO CodeGen. */ std::unique_ptr ThinLTOCodeGenerator::codegen(Module &TheModule) { - initTMBuilder(TMBuilder, Triple(TheModule.getTargetTriple())); - return codegenModule(TheModule, *TMBuilder.create()); + // Create local copy of TMBuilder as ThinLTOCodeGenerator::codegen needs to + // be thread safe and initTMBuilder below is not thread safe on same object + TargetMachineBuilder moduleTMBuilder(TMBuilder); + + initTMBuilder(moduleTMBuilder, Triple(TheModule.getTargetTriple())); + return codegenModule(TheModule, *moduleTMBuilder.create()); } /// Write out the generated object file, either from CacheEntryPath or from