Hi, cygcheck also searches the `basename <arg1>` for dependent DLLs while dlopen requires PATH to be set to open the DLL. One of them should be corrected to make life consistent. example is as follows:
$ cygcheck /usr/lib/gstreamer-0.8/cyggstossaudio.dll C:/cygwin/lib/gstreamer-0.8/cyggstossaudio.dll C:/cygwin/lib/gstreamer-0.8\cyggstaudio.dll C:\cygwin\bin\cygwin1.dll C:\WINDOWS\System32\ADVAPI32.DLL C:\WINDOWS\System32\ntdll.dll C:\WINDOWS\System32\KERNEL32.dll C:\WINDOWS\System32\RPCRT4.dll C:\cygwin\bin\cygglib-2.0-0.dll C:\cygwin\bin\cygiconv-2.dll C:\cygwin\bin\cygintl-3.dll C:\cygwin\bin\cyggobject-2.0-0.dll C:\cygwin\bin\cyggstreamer-0.8-1.dll C:\cygwin\bin\cyggmodule-2.0-0.dll C:\cygwin\bin\cyggthread-2.0-0.dll C:\cygwin\bin\cygpopt-0.dll C:\cygwin\bin\cygxml2-2.dll C:\cygwin\bin\cygz.dll C:\cygwin\bin\cyggstinterfaces-0.8-0.dll dlopen on /usr/lib/gstreamer-0.8/cyggstossaudio.dll fails(with win32 error 126) if /usr/lib/gstreamer-0.8 is not in PATH, probably because cyggstaudio.dll is in there. if I run the program with PATH=/usr/lib/gstreamer-0.8:$PATH <prog>, it dlopen()s the DLL fine. I think either cygcheck is misleading in this case or dlopen should check for basename of its argument to open the dependent DLLs as well. I am speculating that its the former. Thanks, Sunil PS: One more thing, errno is set to 13 (permission denied) after dlopen fails (although dlerror() pointed to 126). Is that right? __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/