Backport the other sierra fix in 20865.

They added clock_gettime(), but with tv_nsec as a long, whereas
tv_usec is a __darwin_suseconds_t (a.k.a. 'int').  Now, why would
they do that? Are they preparing for a world where there are more
than 2 billion nanoseconds per second?  Are they planning for having
int be less than 32 bits again?  Or are they just not paying
attention to the Darwin API?

Also, they forgot to mark clock_gettime() as Sierra-only, so even
if we fixed the issue here, we'd still be stick with portability
breakage like we were for 0.2.9.

So, just disable clock_gettime() on apple.
This commit is contained in:
Nick Mathewson 2016-12-07 18:19:18 -05:00
parent cc34ba1cec
commit 10baf2c684
1 changed files with 5 additions and 0 deletions

View File

@ -21,6 +21,11 @@
#include "torlog.h"
#include "util.h"
#ifdef __APPLE__
#undef CLOCK_MONOTONIC
#undef HAVE_CLOCK_GETTIME
#endif
/** Wraps a void (*)(void*) function and its argument so we can
* invoke them in a way pthreads would expect.
*/