On 7/9/12 2:01 PM, Reini Urban wrote: > On Sat, Jul 7, 2012 at 2:07 PM, Daniel Colascione wrote: >> On 7/7/2012 10:44 AM, marco atzeri wrote: >>> On 7/7/2012 6:19 PM, Reini Urban wrote: >>>> On Sat, Jul 7, 2012 at 8:41 AM, Daniel Colascione wrote: >>>>> On 7/7/12 6:04 AM, marco atzeri wrote: >>>>>> On 7/7/2012 12:45 AM, Daniel Colascione wrote: >>>>>>> $ clisp >>>> >>>> Looks like a missing dependency or wrong dll perm. I saw none in your >>>> cygcheck. >>>> >>>> Can you try >>>> $ ldd /usr/lib/clisp-2.48/base/lisp.exe >>>> and see of one dll is missing. >>>> And check if one of the dll's has no x perm set. >>> >>> >>> $ cygcheck /usr/lib/clisp-2.48/base/lisp.exe >>> >>> should be better. ldd does not advise about missing dll's >> >> $ cygcheck /usr/lib/clisp-2.48/base/lisp.exe >> C:\lib\clisp-2.48\base\lisp.exe >> C:\bin\cyggcc_s-1.dll >> C:\bin\cygwin1.dll >> C:\Windows\system32\KERNEL32.dll >> C:\Windows\system32\API-MS-Win-Core-RtlSupport-L1-1-0.dll >> C:\Windows\system32\ntdll.dll >> C:\Windows\system32\KERNELBASE.dll >> C:\Windows\system32\API-MS-Win-Core-ProcessThreads-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Heap-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Memory-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Handle-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Synch-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-File-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-IO-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-ThreadPool-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-LibraryLoader-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-NamedPipe-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Misc-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-SysInfo-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Localization-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-ProcessEnvironment-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-String-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Debug-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-ErrorHandling-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Fibers-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Util-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Profile-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Security-Base-L1-1-0.dll >> C:\bin\cygcrypt-0.dll >> C:\bin\cygiconv-2.dll >> C:\bin\cygintl-8.dll >> C:\bin\cygncurses-9.dll >> C:\bin\cygreadline7.dll >> C:\bin\cygncursesw-10.dll >> C:\Windows\system32\USER32.dll >> C:\Windows\system32\GDI32.dll >> C:\Windows\system32\API-MS-Win-Core-LocalRegistry-L1-1-0.dll >> C:\Windows\system32\LPK.dll >> C:\Windows\system32\USP10.dll >> C:\Windows\system32\msvcrt.dll >> C:\Windows\system32\API-MS-Win-Core-Console-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-DateTime-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Core-Interlocked-L1-1-0.dll >> C:\Windows\system32\ADVAPI32.dll >> C:\Windows\system32\API-MS-WIN-Service-Core-L1-1-0.dll >> C:\Windows\system32\API-MS-WIN-Service-winsvc-L1-1-0.dll >> C:\Windows\system32\API-MS-WIN-Service-Management-L1-1-0.dll >> C:\Windows\system32\API-MS-WIN-Service-Management-L2-1-0.dll >> C:\Windows\system32\RPCRT4.dll >> C:\Windows\system32\SspiCli.dll >> C:\Windows\system32\CRYPTBASE.dll >> C:\Windows\system32\API-MS-Win-Core-DelayLoad-L1-1-0.dll >> C:\Windows\system32\API-MS-Win-Security-LSALookup-L1-1-0.dll >> C:\bin\cygsigsegv-2.dll >> C:\Windows\system32\OLE32.dll >> C:\Windows\system32\OLEAUT32.DLL >> >> ldd doesn't report an error either. ldd's output _is_ a bit odd, however: >> >> $ ldd /usr/lib/clisp-2.48/full/lisp.exe >> ntdll.dll => /Windows/SysWOW64/ntdll.dll (0x7de70000) >> kernel32.dll => /Windows/syswow64/kernel32.dll (0x7dd60000) >> KERNELBASE.dll => /Windows/syswow64/KERNELBASE.dll (0x7d850000) >> cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0xc5ab0000) >> cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000) >> cygcrypt-0.dll => /usr/bin/cygcrypt-0.dll (0xc6400000) >> cygdb-4.5.dll => /usr/bin/cygdb-4.5.dll (0xc5fd0000) >> cygfcgi-0.dll => /usr/bin/cygfcgi-0.dll (0xc5e90000) >> cyggdbm-4.dll => /usr/bin/cyggdbm-4.dll (0xc59e0000) >> cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0xc4110000) >> cygintl-8.dll => /usr/bin/cygintl-8.dll (0xc40b0000) >> cygncurses-9.dll => /usr/bin/cygncurses-9.dll (0xc39e0000) >> cygpcre-0.dll => /usr/bin/cygpcre-0.dll (0xc37f0000) >> cygpq.dll => /usr/bin/cygpq.dll (0xc3050000) >> cygcrypto-0.9.8.dll => /usr/bin/cygcrypto-0.9.8.dll (0xc62c0000) >> cygz.dll => /usr/bin/cygz.dll (0xc21f0000) >> cygldap-2-3-0.dll => /usr/bin/cygldap-2-3-0.dll (0xc3e80000) >> cyglber-2-3-0.dll => /usr/bin/cyglber-2-3-0.dll (0xc3f00000) >> cygcrypto-1.0.0.dll => /usr/bin/cygcrypto-1.0.0.dll (0xc6130000) >> cygsasl2-2.dll => /usr/bin/cygsasl2-2.dll (0xc2e90000) >> cygssl-1.0.0.dll => /usr/bin/cygssl-1.0.0.dll (0xc2bd0000) >> cygssl-0.9.8.dll => /usr/bin/cygssl-0.9.8.dll (0xc2c30000) >> cygreadline7.dll => /usr/bin/cygreadline7.dll (0xc2f10000) >> cygncursesw-10.dll => /usr/bin/cygncursesw-10.dll (0xc3990000) >> USER32.dll => /Windows/syswow64/USER32.dll (0x7dc50000) >> GDI32.dll => /Windows/syswow64/GDI32.dll (0x7dab0000) >> LPK.dll => /Windows/syswow64/LPK.dll (0x7d620000) >> USP10.dll => /Windows/syswow64/USP10.dll (0x6f8e0000) >> msvcrt.dll => /Windows/syswow64/msvcrt.dll (0x6ff50000) >> ADVAPI32.dll => /Windows/syswow64/ADVAPI32.dll (0x77c60000) >> sechost.dll => /Windows/SysWOW64/sechost.dll (0x2b20000) >> RPCRT4.dll => /Windows/syswow64/RPCRT4.dll (0x7db50000) >> SspiCli.dll => /Windows/syswow64/SspiCli.dll (0x7d8a0000) >> CRYPTBASE.dll => /Windows/syswow64/CRYPTBASE.dll (0x10000000) >> cygsigsegv-2.dll => /usr/bin/cygsigsegv-2.dll (0xc2e40000) >> OLE32.dll => /Windows/syswow64/OLE32.dll (0x72540000) >> OLEAUT32.DLL => /Windows/syswow64/OLEAUT32.DLL (0x6fc30000) >> svm.dll => /usr/lib/clisp-2.48/full/svm.dll (0xc1ec0000) >> cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0xc2af0000) >> ??? => ??? (0x1490000) >> IMM32.DLL => /Windows/system32/IMM32.DLL (0x7d910000) >> MSCTF.dll => /Windows/syswow64/MSCTF.dll (0x70990000) >> >> >> That "??? => ??? (0x1490000)" line is worrisome. I fired up a >> PROC_THREAD+LOADER ETW trace --- c:\windows\sysow64\kernel32.dll is >> loaded at that address and unloaded again before ldd gets around to >> calling GetModuleFileNameEx on it. Is that supposed to happen? > > No idea. 0x1490000 would be too low anyway, even for kernel32.dll. > Maybe it's just a temporary cygwin artefact. I don't think it's a Cygwin artifact --- after all, ETW _does_ show that we load and unload a DLL at that location. I can provide the trace if it'd help. The mystery entry in ldd shows up for _any_ program that links against cygwin1.dll and for cygwin1.dll itself, but not for other 32-bit programs like \windows\syswow64\notepad.exe >> I don't think it's a DLL issue, though. clisp _does_ start and print out >> its banner, so the OS loader has to get as far as running the program's >> entry point. clisp seems to be crashing when loading its saved memory image. > > Hmm, if you haven't changed or corrupted the image it should also not happen. > There is some dll rebase fixup happening when loading the image, this aera > is stable for years. > You could try to reinstall clisp. I've done that a few times now. I've also tried to compile the most recent clisp release from source, and it failed similarly. > 1. I cannot repro it and never heard of it before. Come to think of it, I've only seen this problem since upgrading the cygwin package. Previously, I was able to at least _start_ clisp. > 2. ldd reports wow64, cygcheck only 32bit dlls. That's expected. Cygcheck walks the import table, while ldd runs the program as a debugee prints the DLLs it actually loads. When running on a wow64 system, Windows transparently converts references to 32-bit DLLs to their wow64 equivalents. > You could try ldd the base/lisp.exe not the full. full has much > more dll deps $ ldd /usr/lib/clisp-2.48/base/lisp.exe ntdll.dll => /Windows/SysWOW64/ntdll.dll (0x7de70000) kernel32.dll => /Windows/syswow64/kernel32.dll (0x7dd60000) KERNELBASE.dll => /Windows/syswow64/KERNELBASE.dll (0x7d850000) cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0xc5ab0000) cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000) cygcrypt-0.dll => /usr/bin/cygcrypt-0.dll (0xc6400000) cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0xc4110000) cygintl-8.dll => /usr/bin/cygintl-8.dll (0xc40b0000) cygncurses-9.dll => /usr/bin/cygncurses-9.dll (0xc39e0000) cygreadline7.dll => /usr/bin/cygreadline7.dll (0xc2f10000) cygncursesw-10.dll => /usr/bin/cygncursesw-10.dll (0xc3990000) USER32.dll => /Windows/syswow64/USER32.dll (0x7dc50000) GDI32.dll => /Windows/syswow64/GDI32.dll (0x7dab0000) LPK.dll => /Windows/syswow64/LPK.dll (0x7d620000) USP10.dll => /Windows/syswow64/USP10.dll (0x6f8e0000) msvcrt.dll => /Windows/syswow64/msvcrt.dll (0x6ff50000) ADVAPI32.dll => /Windows/syswow64/ADVAPI32.dll (0x77c60000) sechost.dll => /Windows/SysWOW64/sechost.dll (0x2b20000) RPCRT4.dll => /Windows/syswow64/RPCRT4.dll (0x7db50000) SspiCli.dll => /Windows/syswow64/SspiCli.dll (0x7d8a0000) CRYPTBASE.dll => /Windows/syswow64/CRYPTBASE.dll (0x10000000) cygsigsegv-2.dll => /usr/bin/cygsigsegv-2.dll (0xc2e40000) OLE32.dll => /Windows/syswow64/OLE32.dll (0x72540000) OLEAUT32.DLL => /Windows/syswow64/OLEAUT32.DLL (0x6fc30000) ??? => ??? (0x280000) IMM32.DLL => /Windows/system32/IMM32.DLL (0x7d910000) MSCTF.dll => /Windows/syswow64/MSCTF.dll (0x70990000) Also, $ clisp -k clisp: invalid command-line option (-k), try `clisp --help' > 3. I do not have all those .net dlls in my process. Maybe we need a manifest? What .NET DLLs? Do you mean the APIset stuff? That's new in Windows 7 / 2K8R2.