On Oct 27 07:31, Christian Franke wrote: > Corinna Vinschen wrote: > >On Oct 25 13:10, Corinna Vinschen wrote: > >>On Oct 24 23:17, Denis Excoffier wrote: > >>>2014-10-24 22:16, Christian Franke wrote: > >>>>Another possible solution: > >>>>Check for e.g. CYGWIN_DLLPATH environment variable before calling > >>>>SetDllDirectory(). > >>>> > >>>>If unset or empty, call SetDllDirectory("X:\path_to_cygwin\bin"); > >>>>else if set to ".", do nothing. > >>>>else call SetDllDirectory(CYGWIN_DLLPATH); > >>>> > >>>>The above 'make check' should then work again as 'CYGWIN_DLLPATH=. make > >>>>check'. > >>>I can buy this. Setting 'export CYGWIN_DLLPATH := .' at the beginning of > >>>the Makefile will > >>>do the job. > >>> > >>>>Possible enhancement: If AddDllDirectory() is available (>= Win8), accept > >>>>a real search path in CYGWIN_DLLPATH. > >>>Also perhaps you can use yet another subitem in the CYGWIN environment > >>>variable? > >>If AddDllDirectory works without much hassle, which I have to test first, > >>why introduce CYGWIN_DLLPATH or another CYGWIN item? > >> > >>LD_LIBRARY_PATH would be the one we want then, wouldn't it? > >One really big problem with AddDllDirectory is this: While you can add > >multiple directories to the search path, the order in which these > >directories are added does not specify a search order. In fact, the > >order in which the paths are searched is unspecified per MSDN. > > > >In Denis example that means, if we add /usr/bin and /my/dir/bin to the > >DLL search path, Denis case works or it doesn't, and we never know when > >it will work and when it won't, and we have no way to influence this. > >Oh boy. > > > >Apart from SetDllDirectory and AddDllDirectory, what about this very > >simple solution in Cygwin: > > > >- Don't call SetDllDirectory at all, thus "." is kept in the search > > path. > > > >- In execve, when creating the Windows environment for the child process, > > check if $PATH is empty. If so, set $PATH to /bin for the child. > > Or, check if /bin is in $PATH, if not, add it. > > > >That would catch both problems, backward compatibility with Denis > >scenario, as well as the PATH setting in postfix. > > OK for me. For postfix, the '$PATH is empty' check would be sufficient.
Thanks, I applied a patch to add the Windows version of /bin to the Windows environment when spawning a new process. Checking if $PATH contains this dir is a bit awkward. If it really turns out to be necessary at one point, we can add it then. I'm going to create a 1.7.33-0.3 test release later today. Thanks guys, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpq0tpoDuCrY.pgp
Description: PGP signature