diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-02-17 12:11:15 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-02-17 12:11:15 -0800 |
commit | 3080fb5f28e0337b5859f4d6eb19bda9207a65fa (patch) | |
tree | a5db86f189fa8aa638ef82285668d387cb3dd500 /configure | |
parent | 4247fc89d9dba503a1eb6e211eae604835d782f7 (diff) | |
download | txr-3080fb5f28e0337b5859f4d6eb19bda9207a65fa.tar.gz txr-3080fb5f28e0337b5859f4d6eb19bda9207a65fa.tar.bz2 txr-3080fb5f28e0337b5859f4d6eb19bda9207a65fa.zip |
cygwin: use spawnvp for run and sh.
We revive the dead _wspawnvp code that was used on MinGW, a
platform that has not been supported for years, adapting it
for Cygwin.
* configure: Correct the _wspawnlp test; it should have been
testing for _wspawnvp function, which is what is is actually
used by the matching code. Moreover, the broken test was
calling _wspawnlp with _wspawnvp style arguments. Anyway, this
is moot because we will never detect this function in the
foreseeable future. More importantly, adding a test for
spawnvp, which exists on Cygwin.
* stream.c: Include the <process.h> header if HAVE_WSPAWN or
HAVE_SPAWN. This was missing before; how did the _wspawnvp
call ever compile?
(w_spawnvp): New static function.
(run): spawn version now calls either _wspawwnvp or w_spawnvp
if that is not available. We test for HAVE_WSPAWN or
HAVE_SPAWN first, before HAVE_FORK_STUFF, so that we use the
spawn function preferentially. On Cygwin, we have the fork
stuff.
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -2506,7 +2506,7 @@ else printf "no\n" fi -printf "Checking for _wspawnlp ... " +printf "Checking for _wspawnvp ... " cat > conftest.c <<! #include "config.h" @@ -2516,7 +2516,7 @@ cat > conftest.c <<! int main(int argc, char **argv) { wchar_t *wargv[] = { L"foo", L"bar", 0 }; - int r = _wspawnlp(_P_WAIT, L"foo", wargv); + int r = _wspawnvp(_P_WAIT, L"foo", wargv); return 0; } ! @@ -2527,6 +2527,25 @@ else printf "no\n" fi +printf "Checking for spawnvp ... " + +cat > conftest.c <<! +#include "config.h" +#include <process.h> + +int main(int argc, char **argv) +{ + int r = spawnvp(_P_WAIT, "foo", argv); + return 0; +} +! +if conftest ; then + printf "yes\n" + printf "#define HAVE_SPAWN 1\n" >> config.h +else + printf "no\n" +fi + printf "Checking for chsize ... " cat > conftest.c <<! #include <unistd.h> |