This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
Re: [PATCH] Add an additional relocation attempt pass to load_after_fork()
- From: "Yaakov (Cygwin/X)" <yselkowitz at users dot sourceforge dot net>
- To: cygwin-patches <cygwin-patches at cygwin dot com>
- Date: Tue, 15 Mar 2011 18:37:57 -0500
- Subject: Re: [PATCH] Add an additional relocation attempt pass to load_after_fork()
- References: <4D7CDDC7.5060708@dronecode.org.uk>
On Sun, 2011-03-13 at 15:07 +0000, Jon TURNEY wrote:
> Attached is a patch which avoids a fork failure due to remap error in the
> specific circumstances described in my email [1], by adding an additional pass
> to load_after_fork() which forces the DLL to be relocated by VirtualAlloc()ing
> a block of memory at the load address as well.
>
> Hopefully it can be seen by inspection that this code doesn't change the
> behaviour of the first two passes, and so will only be changing the behaviour
> in what was an fatal error case before.
This patch causes a warning with GCC 4.5:
cc1plus: warnings being treated as errors
dll_init.cc: In member function âvoid dll_list::load_after_fork(void*)â:
dll_init.cc:328:33: error: converting to non-pointer type âDWORDâ from
NULL
Yaakov