This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Avoid collisions between parallel installations of Cygwin


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]