Bring up IPC in NaCl.

This patch gets a bunch of the IPC and Base libraries compiling (but not
linking) in NaCl.  There's obviously a bunch more work to do, but this patch is
a starting point.

Original patch by Eric Seidel.

Review URL: http://codereview.chromium.org/4812002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65920 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/logging.cc b/base/logging.cc
index 2658519..74f9a87 100644
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -19,7 +19,12 @@
 #include <mach/mach_time.h>
 #include <mach-o/dyld.h>
 #elif defined(OS_POSIX)
+#if defined(OS_NACL)
+#include <sys/nacl_syscalls.h>
+#include <sys/time.h> // timespec doesn't seem to be in <time.h>
+#else
 #include <sys/syscall.h>
+#endif
 #include <time.h>
 #endif
 
@@ -128,6 +133,8 @@
 #elif defined(OS_FREEBSD)
   // TODO(BSD): find a better thread ID
   return reinterpret_cast<int64>(pthread_self());
+#elif defined(OS_NACL)
+  return pthread_self();
 #endif
 }
 
@@ -136,6 +143,10 @@
   return GetTickCount();
 #elif defined(OS_MACOSX)
   return mach_absolute_time();
+#elif defined(OS_NACL)
+  // NaCl sadly does not have _POSIX_TIMERS enabled in sys/features.h
+  // So we have to use clock() for now.
+  return clock();
 #elif defined(OS_POSIX)
   struct timespec ts;
   clock_gettime(CLOCK_MONOTONIC, &ts);