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

Charles Wilson
Wed Oct 7 15:50:00 GMT 2009

Christopher Faylor wrote:

>> OK. But 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
	* (status_exit): Map custom pseudo-reloc
	* (child_info::proc_retry): Return exit code when

	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
	(_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.


More information about the Cygwin-patches mailing list