On Wed, 10 Nov 2021 15:40:37 +0000
"Bresalier, Rob \(Nokia - US/Murray Hill\) wrote:
> Hi:
> 
> This worked fine with Cygwin 3.2.0 but is broken starting with Cygwin 3.3.0, 
> hence I think it is a Cygwin bug and not a ninja bug.
> 
> When running Cygwin applications under Windows native 'ninja.exe' build tool 
> (not the Cygwin packaged one) then the stdout is not emitted to the console 
> starting with Cygwin 3.3.0. It worked fine with Cygwin 3.2.0 and stdout is 
> emitted to the console. If using Cygwin ninja with 3.3.0 it also works. The 
> problem is with Windows native ninja and Cygwin programs with Cygwin version 
> 3.3.0 and later.
> 
> Using Cygwin ninja is not an option for us as a solution. We need to use the 
> Windows native ninja for reasons that I won't go into here.
> 
> To reproduce the issue:
> 
> 1) Download windows native ninja from here: 
> https://github.com/ninja-build/ninja/releases
>    a. Use ninja-win.zip that has the ninja.exe executable
>    b. DO NOT USE the Cygwin version of ninja
> 
> 2) Below is a sample build.ninja file that demonstrates the problem. This 
> sample build.ninja simply causes bash -help to run. Create this build.ninja 
> text file in some directory.
> 
> 3) cd to the directory where you have the build.ninja, and then run the 
> native ninja.exe, you won't see the bash --help output with Cygwin 3.3.0 and 
> later.
>   a. I suggesting using -v option with ninja.exe: "path/to/native/ninja.exe 
> -v"
> 
> 4) If you try it with Cygwin 3.2.0 it works fine you will see the bash --help 
> output.
> 
> 5) If you run c:/cygwin64/bin/bash --help outside of ninja it works fine.
> 
> 6) This happens if you run the native ninja.exe from either a command window 
> or from the Cygwin/minty/bash
> 
> Here is the sample build.ninja to be used to reproduce the problem:
> 
> --------start build.ninja --------------
> rule CUSTOM_COMMAND
>   command = $COMMAND
>   description = $DESC
> 
> build MC5U_BMDCO6_versions.txt: CUSTOM_COMMAND
>   COMMAND = c:/cygwin64/bin/bash --help
>   DESC = Running bash --help
>   restat = 1
> --------end build.ninja --------------
> 
> Thanks for having a look.

Thanks for the report.

I could reproduce your problem and found the cause.

Windows native ninja creates pipe with size zero, which cannot
be handled correctly by current cygwin pipe code (raw_write()).

I will submit a patch for this issue shortly.

-- 
Takashi Yano <takashi.y...@nifty.ne.jp>

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

Reply via email to