]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
Provide compat shims for sys/{mount.h,statvfs.h).
authorDarren Tucker <dtucker@dtucker.net>
Mon, 9 Feb 2026 18:34:46 +0000 (05:34 +1100)
committerDarren Tucker <dtucker@dtucker.net>
Tue, 10 Feb 2026 02:17:21 +0000 (13:17 +1100)
In addition to shimming on platforms that don't have them, we also need to
shim sys/mount.h on DragonFlyBSD since it uses its native STAILQ_ENTRYs
which our compat queues.h does not have, which causes sftp-server.o to
not build.  This is a little icky, but it limits the blast radius to
just one source file on only DragonFly.  ok djm@

configure.ac
sftp-client.c
sftp-server.c
sftp.c

index c6245305dabf6f39b53409c27ad69fa1edf16081..42dffd154516f21a98391cc849f39678e5b2b33e 100644 (file)
@@ -536,7 +536,9 @@ AC_CHECK_HEADERS([ \
     poll.h \
     stdint.h \
     sys/mman.h \
+    sys/mount.h \
     sys/stat.h \
+    sys/statvfs.h \
     sys/time.h \
     sys/un.h \
     time.h \
@@ -569,6 +571,16 @@ for include in sys/queue.h sys/tree.h; do
        esac >"$header"
 done
 
+# DragonFly uses STAILQ_* in its sys/mount.h, so we explicitly
+# need to include the system one first, not our shim.
+case "$host" in
+*-*-dragonfly*)
+       mkdir -p openbsd-compat/include/sys
+       echo '#include "/usr/include/sys/queue.h"'
+       echo '#include "/usr/include/sys/mount.h"'
+       ;;
+esac > "openbsd-compat/include/sys/mount.h"
+
 AC_CHECK_DECLS([le32toh, le64toh, htole64], [], [], [
 #ifdef HAVE_SYS_TYPES_H
 # include <sys/types.h>
index d8b3645810232d1f7004bee2244dffb3c3ce642c..164ab40729014ecda5905e9f5f3f05d0b512e6a1 100644 (file)
 
 #include <sys/types.h>
 #include <sys/queue.h>
-#ifdef HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
 #include <sys/stat.h>
 #include <sys/time.h>
+#include <sys/statvfs.h>
 #include <sys/uio.h>
 
 #include <dirent.h>
index 2f725d2653cd4303b64bb3168f23f34b95d922ac..feb2ad8ac67555491cbd80a66ac3cfd24f9d5f67 100644 (file)
 #include <sys/resource.h>
 #include <sys/stat.h>
 #include <sys/time.h>
-#ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
-#endif
-#ifdef HAVE_SYS_STATVFS_H
 #include <sys/statvfs.h>
-#endif
 
 #include <dirent.h>
 #include <errno.h>
diff --git a/sftp.c b/sftp.c
index f2be1fe38112129d04d33b26f140679b67c20452..b4d2c802d3c0819cebeb98f7beb3c18425289426 100644 (file)
--- a/sftp.c
+++ b/sftp.c
 #include <sys/ioctl.h>
 #include <sys/stat.h>
 #include <sys/socket.h>
-#include <sys/wait.h>
-#ifdef HAVE_SYS_STATVFS_H
 #include <sys/statvfs.h>
-#endif
+#include <sys/wait.h>
 
 #include <ctype.h>
 #include <errno.h>