diff --git a/BUILDING.md b/BUILDING.md
index b633f73..adcab35 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -2,7 +2,7 @@
 
 ## C++
 
-The Roughtime C++ code is built using [Bazel](https://www.bazel.io/). Everything should build on Linux. On MacOS, `simple_client` should build.
+The Roughtime C++ code is built using [Bazel](https://www.bazel.io/). Everything should build on Linux and macOS, `simple_client` should build.
 
 In order to build, install Bazel and run `bazel build ... && bazel test ...`. That should download and build BoringSSL, gTest and Protocol Buffers automatically.
 
diff --git a/sys_time.cc b/sys_time.cc
index 5fa9532..c0b86df 100644
--- a/sys_time.cc
+++ b/sys_time.cc
@@ -14,16 +14,33 @@
 
 #include "sys_time.h"
 
+#if defined(__MACH__)
+#include <sys/time.h>
+#else
 #include <time.h>
+#endif
 
 #include <google/protobuf/stubs/logging.h>
 
 namespace roughtime {
 
+static const uint32_t kOneSecondRadius = 1000000;
+
 SystemTimeSource::SystemTimeSource() {}
 
 SystemTimeSource::~SystemTimeSource() {}
 
+#if defined(__MACH__)
+std::pair<rough_time_t, uint32_t> SystemTimeSource::Now() {
+  struct timeval tv;
+  GOOGLE_CHECK_EQ(0, gettimeofday(&tv, nullptr));
+  uint64_t now = tv.tv_sec;
+  now *= 1000000;
+  now += tv.tv_usec;
+
+  return std::make_pair(now, kOneSecondRadius);
+}
+#else
 std::pair<rough_time_t, uint32_t> SystemTimeSource::Now() {
   struct timespec ts;
   GOOGLE_CHECK_EQ(0, clock_gettime(CLOCK_REALTIME_COARSE, &ts));
@@ -31,7 +48,8 @@
   now *= 1000000;
   now += ts.tv_nsec / 1000;
 
-  return std::make_pair(now, 1000000);
+  return std::make_pair(now, kOneSecondRadius);
 }
+#endif
 
 }  // namespace roughtime
diff --git a/udp_processor.cc b/udp_processor.cc
index 6d8cbb4..9266193 100644
--- a/udp_processor.cc
+++ b/udp_processor.cc
@@ -110,6 +110,32 @@
   }
 }
 
+#if defined(__MACH__)
+static const unsigned MSG_WAITFORONE = 0;
+
+static int recvmmsg(int fd, struct mmsghdr *msgvec, unsigned vlen,
+                    unsigned flags, struct timespec *timeout) {
+  ssize_t r = recvmsg(fd, &msgvec->msg_hdr, 0);
+  if (r < 0) {
+    return r;
+  }
+
+  msgvec->msg_len = r;
+  return 1;
+}
+
+int sendmmsg(int fd, struct mmsghdr *msgvec, unsigned vlen, unsigned flags) {
+  GOOGLE_CHECK_EQ(1, vlen);
+  ssize_t r = sendmsg(fd, &msgvec->msg_hdr, 0);
+  if (r < 0) {
+    return r;
+  }
+
+  msgvec->msg_len = r;
+  return 1;
+}
+#endif
+
 bool UdpProcessor::ProcessBatch(int fd, Server *server, Stats *out_stats) {
   server->Reset();
   memset(out_stats, 0, sizeof(Stats));
diff --git a/udp_processor.h b/udp_processor.h
index ba96dea..d051348 100644
--- a/udp_processor.h
+++ b/udp_processor.h
@@ -25,6 +25,14 @@
 
 namespace roughtime {
 
+#if defined(__MACH__)
+struct mmsghdr {
+  uint8_t *iov_base;
+  size_t msg_len;
+  msghdr msg_hdr;
+};
+#endif
+
 // UdpProcessor manages a set of receive buffers for processing UDP requests.
 class UdpProcessor {
  public:
