libbacktrace: Conditionalize test timing on clock_gettime availability
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 2 Oct 2017 11:56:25 +0000 (13:56 +0200)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Mon, 2 Oct 2017 11:56:25 +0000 (13:56 +0200)
libbacktrace/
PR other/67165
* configure.ac: Check for clock_gettime.
* config.h.in: Regenerate.
* configure: Likewise.
* ztest.c (average_time, test_large): Conditionalize test timing
on clock_gettime availability.

From-SVN: r253344

libbacktrace/ChangeLog
libbacktrace/config.h.in
libbacktrace/configure
libbacktrace/configure.ac
libbacktrace/ztest.c

index 9597a687581cd7b37037039f5bc0f30b6386a9c6..0e4cfd24cd34cd41e11e0d44c3075bf5276273aa 100644 (file)
@@ -1,3 +1,12 @@
+2017-10-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR other/67165
+       * configure.ac: Check for clock_gettime.
+       * config.h.in: Regenerate.
+       * configure: Likewise.
+       * ztest.c (average_time, test_large): Conditionalize test timing
+       on clock_gettime availability.
+
 2017-09-29  Tony Reix  <tony.reix@atos.net>
 
        * xcoff.c: Initial support for DWARF debug sections in XCOFF.
index a9f70da85f2be579ce4b3e84bb25d21c48108128..c19b6e430cb57d5c8b5979de395cf6984c928b69 100644 (file)
@@ -9,6 +9,9 @@
 /* Define to 1 if you have the __atomic functions */
 #undef HAVE_ATOMIC_FUNCTIONS
 
+/* Define to 1 if you have the `clock_gettime' function. */
+#undef HAVE_CLOCK_GETTIME
+
 /* Define to 1 if you have the declaration of `strnlen', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRNLEN
index ece4151a0c62022b011b9e503fffbfe6466a54f5..062dc77c9b221c9d797113a66b47a7fda7f45385 100755 (executable)
@@ -12747,6 +12747,19 @@ $as_echo "#define HAVE_GETEXECNAME 1" >>confdefs.h
 
 fi
 
+# Check for the clock_gettime function.
+for ac_func in clock_gettime
+do :
+  ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
+if test "x$ac_cv_func_clock_gettime" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_CLOCK_GETTIME 1
+_ACEOF
+
+fi
+done
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5
 $as_echo_n "checking whether -pthread is supported... " >&6; }
 if test "${libgo_cv_lib_pthread+set}" = set; then :
index f389c72f9fd929161a9fd3dbebd2b251e5c533c6..75ec9f503a2a1e18ed868b6a98cda268737ac01f 100644 (file)
@@ -388,6 +388,9 @@ if test "$have_getexecname" = "yes"; then
   AC_DEFINE(HAVE_GETEXECNAME, 1, [Define if getexecname is available.])
 fi
 
+# Check for the clock_gettime function.
+AC_CHECK_FUNCS(clock_gettime)
+
 dnl Test whether the compiler supports the -pthread option.
 AC_CACHE_CHECK([whether -pthread is supported],
 [libgo_cv_lib_pthread],
index 103ad65506603c8cba9e922cf885ac6a49b67cee..0b1cbc35f0ca346f95a572bf36b70fccf3d46ff0 100644 (file)
@@ -43,6 +43,10 @@ POSSIBILITY OF SUCH DAMAGE.  */
 #include <zlib.h>
 #endif
 
+#ifdef HAVE_CLOCK_GETTIME
+# define TEST_TIMING
+#endif
+
 #include "backtrace.h"
 #include "backtrace-supported.h"
 
@@ -157,7 +161,7 @@ test_samples (struct backtrace_state *state)
     }
 }
 
-#ifdef HAVE_ZLIB
+#if defined HAVE_ZLIB && defined TEST_TIMING
 
 /* Given a set of TRIALS timings, discard the lowest and highest
    values and return the mean average of the rest.  */
@@ -216,6 +220,7 @@ test_large (struct backtrace_state *state)
   unsigned char *uncompressed_buf;
   size_t uncompressed_bufsize;
   int r;
+# ifdef TEST_TIMING
   clockid_t cid;
   struct timespec ts1;
   struct timespec ts2;
@@ -224,6 +229,7 @@ test_large (struct backtrace_state *state)
   const size_t trials = 16;
   size_t ctimes[16];
   size_t ztimes[16];
+# endif /* TEST_TIMING */
   static const char * const names[] = {
     "Mark.Twain-Tom.Sawyer.txt",
     "../libgo/go/compress/testdata/Mark.Twain-Tom.Sawyer.txt"
@@ -341,6 +347,8 @@ test_large (struct backtrace_state *state)
 
   printf ("PASS: inflate large\n");
 
+# ifdef TEST_TIMING
+
   for (i = 0; i < trials; ++i)
     {
       cid = CLOCK_REALTIME;
@@ -411,6 +419,8 @@ test_large (struct backtrace_state *state)
   printf ("zlib time:    : %zu ns\n", ztime);
   printf ("percentage    : %g\n", (double) ztime / (double) ctime);
 
+# endif /* TEST_TIMING */
+
   return;
 
  fail: