qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Add configure clock_gettime() monotonic time test
@ 2013-04-02 15:42 Brad Smith
  2013-04-02 16:45 ` Paolo Bonzini
  0 siblings, 1 reply; 10+ messages in thread
From: Brad Smith @ 2013-04-02 15:42 UTC (permalink / raw)
  To: qemu-devel

Replace the hardcoded list of OS's utilizing clock_gettime() for monotonic
time with a configure test. This is to fix the use of monotonic time on
OpenBSD but allows for other POSIX compliant OS's such as NetBSD to also
utilize clock_gettime().


Signed-off-by: Brad Smith <brad@comstyle.com>

diff --git a/configure b/configure
index fbea75e..352d6a6 100755
--- a/configure
+++ b/configure
@@ -2896,6 +2896,21 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
 fi
 
 ##########################################
+# clock_gettime() probe, used for monotonic time
+clock_monotonic="no"
+cat > $TMPC << EOF
+#include <time.h>
+int main(void)
+{
+    clock_gettime(CLOCK_MONOTONIC, NULL);
+    return 0;  
+}   
+EOF
+if compile_prog "" "" ; then
+   clock_monotonic="yes"
+fi
+
+##########################################
 # spice probe
 if test "$spice" != "no" ; then
   cat > $TMPC << EOF
@@ -3671,6 +3686,9 @@ fi
 if test "$bswap_h" = "yes" ; then
   echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
 fi
+if test "$clock_monotonic" = "yes" ; then
+  echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak
+fi
 if test "$curl" = "yes" ; then
   echo "CONFIG_CURL=y" >> $config_host_mak
   echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index 1766b2d..d87dfa4 100644
--- a/include/qemu/timer.h
+++ b/include/qemu/timer.h
@@ -117,8 +117,7 @@ extern int use_rt_clock;
 
 static inline int64_t get_clock(void)
 {
-#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
-    || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
+#ifdef CONFIG_CLOCK_MONOTONIC
     if (use_rt_clock) {
         struct timespec ts;
         clock_gettime(CLOCK_MONOTONIC, &ts);
diff --git a/util/qemu-timer-common.c b/util/qemu-timer-common.c
index 16f5e75..1506942 100644
--- a/util/qemu-timer-common.c
+++ b/util/qemu-timer-common.c
@@ -49,9 +49,7 @@ int use_rt_clock;
 static void __attribute__((constructor)) init_get_clock(void)
 {
     use_rt_clock = 0;
-#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
-    || defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
-    || defined(__OpenBSD__)
+#ifdef CONFIG_CLOCK_MONOTONIC
     {
         struct timespec ts;
         if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-04-05  0:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-02 15:42 [Qemu-devel] [PATCH] Add configure clock_gettime() monotonic time test Brad Smith
2013-04-02 16:45 ` Paolo Bonzini
2013-04-02 22:28   ` Brad Smith
2013-04-02 22:52   ` Peter Maydell
2013-04-03  8:18     ` Paolo Bonzini
2013-04-03 19:22       ` Brad Smith
2013-04-03 20:00         ` Paolo Bonzini
2013-04-03 20:07         ` Brad Smith
2013-04-04 17:21         ` Brad Smith
2013-04-05  0:22           ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).