Darwin doesn't support clock_gettime() but has _POSIX_MONOTONIC_CLOCK defined
so use a more strict check with _POSIX_TIMERS.

This fixes the following compilation error:

  java_lang_VMSystem.c: In function ‘Java_java_lang_VMSystem_nanoTime’:
  java_lang_VMSystem.c:148: warning: implicit declaration of function 
‘clock_gettime’
  java_lang_VMSystem.c:148: error: ‘CLOCK_MONOTONIC’ undeclared (first use in 
this function)
  java_lang_VMSystem.c:148: error: (Each undeclared identifier is reported only 
once
  java_lang_VMSystem.c:148: error: for each function it appears in.)

Signed-off-by: Pekka Enberg <penb...@kernel.org>
---
 native/jni/java-lang/java_lang_VMSystem.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/native/jni/java-lang/java_lang_VMSystem.c 
b/native/jni/java-lang/java_lang_VMSystem.c
index 047c2b3..5c4a65b 100644
--- a/native/jni/java-lang/java_lang_VMSystem.c
+++ b/native/jni/java-lang/java_lang_VMSystem.c
@@ -141,7 +141,7 @@ Java_java_lang_VMSystem_nanoTime
   (JNIEnv * env,
    jclass thisClass __attribute__ ((__unused__)))
 {
-#ifdef _POSIX_MONOTONIC_CLOCK
+#if _POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK)
   jlong result;
   struct timespec tp;
 
-- 
1.7.4.1


Reply via email to