This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: ruby rebase / remap problems
- From: David Stacey <drstacey at tiscali dot co dot uk>
- To: cygwin at cygwin dot com
- Date: Thu, 24 Jan 2013 22:53:28 +0000
- Subject: Re: ruby rebase / remap problems
- References: <50FF14FC.1010406@tiscali.co.uk>
On 22/01/2013 22:38, David Stacey wrote:
I have a 'kitchen sink' Cygwin installation from 2013-01-14. This
gives 'rebase' errors when running the following command (taken from a
./configure script):
$ ruby -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)'
checking for rb_hash_foreach()... 0 [main] ruby 3064
child_info_fork::abort: unable to remap transdb.so to same address as
parent (01090000) - try running rebaseall
1 [main] ruby 1268 child_info_fork::abort: unable to remap
etc.so to same address as parent (010A0000) - try running rebaseall
1 [main] ruby 3748 child_info_fork::abort: unable to remap
transdb.so to same address as parent (01090000) - try running rebaseall
1 [main] ruby 3148 child_info_fork::abort: unable to remap
etc.so to same address as parent (010A0000) - try running rebaseall
1 [main] ruby 472 child_info_fork::abort: unable to remap
transdb.so to same address as parent (01090000) - try running rebaseall
1 [main] ruby 1648 child_info_fork::abort: unable to remap
etc.so to same address as parent (010A0000) - try running rebaseall
The 'rubyrebase' shell script (submitted to this list about a year
ago) came to my rescue:
http://www.cygwin.com/ml/cygwin/2012-02/msg00701.html
I may have been a little premature here - rubyrebase appeared to fix the
immediate issue above, but in doing so it moved my rebase problem
somewhere else :-(
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?
I ask this for two reasons:
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.
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.
[Although I pick on GStreamer, this is no criticism of Yaakov or his
excellent work]
All of the above is complete hypothesis, and could be totally wrong. But
to my rather naive understanding of the rebase problem it seems
feasible. So, has Cygwin simply outgrown Windows XP?
Dave.
--
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