diff --git a/meson.build b/meson.build index 7c714ddf..cb5d4741 100644 --- a/meson.build +++ b/meson.build @@ -16,6 +16,11 @@ if cc.has_function('memfd_create') add_project_arguments('-DMEMFD_CREATE', language: 'c') endif +# Missing on DragonFly, FreeBSD < 14.1 +if cc.has_function('execvpe') + add_project_arguments('-DEXECVPE', language: 'c') +endif + utmp_backend = get_option('utmp-backend') if utmp_backend == 'auto' host_os = host_machine.system() diff --git a/slave.c b/slave.c index bcd864e1..2187eef3 100644 --- a/slave.c +++ b/slave.c @@ -31,7 +31,7 @@ struct environ { char **envp; }; -#if defined(__FreeBSD__) +#if !defined(EXECVPE) static char * find_file_in_path(const char *file) { @@ -82,11 +82,11 @@ foot_execvpe(const char *file, char *const argv[], char *const envp[]) return ret; } -#else /* !__FreeBSD__ */ +#else /* EXECVPE */ #define foot_execvpe(file, argv, envp) execvpe(file, argv, envp) -#endif /* !__FreeBSD__ */ +#endif /* EXECVPE */ static bool is_valid_shell(const char *shell)