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: Subject: Re: More Weird Perl .dll Errors From: Reini Urban To: rkitover AT cpan DOT org, cygwin AT cygwin DOT com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 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