Fix the build on kFreeBSD - no UTIME_NOW.
authorPeter Pentchev <roam@ringlet.net>
Sat, 2 Apr 2022 19:44:53 +0000 (20:44 +0100)
committerPeter Pentchev <roam@debian.org>
Sat, 2 Apr 2022 19:44:53 +0000 (20:44 +0100)
Forwarded: no
Last-Update: 2022-03-20

Gbp-Pq: Name 0018-kfreebsd-ftbfs-utime-now.patch

programs/util.c

index 89c0d0515d0d7189397e9afa949781c549dafce0..36212886c1ed247cffa8e08079f7f00934d4f983 100644 (file)
@@ -28,7 +28,8 @@ extern "C" {
 #  include <io.h>         /* _chmod */
 #else
 #  include <unistd.h>     /* chown, stat */
-#  if PLATFORM_POSIX_VERSION < 200809L || !defined(st_mtime)
+#  if PLATFORM_POSIX_VERSION < 200809L || !defined(st_mtime) || defined(__FreeBSD_kernel__)
+#    include <sys/types.h>
 #    include <utime.h>    /* utime */
 #  else
 #    include <fcntl.h>    /* AT_FDCWD */
@@ -182,8 +183,9 @@ int UTIL_setFileStat(const char *filename, const stat_t *statbuf)
      * check because there are some platforms that claim to be POSIX 2008
      * compliant but which do not have st_mtim...
      * And then there is alpha, which doesn't define st_mtime, but still has it.
+     * Also, kFreeBSD does not seem to define UTIME_NOW.
      */
-#if (PLATFORM_POSIX_VERSION >= 200809L) && (defined(st_mtime) || defined(__alpha__))
+#if (PLATFORM_POSIX_VERSION >= 200809L) && (defined(st_mtime) || defined(__alpha__)) && (!defined(__FreeBSD_kernel__))
     {
         /* (atime, mtime) */
         struct timespec timebuf[2] = { {0, UTIME_NOW} };