[PATCH RFC] fork: reduce chances for "address space is already occupied" errors

Michael Haubenwallner michael.haubenwallner@ssi-schaefer.com
Thu Mar 28 14:59:00 GMT 2019


Hi Achim,

On 3/27/19 8:59 PM, Achim Gratz wrote:
> Michael Haubenwallner writes:
>> As far as I understand, rebasing is about touching already installed
>> dlls as well, which would require to restart all Cygwin processes.
>> As the problem is about some dll built during a larger build job,
>> this is not something that feels useful to me.
> 
> That's exactly why I introduced the "--oblivious" option several years
> ago.  It'll let you rebase a set of DLL while benefitting from the
> rebase database, but not recording them there, so if you later install
> them properly there will be no collision.  I needed this for testing
> newly compiled Perl XS modules, but you seem to have a similar use case.

What I can see so far is that right now there is only one single rebase
database, in /etc/rebase.db.<arch>.

However, my 'installed' dlls are not put into /bin, but into the so called
Gentoo "Prefix", e.g. /home/haubi/test-20190327/gentoo-prefix/usr/bin for
example.  Remember that there can be multiple independent instances of Gentoo
Prefix, so recording them all into the host /etc/rebase.db is not an option.

Hence there should be a rebase database per Gentoo Prefix instance, like
/home/haubi/test-20190327/gentoo-prefix/etc/rebase.db.<arch>, to record
my 'installed' dlls, while still loading the /etc/rebase.db.<arch> to avoid
conflicts with cygwin provided dlls.

And how would one explicitly remove specific entries from the rebase database
when dlls get uninstalled (by either package remove or package upgrade)?

Thanks!
/haubi/



More information about the Cygwin-patches mailing list