Regression on XP with "Fix OPOST for non-Cygwin pty slaves"

Johannes Schindelin johannes.schindelin@gmx.de
Fri May 1 14:25:00 GMT 2015


Hi Yano & Corinna,

I would like to ask you for help with fixing a regression I am 
experiencing on XP (and XP only, the problem does not occur with Windows 
7 or 8). It may be a 32-bit issue, but I cannot currently test on 64-bit 
XP.

Background: I am the maintainer of Git for Windows and we are hoping to 
release a new major release Real Soon Now, based on MSys2 (which in turn 
is based on Cygwin). To make the user experience a bit better, we want 
to allow users to double-click a "Git Bash" icon that simply launches a 
small, non-console MinGW executable which in turn basically sets up the 
PATH and MSYSTEM environment variables (as required for the MSys2 
runtime) and then launches a mintty with a bash inside. Please note that 
this small executable is *not* a console program but a GUI one 
(-mwindows instead of -mconsole) so that no console window flashes 
before the mintty window is shown.

Now, this strategy worked well so far, except that I recently found that 
Git Bash does not start in XP anymore, instead the mintty process just 
sits and waits for a while and after five to ten minutes, the mintty 
window appears with the message:

     Failed to fork child process: Resource temporarily unavailable.
     DLL rebasing may be required. See 'rebaseall --help'.

(Needless to say, a 'rebaseall' does not fix it.)

This problem does *not* occur if I call mintty from a `.bat` file or 
from `cmd` -- but as I said, I want to avoid flashing console windows -- 
and it also does not happen if I run a mintty from a freshly installed 
Cygwin (with cygwin package version 2.0.1-1) where the shortcut points 
directly to `mintty` which is a console application.

This symptom makes me believe that the culprit might be that 
msys-2.0.dll somehow expected an attached Win32 Console, and spins in 
circles when there is none.

Now, please note that I do *not* run a regular cygwin1.dll but rather an 
msys-2.0.dll that I had to patch even more to support users of the 
previous Git for Windows version (which was based on MSys1 and did 
things like allowing users to override their home directory using the 
HOME environment variable).

Starting with the diff on top of cygwin1.dll's sources, I bisected the 
problem down to the commit "Fix OPOST for non-Cygwin pty slaves":

https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=063e7da36fda3f42619d7df606d9f3d4920605aa

With this commit reverted, on top of the MSys2 and the Git for Windows 
patches, the mintty window appears correctly again when launched on 
32-bit XP via said GUI executable. You can see my current state here:

https://github.com/git-for-windows/msys2-runtime/tree/aae52e6d23e92cf71e6f7777ff9bb49588be8fdc

I would like to ask you for advice how to debug this regression further 
because I really would like to revert the revert and have a proper fix. 
Or maybe you have an idea how I can fix it directly?

Thanks,
Johannes

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list