diff options
author | Brad King <brad.king@kitware.com> | 2014-05-20 13:49:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-05-20 13:49:57 (GMT) |
commit | 0aa41c7b94e4b4db158beef30dc7035628c1708a (patch) | |
tree | 5f2338c20302145ccbf12be1a0c46321143c77a0 /Source | |
parent | 8c420ad3145306ff3606e9697fe2421a7bacfc64 (diff) | |
parent | 0c7f84ca41ebd871615426b9a159922422701859 (diff) | |
download | CMake-0aa41c7b94e4b4db158beef30dc7035628c1708a.zip CMake-0aa41c7b94e4b4db158beef30dc7035628c1708a.tar.gz CMake-0aa41c7b94e4b4db158beef30dc7035628c1708a.tar.bz2 |
Merge branch 'backport-kwsys-cygwin-fixes' into release
Diffstat (limited to 'Source')
-rw-r--r-- | Source/kwsys/ProcessUNIX.c | 6 | ||||
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c index faeb967..241e295 100644 --- a/Source/kwsys/ProcessUNIX.c +++ b/Source/kwsys/ProcessUNIX.c @@ -2413,6 +2413,12 @@ static void kwsysProcessKill(pid_t process_id) /* Suspend the process to be sure it will not create more children. */ kill(process_id, SIGSTOP); +#if defined(__CYGWIN__) + /* Some Cygwin versions seem to need help here. Give up our time slice + so that the child can process SIGSTOP before we send SIGKILL. */ + usleep(1); +#endif + /* Kill all children if we can find them. */ #if defined(__linux__) || defined(__CYGWIN__) /* First try using the /proc filesystem. */ diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index f4a443f..e5d8bde 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -92,7 +92,7 @@ extern char **environ; #endif #ifdef __CYGWIN__ -extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path); +# include <sys/cygwin.h> #endif // getpwnam doesn't exist on Windows and Cray Xt3/Catamount @@ -1110,7 +1110,10 @@ bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path) } else { - cygwin_conv_to_win32_path(path, win32_path); + if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0) + { + win32_path[0] = 0; + } SystemToolsTranslationMap::value_type entry(path, win32_path); SystemTools::Cyg2Win32Map->insert(entry); } |