X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-1.2 required=5.0	tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE
X-Spam-Check-By: sourceware.org
Message-ID: <4D2C5167.3030805@x-ray.at>
Date: Tue, 11 Jan 2011 13:47:35 +0100
From: Reini Urban <rurban@x-ray.at>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.16) Gecko/20101123 SeaMonkey/2.0.11
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: perl module .dll rebasing issues
References: <4D2C42B1.4070708@cpan.org>
In-Reply-To: <4D2C42B1.4070708@cpan.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Rafael Kitover schrieb:
> Hello, it seems the 'perlrebase' script does not fix my DLL mapping
> errors that I see when trying to install modules from the CPAN shell.
>
> This is what I see:
>
> CPAN.pm: Going to build A/AR/ARCANEZ/DBIx-Class-0.08126.tar.gz
>
> 3 [main] perl 3164 C:\cygwin\bin\perl.exe: *** fatal error - unable to
> remap \\?\C:\cygwin\lib\perl5\5.10
> \i686-cygwin\auto\Cwd\Cwd.dll to same address as parent: 0x9C0000 !=
> 0x5780000
> Stack trace:
> Frame Function Args
> 0088B0F8 6102749B (0088B0F8, 00000000, 00000000, 00000000)
> 0088B3E8 6102749B (61177B80, 00008000, 00000000, 61179977)
> 0088C418 61004AFB (611A136C, 6123EC6C, 009C0000, 05780000)
> End of stack trace
>
> After running perlrebase, I get the same exact result.

You probably are using the old perlrebase.
I think I'll have to update the package now.

> I also tried closing all cygwin processes, going into cmd.exe and then:
>
> cd \cygwin\bin
> ash
> ./find /usr/lib/perl5 -name '*.dll' > perl_dlls.txt
> ./rebaseall -T ./perl-dlls.txt
>
> but this doesn't help either.

This is not so good.
Either use rebaseall or perlrebase.
perlrebase only in case of perl dll's.

perlrebase rebases itself upwards from 0x5700 0000, and
rebaseall rebases all official dlls downwards from 0x7000 0000,
so that there is no clash.
You forgot to rebase the most important /bin/cygperl5_10.dll

Please check your /bin/perlrebase if the peflags -D0 is already enabled.
On Vista and Win7 esp. with 64 bit we need to disable ASLR (address 
space layout randomization) for all perl dlls as it is too fragile.

See http://sourceware.org/ml/cygwin/2010-12/msg00091.html

> I am running the latest cygwin (installed today) on Windows 7 64 bit on
> an eeebox eb1012 (nvidia ION chipset.)
-- 
Reini Urban
http://phpwiki.org/  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

