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";;