From: Wayne S. <ws...@bi...> - 2004-02-13 14:50:36
|
From: Earnie Boyd <ea...@us...> > On another note, I do warn that using Cygwin binaries from with MSYS is > liable to cause you problems. I happen to know that at the moment the > mount table that a Cygwin process uses if started from an MSYS process > will be the one that MSYS has mapped. This should be able to fixed, I > would love to have it work correctly. Interesting. I just did some checking. I put this code in a bash script that I call using MSYS's bash from inside my bk binary. echo msys mounts mount echo cygwin mounts /c/cygwin/bin/bash -c mount PATH="$BK_OLDPATH" echo oldpath cygwin mounts /c/cygwin/bin/bash -c mount exit 0 Here is the output: msys mounts c:\bkwin\src\gnu\bin on /usr/bin type user (binmode,cygexec,noumount) c:\bkwin\src\gnu\bin on /bin type user (binmode,cygexec,noumount) c:\bkwin\src\gnu on / type user (binmode,noumount) c:\bkwin\src\gnu on /usr type user (binmode,noumount) a: on /a type user (binmode,noumount) c: on /c type user (binmode,noumount) d: on /d type user (binmode,noumount) e: on /e type user (binmode,noumount) cygwin mounts c:\bkwin\src\gnu\bin on /usr/bin type user (binmode,cygexec,noumount) c:\bkwin\src\gnu\bin on /bin type user (binmode,cygexec,noumount) c:\bkwin\src\gnu on / type user (binmode,noumount) c:\bkwin\src\gnu on /usr type user (binmode,noumount) a: on /a type user (binmode,noumount) c: on /c type user (binmode,noumount) d: on /d type user (binmode,noumount) e: on /e type user (binmode,noumount) oldpath cygwin mounts c:\cygwin\bin on /usr/bin type system (binmode) c:\cygwin\lib on /usr/lib type system (binmode) c:\cygwin on / type system (binmode) c:\foo on /mytmp type system (binmode) c: on /cygdrive/c type user (binmode,noumount) e: on /cygdrive/e type user (binmode,noumount) Notice that when I restore the PATH before calling at external program everything works correctly. So yes I see the bug you are talking about, but I appear to have dodged it. ;-) No... on further investigation, I think cygwin is restoring its mount table properly. It is just that in the second case I am running cygwin's bash, but msys's mount. This /c/cygwin/bin/bash -c /c/cygwin/bin/mount returns the expected output. It is irresponsible to run a cygwin program without restoring its directories to the path. Am I missing how to trigger the bug you are talking about? -Wayne |