X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-6.1 required=5.0 tests=AWL,BAYES_00,KHOP_PGP_SIGNED,KHOP_THREADED,SPF_HELO_PASS,TW_EG,TW_YG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <4FFB4C82.7050702@dancol.org> Date: Mon, 09 Jul 2012 14:26:26 -0700 From: Daniel Colascione User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: clisp crashes on startup References: <4FF76A98 DOT 2020309 AT dancol DOT org> <4FF833DC DOT 8090908 AT gmail DOT com> <4FF83C71 DOT 5000803 AT dancol DOT org> <4FF8759A DOT 10400 AT gmail DOT com> <4FF88907 DOT 5060100 AT dancol DOT org> In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigC9756C8AAB39780C62EFC81A" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------enigC9756C8AAB39780C62EFC81A Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 =3D> /Windows/SysWOW64/ntdll.dll (0x7de70000) >> kernel32.dll =3D> /Windows/syswow64/kernel32.dll (0x7dd60000) >> KERNELBASE.dll =3D> /Windows/syswow64/KERNELBASE.dll (0x7d850000) >> cyggcc_s-1.dll =3D> /usr/bin/cyggcc_s-1.dll (0xc5ab0000) >> cygwin1.dll =3D> /usr/bin/cygwin1.dll (0x61000000) >> cygcrypt-0.dll =3D> /usr/bin/cygcrypt-0.dll (0xc6400000) >> cygdb-4.5.dll =3D> /usr/bin/cygdb-4.5.dll (0xc5fd0000) >> cygfcgi-0.dll =3D> /usr/bin/cygfcgi-0.dll (0xc5e90000) >> cyggdbm-4.dll =3D> /usr/bin/cyggdbm-4.dll (0xc59e0000) >> cygiconv-2.dll =3D> /usr/bin/cygiconv-2.dll (0xc4110000) >> cygintl-8.dll =3D> /usr/bin/cygintl-8.dll (0xc40b0000) >> cygncurses-9.dll =3D> /usr/bin/cygncurses-9.dll (0xc39e0000) >> cygpcre-0.dll =3D> /usr/bin/cygpcre-0.dll (0xc37f0000) >> cygpq.dll =3D> /usr/bin/cygpq.dll (0xc3050000) >> cygcrypto-0.9.8.dll =3D> /usr/bin/cygcrypto-0.9.8.dll (0xc62c000= 0) >> cygz.dll =3D> /usr/bin/cygz.dll (0xc21f0000) >> cygldap-2-3-0.dll =3D> /usr/bin/cygldap-2-3-0.dll (0xc3e80000) >> cyglber-2-3-0.dll =3D> /usr/bin/cyglber-2-3-0.dll (0xc3f00000) >> cygcrypto-1.0.0.dll =3D> /usr/bin/cygcrypto-1.0.0.dll (0xc613000= 0) >> cygsasl2-2.dll =3D> /usr/bin/cygsasl2-2.dll (0xc2e90000) >> cygssl-1.0.0.dll =3D> /usr/bin/cygssl-1.0.0.dll (0xc2bd0000) >> cygssl-0.9.8.dll =3D> /usr/bin/cygssl-0.9.8.dll (0xc2c30000) >> cygreadline7.dll =3D> /usr/bin/cygreadline7.dll (0xc2f10000) >> cygncursesw-10.dll =3D> /usr/bin/cygncursesw-10.dll (0xc3990000) >> USER32.dll =3D> /Windows/syswow64/USER32.dll (0x7dc50000) >> GDI32.dll =3D> /Windows/syswow64/GDI32.dll (0x7dab0000) >> LPK.dll =3D> /Windows/syswow64/LPK.dll (0x7d620000) >> USP10.dll =3D> /Windows/syswow64/USP10.dll (0x6f8e0000) >> msvcrt.dll =3D> /Windows/syswow64/msvcrt.dll (0x6ff50000) >> ADVAPI32.dll =3D> /Windows/syswow64/ADVAPI32.dll (0x77c60000) >> sechost.dll =3D> /Windows/SysWOW64/sechost.dll (0x2b20000) >> RPCRT4.dll =3D> /Windows/syswow64/RPCRT4.dll (0x7db50000) >> SspiCli.dll =3D> /Windows/syswow64/SspiCli.dll (0x7d8a0000) >> CRYPTBASE.dll =3D> /Windows/syswow64/CRYPTBASE.dll (0x10000000) >> cygsigsegv-2.dll =3D> /usr/bin/cygsigsegv-2.dll (0xc2e40000) >> OLE32.dll =3D> /Windows/syswow64/OLE32.dll (0x72540000) >> OLEAUT32.DLL =3D> /Windows/syswow64/OLEAUT32.DLL (0x6fc30000) >> svm.dll =3D> /usr/lib/clisp-2.48/full/svm.dll (0xc1ec0000) >> cygstdc++-6.dll =3D> /usr/bin/cygstdc++-6.dll (0xc2af0000) >> ??? =3D> ??? (0x1490000) >> IMM32.DLL =3D> /Windows/system32/IMM32.DLL (0x7d910000) >> MSCTF.dll =3D> /Windows/syswow64/MSCTF.dll (0x70990000) >> >> >> That "??? =3D> ??? (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? >=20 > 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 im= age. >=20 > Hmm, if you haven't changed or corrupted the image it should also not hap= pen. > 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 =3D> /Windows/SysWOW64/ntdll.dll (0x7de70000) kernel32.dll =3D> /Windows/syswow64/kernel32.dll (0x7dd60000) KERNELBASE.dll =3D> /Windows/syswow64/KERNELBASE.dll (0x7d850000) cyggcc_s-1.dll =3D> /usr/bin/cyggcc_s-1.dll (0xc5ab0000) cygwin1.dll =3D> /usr/bin/cygwin1.dll (0x61000000) cygcrypt-0.dll =3D> /usr/bin/cygcrypt-0.dll (0xc6400000) cygiconv-2.dll =3D> /usr/bin/cygiconv-2.dll (0xc4110000) cygintl-8.dll =3D> /usr/bin/cygintl-8.dll (0xc40b0000) cygncurses-9.dll =3D> /usr/bin/cygncurses-9.dll (0xc39e0000) cygreadline7.dll =3D> /usr/bin/cygreadline7.dll (0xc2f10000) cygncursesw-10.dll =3D> /usr/bin/cygncursesw-10.dll (0xc3990000) USER32.dll =3D> /Windows/syswow64/USER32.dll (0x7dc50000) GDI32.dll =3D> /Windows/syswow64/GDI32.dll (0x7dab0000) LPK.dll =3D> /Windows/syswow64/LPK.dll (0x7d620000) USP10.dll =3D> /Windows/syswow64/USP10.dll (0x6f8e0000) msvcrt.dll =3D> /Windows/syswow64/msvcrt.dll (0x6ff50000) ADVAPI32.dll =3D> /Windows/syswow64/ADVAPI32.dll (0x77c60000) sechost.dll =3D> /Windows/SysWOW64/sechost.dll (0x2b20000) RPCRT4.dll =3D> /Windows/syswow64/RPCRT4.dll (0x7db50000) SspiCli.dll =3D> /Windows/syswow64/SspiCli.dll (0x7d8a0000) CRYPTBASE.dll =3D> /Windows/syswow64/CRYPTBASE.dll (0x10000000) cygsigsegv-2.dll =3D> /usr/bin/cygsigsegv-2.dll (0xc2e40000) OLE32.dll =3D> /Windows/syswow64/OLE32.dll (0x72540000) OLEAUT32.DLL =3D> /Windows/syswow64/OLEAUT32.DLL (0x6fc30000) ??? =3D> ??? (0x280000) IMM32.DLL =3D> /Windows/system32/IMM32.DLL (0x7d910000) MSCTF.dll =3D> /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. --------------enigC9756C8AAB39780C62EFC81A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAk/7TIQACgkQ17c2LVA10VtZ1ACg1jOwnoRThgNY+yIILilB0+A7 mGYAoJteuyBS0Pdz3P1wGTlseBTAIPFB =sK0Q -----END PGP SIGNATURE----- --------------enigC9756C8AAB39780C62EFC81A--