I've checked in the change to cause _pei386_runtime_relocator() to be called from the DLL rather than the program. This function is only called by the DLL when the per_process data indicates that it is ok to do so. Otherwise it defaults to the old behavior.
Fixing the behavior reported in the cygwin list will still require a relink to pull in the new version of libcygwin.a which reflects the new api change. The majority of changes to pseudo-reloc.cc were line deletions. There is still more cleanup that could be done but I got bored. The major change was to modify _pei386_runtime_relocator to take a per_process structure and remove the already-initialized check. This was no longer needed since the function is only called when it is really needed now. http://cygwin.com/ml/cygwin-cvs/2010-q2/msg00068.html cgf
