Fix the MS-DOS, Haiku, USG, etc builds

* configure.ac (emacs_cv_boot_time_file): Only compute this on
GNU/Linux, the sole system with systemd.
* nt/inc/ms-w32.h (BOOT_TIME_FILE): Remove now redundant #undef.
* src/filelock.c (get_boot_time): Eschew BOOT_TIME_FILE if not
defined.
This commit is contained in:
Po Lu 2023-08-10 01:53:26 +00:00
parent e1d08e9e11
commit c4e0b10f18
3 changed files with 15 additions and 12 deletions

View file

@ -2625,11 +2625,11 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
fi
AC_SUBST([AUTO_DEPEND])
BOOT_TIME_FILE=
AC_CACHE_CHECK([for old but post-boot file],
[emacs_cv_boot_time_file],
[AS_CASE([$opsys],
[*bsd|darwin|dragonfly],
[emacs_cv_boot_time_file='not needed'],
[gnu-linux],
[emacs_cv_boot_time_file=unknown
AS_IF([test $cross_compiling = no],
[# systemd puts it in /var/lib/systemd.
@ -2642,19 +2642,22 @@ AC_CACHE_CHECK([for old but post-boot file],
/var/run/random-seed
do
test -f $file && { emacs_cv_boot_time_file=$file; break; }
done])])])
done])],
[*], [emacs_cv_boot_time_file=not-needed])])
AS_CASE([$emacs_cv_boot_time_file],
[/*|*:*], [BOOT_TIME_FILE=\"$emacs_cv_boot_time_file\"],
[NULL|nullptr|0], [BOOT_TIME_FILE=$emacs_cv_boot_time_file],
['not needed'], [BOOT_TIME_FILE=NULL],
['not needed'], [BOOT_TIME_FILE=],
[# Guess systemd if unknown.
# If guess is wrong, Emacs falls back on something else.
BOOT_TIME_FILE=\"/var/lib/systemd/random-seed\"])
AC_DEFINE_UNQUOTED([BOOT_TIME_FILE], [$BOOT_TIME_FILE],
[Name of file that, if it exists, postdates boot and predates
the first Emacs invocation; or a null pointer if no such file is known.
This file is used only on GNU/Linux and other systems
that lack the FreeBSD-style sysctl with KERN_BOOTTIME.])
AS_IF([test -n "$BOOT_TIME_FILE"],
[AC_DEFINE_UNQUOTED([BOOT_TIME_FILE], [$BOOT_TIME_FILE],
[Name of file that, if it exists, postdates boot and predates
the first Emacs invocation; or a null pointer if no such file is known.
This file is used only on GNU/Linux and other systems
that lack the FreeBSD-style sysctl with KERN_BOOTTIME.])])
#### Choose a window system.

View file

@ -121,7 +121,6 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
the output, but that's gross. So this should do; if the file is
not there, the boot time will be returned as zero, and filelock.c
already handles that. */
#undef BOOT_TIME_FILE
#define BOOT_TIME_FILE "C:/pagefile.sys"
/* ============================================================ */

View file

@ -159,7 +159,7 @@ get_boot_time (void)
}
#endif /* defined (CTL_KERN) && defined (KERN_BOOTTIME) */
if (BOOT_TIME_FILE)
#ifdef BOOT_TIME_FILE
{
struct stat st;
if (stat (BOOT_TIME_FILE, &st) == 0)
@ -168,6 +168,7 @@ get_boot_time (void)
return boot_time;
}
}
#endif /* BOOT_TIME_FILE */
#if defined (BOOT_TIME)
/* The utmp routines maintain static state. Don't touch that state