This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: Avoid collisions between parallel installations of Cygwin
- From: Earnie Boyd <earnie at users dot sourceforge dot net>
- To: cygwin-developers at cygwin dot com
- Date: Tue, 13 Oct 2009 19:36:31 +0000
- Subject: Re: Avoid collisions between parallel installations of Cygwin
- References: <4AD48C77.20004@cwilson.fastmail.fm>
I'm confused. Doesn't 1.7 set the root / directory based on the
location of the dll? Doesn't this help restrict the cross DLL talk?
So 3PP cygwin1.dll will have its /bin while net distro has a different
/bin and the two will never cross? If some executable is in a
directory requiring cygwin1.dll and that same directory has a
different cygwin1.dll the cygwin1.dll that is used is the one that
started the process and not the one that is in the same directory as
the exe file. Only if I change directory to the directory containing
another cygwin1.dll will there be collision. At least that is the
experience I have with MSYS.
/3pp/bin/cygwin1.dll
/3pp/bin/3pp.exe
/cygwin/bin/cygwin1.dll
/cygwin/bin/sh.exe
Start the /cygwin/bin/sh.exe
$ PATH=/bin:/3pp/bin
$ 3pp.exe
The 3pp.exe will use the /cygwin/bin/cygwin1.dll. Now this could be
bad for 3pp.exe but there isn't a collision in cygwin1.dll.
Start the /cygwin/bin/sh.exe
$ PATH=/bin:/3pp/bin
$ cd /3pp/bin
$ 3pp.exe
Now there is collision with the various cygwin1.dll. The usual
problem seen is one where the processes just hang and no input or
output can occur. The task manager is the only cure. However, one
must try to do this; well, it could be coincidental. It isn't going
to be a usual case.
--
Earnie