libfortran: Fix execute_command_line for Windows
On Windows, 'system' is called - that fails with -1 if the command interpreter could not be started; on POSIX systems, if the child process could not be started by the shell, exit(127)/_exit(127) is called/returned. On Windows, cmd.exe (and also the PowerShell) return errorlevel 9009. libgfortran/ChangeLog: * intrinsics/execute_command_line.c (execute_command_line): On Windows, regard system()'s return value of 9009 as EXEC_INVALIDCOMMAND.
This commit is contained in:
parent
0f85ae6591
commit
8e2c6e7b42
1 changed files with 5 additions and 0 deletions
|
@ -144,6 +144,11 @@ execute_command_line (const char *command, bool wait, int *exitstat,
|
|||
#if defined(WEXITSTATUS) && defined(WIFEXITED)
|
||||
|| (WIFEXITED(res) && WEXITSTATUS(res) == 127)
|
||||
|| (WIFEXITED(res) && WEXITSTATUS(res) == 126)
|
||||
#endif
|
||||
#ifdef __MINGW32__
|
||||
/* cmd.exe sets the errorlevel to 9009,
|
||||
if the command could not be executed. */
|
||||
|| res == 9009
|
||||
#endif
|
||||
)
|
||||
/* Shell return codes 126 and 127 mean that the command line could
|
||||
|
|
Loading…
Add table
Reference in a new issue