Merge pseudo-reloc-v2 support from mingw/pseudo-reloc.c

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Wed Oct 7 17:05:00 GMT 2009


On Wed, Oct 07, 2009 at 11:49:49AM -0400, Charles Wilson wrote:
>Christopher Faylor wrote:
>
>>> OK. But now...do we need any additional discussion of the patch itself,
>>> or did we cover that sufficiently on cygwin-developers?
>> 
>> If you've, as you say "tested" this,
>
>Yep, and no scare-quotes needed <g>.
>
>> I think we should get this in ASAP.
>
>OK.  Committed as posted (in one lump), with the following change log
>
>2009-10-06  Charles Wilson  <...>
>
>	Additional pseudo-reloc-v2 support
>	* ntdll.h: Add custom NTSTATUS value for pseudo-reloc
>	errors STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
>	* pinfo.cc (status_exit): Map custom pseudo-reloc
>	error value STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION to 127.
>	* sigproc.cc (child_info::proc_retry): Return exit code when
>        STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION.
>
>	Cygwin modifications to pseudo-reloc.c
>	* lib/pseudo-reloc.c: Added comments throughout and various
>	whitespace fixes. Exploit cygwin_internal(CW_EXIT_PROCESS,...)
>	for fatal error handling that is consistent with cygwin process
>	life-cycle. Ensure state variable (in _pei386_runtime_relocator)
>	is unique to each address space, across fork().
>	(__print_reloc_error): New function for reporting errors in a
>	manner supported by cygwin at this early stage of the process
>	life-cycle.
>	(_pei386_runtime_relocator): Ensure relocations performed
>	only once for each address space, but are repeated after fork()
>	in the new address space.
>	only once for each address space (e.g. across fork()).
>	(__write_memory) [MINGW]: Ensure that b is always initialized
>	by call to VirtualQuery, even if -DNDEBUG.
>
>	* lib/pseudo-reloc.c: Import new implementation to support
>	v2 pseudo-relocs implemented by Kai Tietz from mingw.

Thanks.

FYI, I just generated a snapshot with this change.

cgf



More information about the Cygwin-patches mailing list