Add TEMP_FAILURE_RETRY for the Mac build.

Change-Id: I4934e76643783041773033af61b0ae82fd188c01
diff --git a/src/macros.h b/src/macros.h
index 88c2416..7652f71 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -125,4 +125,14 @@
 #define LIKELY(x)       __builtin_expect((x),true)
 #define UNLIKELY(x)     __builtin_expect((x),false)
 
+// bionic and glibc both have TEMP_FAILURE_RETRY, but Mac OS' libc doesn't.
+#ifndef TEMP_FAILURE_RETRY
+#define TEMP_FAILURE_RETRY(exp) ({ \
+  typeof (exp) _rc; \
+  do { \
+    _rc = (exp); \
+  } while (_rc == -1 && errno == EINTR); \
+  _rc; })
+#endif
+
 #endif  // ART_SRC_MACROS_H_