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

Michael Haubenwallner michael.haubenwallner@ssi-schaefer.com
Tue Apr 9 09:00:00 GMT 2019


On 4/8/19 7:09 PM, Achim Gratz wrote:
> Michael Haubenwallner writes:
>> Well... once installed, a dll may get in use quickly, because I can not require
>> to shut down all Cygwin processes.  So I need to rebase and register the dll in
>> some staging directory before it is installed into it's final directory, hence
>>  I'm about to add some new '--destdir' option.
> 
> I don't quite understand yet what you're trying to do and why, but
> "--destdir" doesn't have the right ring to it for my ears.  If I'm not
> mistaken you want to strip the staging prefix from the database entry,
> which incidentally would be where a
> 
> make DESTDIR=/staging install
> 
> would have placed the files?

Exactly, the _rebase_ needs to be done while the files are in /staging,
but the database records need to not have the /staging part of course.
However, updating the _database_ can be done either while the files are
in /staging still, or when they are at their final location later on.
I just need to avoid performing a rebase to files in their final location.

For the moment, I'm doing the database update together with performing the
rebase in /staging, so I need to tell rebase.exe about "/staging" to strip
from the database record.  This boils down to:
$ find /staging -type f -name '*.dll' > files.list
$ rebase --database --filelist=files.list --destdir=/staging

But I'm facing some fork problems now, where I need to investigate whether
they're related to my rebase step, before I can submit the patches.

If curious, see https://github.com/haubi/cygwin-rebase/commits/gentoo

Thanks!
/haubi/
PS: I've tried to submit the first two patches yesterday, but somehow the
mails didn't make it to the list.



More information about the Cygwin-patches mailing list