Try to suppress the use of clock_gettime on Darwin which apparantly

defines _POSIX_CPUTIME but doesn't support the clock_* functions.

I don't test the value of _POSIX_CPUTIME because the spec merely says
that if it is defined, the CPU-specific timers are available, whereas it
says that _POSIX_TIMERS must be defined and defined to a value greater
than zero. However, this may not work, as the POSIX spec clearly states:

  "If the symbolic constant _POSIX_CPUTIME is defined, then the symbolic
  constant _POSIX_TIMERS shall also be defined by the implementation to
  have the value 200112L."

If this doesn't work, I'll add more hacks for Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171565 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2013-01-05 00:11:21 +00:00
parent 6601485662
commit 4cff412ecc

View File

@ -69,7 +69,7 @@ static std::pair<TimeValue, TimeValue> getRUsageTimes() {
}
TimeValue self_process::get_user_time() const {
#ifdef _POSIX_CPUTIME
#if _POSIX_TIMERS > 0 && defined(_POSIX_CPUTIME)
// Try to get a high resolution CPU timer.
struct timespec TS;
if (::clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &TS) == 0)