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: ruby rebase / remap problems


On Thu, 24 Jan 2013 22:53:28 +0000, David Stacey wrote:
> Forgive my naive understanding of this, but I gather that rebaseall 
> allocates a portion of memory for each Cygwin dll. Presumably, this 
> bucket of memory is finite, so is it possible that Cygwin could ever 
> grow to a size where it effectively runs out of rebasing address space - 
> particularly on XP, which doesn't support Address Space Layout 
> Randomization?

Yes, it's possible, depending on how much you install.  Ports is so
large that installing everything will easily take the entire lower
2GB if not more.  The answer is only to install what is necessary
(which is a good policy in any event).

> 1. If I install just ruby and g++ into a fresh Cygwin installation, then 
> ruby works fine. I add more packages, do a rebaseall, and still ruby 
> runs fine. Again, I add more packages, followed by a rebaseall, and ruby 
> is OK. I only get the rebase / remap errors after installing absolutely 
> everything. So we either have a clash with another Cygwin package, or we 
> have hit some finite resource problem.

That depends.  rebaseall knows only of DLLs installed via setup.exe,
not those installed via Perl cpan, Python easy_install, Ruby gem,
PHP pecl, R install.packages(), etc.  OTOH, e.g. perlrebase groks
only perl DLLs, without regard for the rest of the system.  If you have
only installed packages through setup.exe, then you should be fine
unless you install all of Ports.  If you manually install software
through any other means, then currently neither rebaseall nor
perlrebase/etc. will help because neither pay attention to the other.

AFAICS, the solution for this is to teach rebaseall to search certain
known locations in which user-installed DLLs will likely be found and
automatically append this to the list.  If no one else beats me to it,
I'll try to write a patch for that next week.

> 2. A 'kitchen sink' installation from 2012-12-19 works fine, so 
> (presumably) it is something that has gone into Cygwin in the last month 
> that has triggered this problem. In that time, the GStreamer packages 
> have been added to Cygwin, and these have introduced over 200 dlls. 

Again, install what you need.  Unless you're using Ports' GNOME 3.6, most software is still using the 0.10 branch.

> [Although I pick on GStreamer, this is no criticism of Yaakov or his 
> excellent work]

You're welcome. :-)


Yaakov

--
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]