[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)?


More information about the Cygwin-patches mailing list