Huh...I'm actually not sure I completely understand this change enough to completely gauge correctness.  I think the idea is that if we're building on a system that doesn't support threads (looks like your specific case is some unix variant that doesn't have the pthreads library), you want libc++ to still compile.

Should we be also removing the defer_lock_t types and friends?

Also, is it better to walk around and ifdef out uses of pthread_mutex_t (like in algorithm.cpp) or to provide some sort of non-exported inline types that abstracts mutex and cond variable (which would be distinct from std::mutex/std::condition_variable) that just compile out to nothing?