Index: lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp =================================================================== --- lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp +++ lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp @@ -33,7 +33,7 @@ namespace { // Global mutex to ensure a single thread initializes oprofile agent. -llvm::sys::Mutex OProfileInitializationMutex; +llvm::sys::RecursiveMutex OProfileInitializationMutex; } // anonymous namespace Index: lib/Support/Unix/Process.inc =================================================================== --- lib/Support/Unix/Process.inc +++ lib/Support/Unix/Process.inc @@ -266,7 +266,7 @@ static bool terminalHasColors(int fd) { #ifdef HAVE_TERMINFO // First, acquire a global lock because these C routines are thread hostile. - static sys::Mutex M; + static sys::RecursiveMutex M; MutexGuard G(M); int errret = 0; Index: lib/Support/Unix/Signals.inc =================================================================== --- lib/Support/Unix/Signals.inc +++ lib/Support/Unix/Signals.inc @@ -41,7 +41,7 @@ static RETSIGTYPE SignalHandler(int Sig); // defined below. -static SmartMutex SignalsMutex; +static llvm::sys::RecursiveDebugMutex SignalsMutex; /// InterruptFunction - The function to call if ctrl-c is pressed. static void (*InterruptFunction)() = nullptr;