delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/07/09/17:27:10

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 <dancol AT dancol DOT org>
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> <CAHiT=DF+JfGcMVJ5x05cu1c7tZniRUfeTNNnBf4tzrHZq99+jA AT mail DOT gmail DOT com> <4FF8759A DOT 10400 AT gmail DOT com> <4FF88907 DOT 5060100 AT dancol DOT org> <CAHiT=DFvbMBSor+3cGQzpKE19YUHWH2uErkfGxcVOOAOt_J2sQ AT mail DOT gmail DOT com>
In-Reply-To: <CAHiT=DFvbMBSor+3cGQzpKE19YUHWH2uErkfGxcVOOAOt_J2sQ@mail.gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019