delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/01/17/14:28:58

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_RW,TW_WX,TW_XR,TW_YG,T_TO_NO_BRKTS_FREEMAIL
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <4D320D0B.601@cpan.org>
References: <4D30158D DOT 8090709 AT cpan DOT org> <4D3018EF DOT 60104 AT gmx DOT de> <4D305E4B DOT 3070600 AT cpan DOT org> <AANLkTinnsbsGhiEssYRMfoF1=0SdoPq7-+820NObNXN=@mail.gmail.com> <4D320D0B DOT 601 AT cpan DOT org>
Date: Mon, 17 Jan 2011 20:28:43 +0100
Message-ID: <AANLkTi=bHFeT1oW+vwxdTJxzrL5DL=6Ez+SsDmEMrE96@mail.gmail.com>
Subject: Re: More Weird Perl .dll Errors
From: Reini Urban <rurban AT x-ray DOT at>
To: rkitover AT cpan DOT org, cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

2011/1/15 Rafael Kitover:
> Hi Reini,
>
> I'm not having any luck:
>
> $ perl -MClass::XSAccessor -le 1
> Can't load
> '/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccess=
or.dll'
> for module Class::X
> SAccessor: No such file or directory at
> /usr/lib/perl5/5.10/i686-cygwin/XSLoader.pm line 70.
> =A0at /usr/lib/perl5/site_perl/5.10/i686-cygwin/Class/XSAccessor.pm line =
11
> Compilation failed in require.
> BEGIN failed--compilation aborted.
>
> $ perlrebase
> ...
> ReBaseImage
> (/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccess=
or.dll)
> failed with last e
> rror =3D 6

bad, not loadable.

> $ ls -l
> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccesso=
r.dll
> -rwxr-xrwx 1 rkitover None 500002 Jan 15 15:41

The o+w perm will fail for -T taint mode, but this is not the problem here.

> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/
> XSAccessor.dll
>
> $ peflags
> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccesso=
r.dll
> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccesso=
r.dll:
> coff(0x2106) pe(0x8000)

good

> $ imagebase
> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccesso=
r.dll
> 68640000

good.

> $ ldd
> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAccesso=
r.dll
> =A0 =A0 =A0 =A0ntdll.dll =3D> /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x7=
7480000)
> =A0 =A0 =A0 =A0kernel32.dll =3D> /cygdrive/c/Windows/syswow64/kernel32.dll
> (0x75530000)
> =A0 =A0 =A0 =A0KERNELBASE.dll =3D> /cygdrive/c/Windows/syswow64/KERNELBAS=
E.dll
> (0x74d70000)

bad.
This is all?
If so you have a mingw perl dll here, which cannot be loaded by cygwin perl.

mine:
$ ldd /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/XSAccessor/XSAcc=
essor.dll
        ntdll.dll =3D> /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x77990000)
        kernel32.dll =3D> /cygdrive/c/Windows/system32/kernel32.dll (0x7712=
0000)
        KERNELBASE.dll =3D> /cygdrive/c/Windows/system32/KERNELBASE.dll
(0x75b90000)
        cygwin1.dll =3D> /usr/bin/cygwin1.dll (0x61000000)
        ADVAPI32.DLL =3D> /cygdrive/c/Windows/system32/ADVAPI32.DLL (0x76e2=
0000)
        msvcrt.dll =3D> /cygdrive/c/Windows/system32/msvcrt.dll (0x75de0000)
        sechost.dll =3D> /cygdrive/c/Windows/SYSTEM32/sechost.dll (0x761900=
00)
        RPCRT4.dll =3D> /cygdrive/c/Windows/system32/RPCRT4.dll (0x77020000)
        cyggcc_s-1.dll =3D> /usr/bin/cyggcc_s-1.dll (0x67f00000)
        cygperl5_10.dll =3D> /usr/bin/cygperl5_10.dll (0x56010000)
        cygcrypt-0.dll =3D> /usr/bin/cygcrypt-0.dll (0x72fe0000)
        cygssp-0.dll =3D> /usr/bin/cygssp-0.dll (0x67280000)
        SspiCli.dll =3D> /cygdrive/c/Windows/system32/SspiCli.dll (0x759f00=
00)

> On 1/14/2011 12:00 PM, Reini Urban wrote:
>>
>> 2011/1/14 Rafael Kitover:
>>>
>>> I tried both peflagsall and rebaseall with a -T list including all .dlls
>>> under /usr/lib/perl5 as well as /usr/bin/cygperl5_10.dll
>>>
>>> But the error for MOP.dll persists.
>>
>> The Class::MOP and Sub::Name dll's are different beasts.
>> If they do not load, (even windows refuses to load them apparently)
>> you'll have to recompile them, followed by a perlrebase.
>>
>>> I'm not sure that when I tried the rebaseall it ran through to
>>> completion,
>>> because it gave me this error:
>>>
>>> FixImage (/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dl=
l)
>>> failed with last error =3D 13
>>
>> You have to exclude all mingw dll's from rebaseall.
>> This will be fixed in the next rebase package.
>>
>>> This is Windows 7 64bit
>>>
>>> On 1/14/2011 4:35 AM, Matthias Andree wrote:
>>>>
>>>> Am 14.01.2011 10:21, schrieb Rafael Kitover:
>>>>>
>>>>> Something weird happened to my Class::MOP .dll :
>>>>>
>>>>> $ perl -MClass::MOP -le 1
>>>>> Can't load
>>>>> '/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/MOP/MOP.dll' for
>>>>> module Class::MOP: No such fi
>>>>> le or directory at /usr/lib/perl5/5.10/i686-cygwin/XSLoader.pm line 7=
0.
>>>>> =A0 at /usr/lib/perl5/site_perl/5.10/i686-cygwin/Class/MOP.pm line 38
>>>>> Compilation failed in require.
>>>>> BEGIN failed--compilation aborted.
>>>>>
>>>>> If I try to run perlrebase, I get this:
>>>>>
>>>>> ...
>>>>> /usr/lib/perl5/5.10/i686-cygwin/auto/Time/Piece/Piece.dll: new base =
=3D
>>>>> 57900000, new size =3D 10000
>>>>> /usr/lib/perl5/5.10/i686-cygwin/auto/Unicode/Normalize/Normalize.dll:
>>>>> new base =3D 57910000, new size =3D 50000
>>>>> /usr/lib/perl5/5.10/i686-cygwin/auto/Win32/Win32.dll: new base =3D
>>>>> 57960000, new size =3D 20000
>>>>> /usr/lib/perl5/5.10/i686-cygwin/auto/Win32API/File/File.dll: new base=
 =3D
>>>>> 57980000, new size =3D 30000
>>>>> ReBaseImage
>>>>> (/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/MOP/MOP.dll)
>>>>> failed with last error =3D 6
>>
>> Either no write+exec permission or broken dependency.
>>
>>>>> I tried doing a "notest force install Class::MOP" in CPAN shell, same
>>>>> error after the installation finishes.
>>
>> If it's not the perm (unlikely), check the imagebase of your new dll:
>>
>> $ cat ~/bin/imagebase
>> #!/bin/sh
>> objdump -p $1 |grep ImageBase |cut -c12-
>>
>> $ imagebase
>> /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/MOP/MOP.dll
>> 66c00000
>>
>> And check the bases of the dependant dll's also: Anything below
>> 0x4000_0000 is broken.
>>
>> $ ldd /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Class/MOP/MOP.dll
>> =A0 =A0 =A0 =A0 ntdll.dll =3D> =A0/cygdrive/c/Windows/SYSTEM32/ntdll.dll=
 (0x778b0000)
>> =A0 =A0 =A0 =A0 kernel32.dll =3D> =A0/cygdrive/c/Windows/system32/kernel=
32.dll
>> (0x777d0000)
>> =A0 =A0 =A0 =A0 KERNELBASE.dll =3D> =A0/cygdrive/c/Windows/system32/KERN=
ELBASE.dll
>> (0x75cb0000)
>> =A0 =A0 =A0 =A0 cygwin1.dll =3D> =A0/usr/bin/cygwin1.dll (0x61000000)
>> =A0 =A0 =A0 =A0 ADVAPI32.DLL =3D> =A0/cygdrive/c/Windows/system32/ADVAPI=
32.DLL
>> (0x77730000)
>> =A0 =A0 =A0 =A0 msvcrt.dll =3D> =A0/cygdrive/c/Windows/system32/msvcrt.d=
ll
>> (0x76600000)
>> =A0 =A0 =A0 =A0 sechost.dll =3D> =A0/cygdrive/c/Windows/SYSTEM32/sechost=
.dll
>> (0x767e0000)
>> =A0 =A0 =A0 =A0 RPCRT4.dll =3D> =A0/cygdrive/c/Windows/system32/RPCRT4.d=
ll
>> (0x766b0000)
>> =A0 =A0 =A0 =A0 cyggcc_s-1.dll =3D> =A0/usr/bin/cyggcc_s-1.dll (0x67f000=
00)
>> =A0 =A0 =A0 =A0 cygperl5_10.dll =3D> =A0/usr/bin/cygperl5_10.dll (0x5601=
0000)
>> =A0 =A0 =A0 =A0 cygcrypt-0.dll =3D> =A0/usr/bin/cygcrypt-0.dll (0x694d00=
00)
>> =A0 =A0 =A0 =A0 cygssp-0.dll =3D> =A0/usr/bin/cygssp-0.dll (0x67280000)
>> =A0 =A0 =A0 =A0 SspiCli.dll =3D> =A0/cygdrive/c/Windows/system32/SspiCli=
.dll
>> (0x75910000)
>>
>>>>> I tried rebooting and running perlrebase again, same error.
>>>>
>>>> Try rebaseall, or if you're under Vista or 7, peflagsall.
--=20
Reini Urban
http://phpwiki.org/=A0 =A0 =A0 =A0 =A0=A0 http://murbreak.at/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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