diff options
Diffstat (limited to 'unix')
| -rw-r--r-- | unix/tcl.m4 | 1 | ||||
| -rw-r--r-- | unix/tclUnixPort.h | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/unix/tcl.m4 b/unix/tcl.m4 index dfa812b..9d2c38c 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -2069,6 +2069,7 @@ dnl # preprocessing tests use only CPPFLAGS. # Check for posix_spawnp() and friends unconditionally AC_CHECK_FUNCS(posix_spawnp posix_spawn_file_actions_adddup2 posix_spawnattr_setflags) + AC_CHECK_FUNCS([vfork]) # FIXME: This subst was left in only because the TCL_DL_LIBS # entry in tclConfig.sh uses it. It is not clear why someone diff --git a/unix/tclUnixPort.h b/unix/tclUnixPort.h index c2115df..ea4beac 100644 --- a/unix/tclUnixPort.h +++ b/unix/tclUnixPort.h @@ -636,6 +636,20 @@ extern char ** environ; defined(HAVE_WEAK_IMPORT) && MAC_OS_X_VERSION_MIN_REQUIRED < 1050 # warning "Weak import of 64-bit CoreFoundation is not supported, will not run on Mac OS X < 10.5." # endif +# if defined(HAVE_POSIX_SPAWNP) +/* + * Under macOS, test exec-17.1 fails (I/O setup after closing stdout) with + * posix_spawnp(), but the classic implementation (based on fork()+execvp()) + * works without the severe performance implications with large memory + * footprints. So, deactivate HAVE_POSIX_SPAWNP + */ +# undef HAVE_POSIX_SPAWNP +# endif +#else +# if defined(HAVE_POSIX_SPAWNP) && defined(HAVE_VFORK) +# define USE_VFORK +# undef HAVE_POSIX_SPAWNP +# endif #endif /* __APPLE__ */ /* |
