]> Savannah Git Hosting - gnulib.git/commitdiff
gettime: Fix compilation error in C++ mode on Android.
authorBruno Haible <bruno@clisp.org>
Mon, 9 Jan 2023 09:14:32 +0000 (10:14 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 9 Jan 2023 09:14:32 +0000 (10:14 +0100)
* m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Also test whether
timespec_get is declared.

ChangeLog
m4/gettime.m4

index 394a460a8ec6b0226fbf511df5e46f0e0c78e51d..5b0282dbb71b6bffad3ba63b81f07741b3750719 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-01-09  Bruno Haible  <bruno@clisp.org>
+
+       gettime: Fix compilation error in C++ mode on Android.
+       * m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Also test whether
+       timespec_get is declared.
+
 2023-01-09  Bruno Haible  <bruno@clisp.org>
 
        malloc-h: Fix compilation error in C++ mode on Android.
index 06f32fe26c2d8f9d99bed74bb69abc4514bd7663..7e353fcd00eecb7ce3e9e1c78a36b13cb0451f7a 100644 (file)
@@ -1,4 +1,4 @@
-# gettime.m4 serial 12
+# gettime.m4 serial 13
 dnl Copyright (C) 2002, 2004-2006, 2009-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -26,17 +26,24 @@ AC_DEFUN([gl_CHECK_FUNC_TIMESPEC_GET],
 
   dnl We can't use AC_CHECK_FUNC here, because timespec_get() is defined as a
   dnl static inline function in <time.h> on MSVC 14.
-  AC_CACHE_CHECK([for timespec_get], [gl_cv_func_timespec_get],
-    [AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <time.h>
-            struct timespec ts;
-          ]],
-          [[return timespec_get (&ts, 0);]])
-       ],
-       [gl_cv_func_timespec_get=yes],
-       [gl_cv_func_timespec_get=no])
-    ])
+  dnl But at the same time, we need to notice a missing declaration, like
+  dnl gl_CHECK_FUNCS_ANDROID does.
+  AC_CHECK_DECL([timespec_get], , , [[#include <time.h>]])
+  if test $ac_cv_have_decl_timespec_get = yes; then
+    AC_CACHE_CHECK([for timespec_get], [gl_cv_func_timespec_get],
+      [AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <time.h>
+              struct timespec ts;
+            ]],
+            [[return timespec_get (&ts, 0);]])
+         ],
+         [gl_cv_func_timespec_get=yes],
+         [gl_cv_func_timespec_get=no])
+      ])
+  else
+    gl_cv_func_timespec_get=no
+  fi
 ])
 
 AC_DEFUN([gl_GETTIME_RES],