Index: chrono.cpp
===================================================================
--- chrono.cpp	(revision 191141)
+++ chrono.cpp	(working copy)
@@ -8,7 +8,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "chrono"
+// FIXME. sys/time.h not available in MSVCRT.
+// timespec, CLOCK_MONOTONIC and clock_gettime and gettimeofday required.
+#ifndef _LIBCPP_MSVCRT
 #include <sys/time.h>        //for gettimeofday and timeval
+#endif
 #ifdef __APPLE__
 #include <mach/mach_time.h>  // mach_absolute_time, mach_timebase_info_data_t
 #else  /* !__APPLE__ */
@@ -16,7 +20,18 @@
 #include <system_error>  // __throw_system_error
 #include <time.h>  // clock_gettime, CLOCK_MONOTONIC
 #endif  // __APPLE__
+#include <cstdio>
+#include <cstdlib>
 
+#if defined(_LIBCPP_MSVCRT) // Only used in this circumstance.
+_LIBCPP_NORETURN
+static void _libcpp_abort(const char* msg)
+{
+    printf("%s\n", msg);
+    abort();
+}
+#endif
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 namespace chrono
@@ -29,9 +44,14 @@
 system_clock::time_point
 system_clock::now() _NOEXCEPT
 {
+#if defined(_LIBCPP_MSVCRT)
+    _LIBCPP_WARNING("system_clock::now() is not implemented")
+    _libcpp_abort("system_clock::now() is not implemented");
+#else
     timeval tv;
     gettimeofday(&tv, 0);
     return time_point(seconds(tv.tv_sec) + microseconds(tv.tv_usec));
+#endif
 }
 
 time_t
@@ -120,10 +140,15 @@
 steady_clock::time_point
 steady_clock::now() _NOEXCEPT
 {
+#if defined(_LIBCPP_MSVCRT)
+    _LIBCPP_WARNING("steady_clock::now() is not implemented");
+    _libcpp_abort("steady_clock::now() is not implemented");
+#else
     struct timespec tp;
     if (0 != clock_gettime(CLOCK_MONOTONIC, &tp))
         __throw_system_error(errno, "clock_gettime(CLOCK_MONOTONIC) failed");
     return time_point(seconds(tp.tv_sec) + nanoseconds(tp.tv_nsec));
+#endif
 }
 #endif  // __APPLE__
 
