This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin 1.7.7: intermittent Perl "unable to remap *.dll" error with Windows 7/2008R2


2010/12/17 Larry Hall (Cygwin):
> On 12/16/2010 9:21 PM, Daniel Colascione wrote:
>> On 12/16/10 4:25 PM, Larry Hall (Cygwin) wrote:
>>> On 12/16/2010 5:34 PM, Manfred Brabec wrote:
>>>> Cygwin is really great, but has huge stability problems running on top
>>>> of Windows 7 or Windows 2008R2 (both 64Bit).
>>>>
>>>> When running Perl scipts, they intermittent stop with fatal error
>>>> "unable to remap" any dll. When you try to run the perl script several times,
>>>> then it will work again for one or if you are lucky for many times.
>>>>
>>>> Unsuccessful workarounds so far:
>>>> 1. ash -> ?rebaseall: does not solve the problem.
>>>
>>> For perl, you need perlrebase. ?rebaseall doesn't know about all the perl
>>> modules that you may have installed.
>>
>> Why doesn't rebase just look for all DLLs in the usual Cygwin locations
>> instead of using the package database?

Interesting problem:

1. We don't have enough address space for all DLL's.
E.g. I have about 20 different perl's in /usr/lib/perl5 to test,
similar to python.
I don't run these at the same time, so they can share the base.

2. We don't want to maintain thousands of perl and python subpackages
within cygwin's setup,
just the ones which are really needed as base, bootstrap and dependencies.
The rest can be done by the user himself in the usual way as
documented in perl and python.

Those DLL's should be rebased if needed on request. For perl I
developed perlrebase,
because I need it very often.

But the idea to just add /usr/lib/perl5/site_perl/5.10/ and the
equivalent python site path
to rebaseall is convincing.
But you have to persuade Jason which cmdline switch should used for this, and
it will be the first rebase non-cygwin packaged dll's.

Using perlrebase is much simplier IMHO but it solves your particular problem.

> I suppose it could. ?But the rebase package was developed to address the
> rebase problem for Cygwin packages that are part of the distribution. ?That
> includes perl. ?But perl can pull in its own stuff, particularly stuff that
> isn't in the distro. ?The rebase package would have to be taught how to find
> and handle those. ?Presumably, this could be done by leveraging what
> perlrebase does but that requires coordination and effort, even if Reini and
> Jason want it to happen. ?It's really their call since it's their packages
> that would be directly affected by any work to address your question.

See the patch in http://cygwin.com/ml/cygwin/2010-12/msg00091.html (-d0)
for the recent random adress layout problem with perl and report back.
This -d0 patch is not in the package.

Globally disabling it is really not advised.
-- 
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]