From f67449700b169dfab971773530ca8268448d4fbd Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 25 May 2024 14:40:25 +0200 Subject: [PATCH] meson: auto-detect execvpe on FreeBSD https://github.com/freebsd/freebsd-src/commit/0667d0e0e365 --- meson.build | 5 +++++ slave.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) 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)