Use spawnve on cygwin.

* configure.ac (AC_CHECK_HEADERS): Add process.h.
	(checkfuncs): Add dup3, spawnve, spawnvpe; sort the list.
	(AC_CHECK_FUNCS): Add dup3, spawnve, spawnvpe.
	* configure, config.in: Rebuild.
	* pex-unix.c [HAVE_SPAWNVE] (pex_unix_exec_child): New function.
	[HAVE_SPAWNVE] (save_and_install_fd, restore_fd): New functions.
This commit is contained in:
Richard Henderson 2010-11-04 23:41:21 +00:00
parent f445451a1f
commit 9c55e06476
5 changed files with 237 additions and 13 deletions

View file

@ -246,7 +246,7 @@ AC_SUBST_FILE(host_makefile_frag)
# It's OK to check for header files. Although the compiler may not be
# able to link anything, it had better be able to at least compile
# something.
AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h)
AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h)
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
@ -358,9 +358,10 @@ funcs="$funcs setproctitle"
vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
checkfuncs="$checkfuncs realpath canonicalize_file_name pstat_getstatic pstat_getdynamic sysmp"
checkfuncs="$checkfuncs getsysinfo table sysctl wait3 wait4 __fsetlocking"
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrusage getsysinfo \
gettimeofday on_exit psignal pstat_getdynamic pstat_getstatic realpath \
sbrk spawnve spawnvpe strerror strsignal sysconf sysctl sysmp table \
times wait3 wait4"
# These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h.
@ -368,6 +369,7 @@ if test "x" = "y"; then
AC_CHECK_FUNCS(asprintf atexit \
basename bcmp bcopy bsearch bzero \
calloc canonicalize_file_name clock \
dup3 \
ffs __fsetlocking \
getcwd getpagesize getrusage getsysinfo gettimeofday \
index insque \
@ -375,8 +377,8 @@ if test "x" = "y"; then
on_exit \
psignal pstat_getdynamic pstat_getstatic putenv \
random realpath rename rindex \
sbrk setenv setproctitle sigsetmask snprintf stpcpy stpncpy strcasecmp strchr \
strdup \
sbrk setenv setproctitle sigsetmask snprintf spawnve spawnvpe \
stpcpy stpncpy strcasecmp strchr strdup \
strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
strtoul strverscmp sysconf sysctl sysmp \
table times tmpnam \