The test-time test fails on FreeBSD 14.0/x86_64, in a VirtualBox VM, but
only if 2 or more CPUs are assigned to the VM.

This patch fixes it.


2024-06-28  Bruno Haible  <br...@clisp.org>

        time: Fix test failure on FreeBSD.
        * m4/time.m4 (gl_FUNC_TIME): Guess no for FreeBSD in general.
        * doc/posix-functions/time.texi: Mention FreeBSD in general.

diff --git a/doc/posix-functions/time.texi b/doc/posix-functions/time.texi
index 39a00d4370..804c2a3bfa 100644
--- a/doc/posix-functions/time.texi
+++ b/doc/posix-functions/time.texi
@@ -12,7 +12,10 @@
 This function is not consistent with @code{gettimeofday} and 
@code{timespec_get}
 on some platforms:
 @c https://sourceware.org/bugzilla/show_bug.cgi?id=30200
-glibc 2.31 or newer on Linux, FreeBSD 12.2/sparc64, AIX 7.2, native Windows.
+glibc 2.31 or newer on Linux,
+@c Only seen on machines with 2 or more CPUs.
+FreeBSD 14.0,
+AIX 7.2, native Windows.
 Namely, in the first 1 to 2.5 milliseconds of every second (or, on AIX and
 Windows, in the first 5 milliseconds of every second), @code{time} returns
 a value that is one less than the @code{tv_sec} part of the return value of
diff --git a/m4/time.m4 b/m4/time.m4
index ba5b65cead..dd346419ff 100644
--- a/m4/time.m4
+++ b/m4/time.m4
@@ -1,5 +1,5 @@
 # time.m4
-# serial 5
+# serial 6
 dnl Copyright (C) 2023-2024 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,7 @@ AC_DEFUN([gl_FUNC_TIME]
      dnl   - glibc >= 2.31 with Linux. And binaries produced on glibc < 2.31
      dnl     need to run fine on newer glibc versions as well; therefore ignore
      dnl     __GLIBC_MINOR__.
-     dnl   - FreeBSD/sparc,
+     dnl   - FreeBSD, on machines with 2 or more CPUs,
      dnl   - AIX,
      dnl   - native Windows.
      case "$host_os" in
@@ -33,12 +33,7 @@ AC_DEFUN([gl_FUNC_TIME]
            [gl_cv_func_time_works="guessing no"],
            [gl_cv_func_time_works="guessing yes"])
          ;;
-       freebsd*)
-         case "$host_cpu" in
-           sparc*)        gl_cv_func_time_works="guessing no";;
-           *)             gl_cv_func_time_works="guessing yes";;
-         esac
-         ;;
+       freebsd*)          gl_cv_func_time_works="guessing no";;
        aix*)              gl_cv_func_time_works="guessing no";;
        mingw* | windows*) gl_cv_func_time_works="guessing no";;
        *)                 gl_cv_func_time_works="guessing yes";;




Reply via email to