--- a/src/utils/smallut.cpp
+++ b/src/utils/smallut.cpp
@@ -676,12 +676,23 @@
((TV).tv_nsec - m_nsecs) / 1000))
#define NANOS(TV) ( (long long)(((TV).tv_sec - m_secs) * 1000000000LL + \
((TV).tv_nsec - m_nsecs)))
+
+// Using clock_gettime() is nice because it gives us ns res and it helps with
+// computing threads work times, but it's also a pita because it forces linking
+// with -lrt. So keep it optional. And not on the mac anyway
+// #define USE_CLOCK_GETTIME
+
#ifdef __APPLE__
+#undef USE_CLOCK_GETTIME
+#endif
+
+#ifndef USE_CLOCK_GETTIME
#include <sys/time.h>
#endif
+
static void gettime(clockid_t clk_id, struct timespec *ts)
{
-#ifdef __APPLE__
+#ifndef USE_CLOCK_GETTIME
struct timeval tv;
gettimeofday(&tv, 0);
ts->tv_sec = tv.tv_sec;