Mail Archives: cygwin/2011/01/14/12:00:57
| X-Recipient: | archive-cygwin AT delorie DOT com | 
| X-SWARE-Spam-Status: | No, hits=-2.4 required=5.0	tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ,TW_YG,T_TO_NO_BRKTS_FREEMAIL | 
| X-Spam-Check-By: | sourceware.org | 
| MIME-Version: | 1.0 | 
| In-Reply-To: | <4D305E4B.3070600@cpan.org> | 
| References: | <4D30158D DOT 8090709 AT cpan DOT org>	<4D3018EF DOT 60104 AT gmx DOT de>	<4D305E4B DOT 3070600 AT cpan DOT org> | 
| Date: | Fri, 14 Jan 2011 18:00:35 +0100 | 
| Message-ID: | <AANLkTinnsbsGhiEssYRMfoF1=0SdoPq7-+820NObNXN=@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/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.dll)
> 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 70.
>>> =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
        ntdll.dll =3D> /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x778b0000)
        kernel32.dll =3D> /cygdrive/c/Windows/system32/kernel32.dll (0x777d=
0000)
        KERNELBASE.dll =3D> /cygdrive/c/Windows/system32/KERNELBASE.dll
(0x75cb0000)
        cygwin1.dll =3D> /usr/bin/cygwin1.dll (0x61000000)
        ADVAPI32.DLL =3D> /cygdrive/c/Windows/system32/ADVAPI32.DLL (0x7773=
0000)
        msvcrt.dll =3D> /cygdrive/c/Windows/system32/msvcrt.dll (0x76600000)
        sechost.dll =3D> /cygdrive/c/Windows/SYSTEM32/sechost.dll (0x767e00=
00)
        RPCRT4.dll =3D> /cygdrive/c/Windows/system32/RPCRT4.dll (0x766b0000)
        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 (0x694d0000)
        cygssp-0.dll =3D> /usr/bin/cygssp-0.dll (0x67280000)
        SspiCli.dll =3D> /cygdrive/c/Windows/system32/SspiCli.dll (0x759100=
00)
>>> 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 -