]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Only provide execvpe(3) when needed
authorBrooks Davis <brooks@one-eyed-alien.net>
Fri, 1 Dec 2023 00:04:18 +0000 (16:04 -0800)
committerGitHub <noreply@github.com>
Fri, 1 Dec 2023 00:04:18 +0000 (16:04 -0800)
Check for the existence of execvpe(3) and only provide the FreeBSD
compat version if required.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Brooks Davis <brooks.davis@sri.com>
Closes #15609

config/user.m4
lib/libspl/include/os/freebsd/sys/param.h
lib/libzfs/os/freebsd/libzfs_compat.c

index 6ec27a5b2cf520e338cf0e569990ae733caebd20..87df8c7ccabd37c939b79807f9b87a1853d783b3 100644 (file)
@@ -31,7 +31,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
        ZFS_AC_CONFIG_USER_MAKEDEV_IN_MKDEV
        ZFS_AC_CONFIG_USER_ZFSEXEC
 
-       AC_CHECK_FUNCS([issetugid mlockall strlcat strlcpy])
+       AC_CHECK_FUNCS([execvpe issetugid mlockall strlcat strlcpy])
 
        AC_SUBST(RM)
 ])
index 15d3ff0dcb56193d665fdb5ee534299f8b40096f..1ff3ca8025fc264ec000dbd6d10d336e1f39d774 100644 (file)
@@ -57,6 +57,8 @@
 extern size_t spl_pagesize(void);
 #define        PAGESIZE        (spl_pagesize())
 
+#ifndef HAVE_EXECVPE
 extern int execvpe(const char *name, char * const argv[], char * const envp[]);
+#endif
 
 #endif
index d1c1fea7fb68ff825f197a60b4717518cd2b19c3..aef2abf62568338f091f796cf71a54d1c1d8b5d0 100644 (file)
@@ -38,7 +38,8 @@
 #define        ZFS_KMOD        "openzfs"
 #endif
 
-
+#ifndef HAVE_EXECVPE
+/* FreeBSD prior to 15 lacks execvpe */
 static int
 execvPe(const char *name, const char *path, char * const *argv,
     char * const *envp)
@@ -192,6 +193,7 @@ execvpe(const char *name, char * const argv[], char * const envp[])
 
        return (execvPe(name, path, argv, envp));
 }
+#endif /* !HAVE_EXECVPE */
 
 static __thread char errbuf[ERRBUFLEN];