summaryrefslogtreecommitdiffstats
path: root/Utilities/cmlibuv/src/unix/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/cmlibuv/src/unix/process.c')
-rw-r--r--Utilities/cmlibuv/src/unix/process.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Utilities/cmlibuv/src/unix/process.c b/Utilities/cmlibuv/src/unix/process.c
index 39ec451..5c39da6 100644
--- a/Utilities/cmlibuv/src/unix/process.c
+++ b/Utilities/cmlibuv/src/unix/process.c
@@ -37,7 +37,11 @@
#include <sched.h>
#if defined(__APPLE__)
-# include <spawn.h>
+ /* macOS 10.8 and later have a working posix_spawn */
+# if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
+# define UV_USE_APPLE_POSIX_SPAWN
+# include <spawn.h>
+# endif
# include <paths.h>
# include <sys/kauth.h>
# include <sys/types.h>
@@ -430,7 +434,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
#endif
-#if defined(__APPLE__)
+#if defined(UV_USE_APPLE_POSIX_SPAWN)
typedef struct uv__posix_spawn_fncs_tag {
struct {
int (*addchdir_np)(const posix_spawn_file_actions_t *, const char *);
@@ -882,7 +886,7 @@ static int uv__spawn_and_init_child(
int exec_errorno;
ssize_t r;
-#if defined(__APPLE__)
+#if defined(UV_USE_APPLE_POSIX_SPAWN)
uv_once(&posix_spawn_init_once, uv__spawn_init_posix_spawn);
/* Special child process spawn case for macOS Big Sur (11.0) onwards