On 23/01/17 22:31, David Macek wrote: >> On 23. 1. 2017 13:58, Antoine Martin wrote: >>> Hi, >>> >>> It seems that the 64-bit version of the gtkglext package is missing >>> something as we are unable to load one of the DLL it installs: >>> >>> pacman -S mingw-w64-x86_64-gtkglext >>> python -c 'from ctypes import >>> cdll;cdll.LoadLibrary("C:\\msys64\\mingw64\\bin\\libgdkglext-win32-1.0-0.dll")' >>> >>> fails with: >>> WindowsError: [Error 127] The specified procedure could not be found >>> >>> The 32-bit version does not have this problem. >>> ldd doesn't show anything missing, depends.exe does show some problems >>> with libgdk_pixbuf - but I'm not sure I trust this ancient tool. >>> (and gdk_pixbuf is there of course) > > Manual inspection showed that the DLL is trying to import `DllMain` from > libgdk_pixbuf-2.0-0.dll, which it does not export. The 32-bit version has got > no such import entry. A quick googling hits this: https://github.com/mirror/mingw-w64/blob/master/mingw-w64-crt/crt/dllmain.c
So I guess that it might be enough to link against it? I just don't understand why the 64-bit version would need this explicitly when the 32-bit build does not. >>> Questions: >>> * what is the best way to check that a DLL is valid and has all its >>> required dependencies installed? (I use python here but surely there is >>> a better way?) > > I don't know any reliable general-purpose way. Seems like only ctypes and > depends find the issue. > >>> * can I trace the DLL loading to see where it is failing? > > You can try `ntldd`, `ldd`, `cygcheck`, `depends`, all with varying degrees > of success, YMMV. > >>> * since this problem does not affect the 32-bit version, it is fair to >>> assume that something is going wrong during building / linking - are >>> there any specific gotchas to look for? > > Sometimes an accident happens and there are bad packages (sometimes only on > one architecture), so it's good to ask if others have the same problem. I can > confirm this happens to me as well. If I run an appropriate command outside > MSYS2 (i.e. in plain cmd), I even get an error saying it's `DllMain` that's > missing. > > In conclusion, it seems some package(s) require(s) re-building. You should > probably open a ticket on <http://github.com/alexpux/mingw-packages>. Thanks. Done: https://github.com/Alexpux/MINGW-packages/issues/2121 As noted there, I've tried building from source but that didn't make any difference. Cheers Antoine ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Msys2-users mailing list Msys2-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/msys2-users