Avoid collisions between parallel installations of Cygwin

Earnie Boyd earnie@users.sourceforge.net
Tue Oct 13 19:36:00 GMT 2009


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




More information about the Cygwin-developers mailing list