ruby rebase / remap problems

David Stacey drstacey@tiscali.co.uk
Thu Jan 24 22:53:00 GMT 2013


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



More information about the Cygwin mailing list