On 19/04/2025 17:10, Glenn Strauss via Cygwin-apps wrote:
[...]
I wish there was a way to surface these kind of loader errors to the
console, so these failures weren't so inscrutable, but last time I looked at
it, that appeared to be impossible.
It would also be nice if we recorded a package's dependency on cygwin in a
more sophisticated way (against the API level, I guess) so the depsolver
would have the information to avoid these kind of breakages in the first
place, but again SHTDI :(.
What used to be nearly impossible might now be possible with powershell
redirection. I am not a Windows machine to test any of this, but a
quick search turned up some ideas to try. Might try starting a bash
shell through powershell with console redirection, rather than starting
a bash shell directly.
I think this misapprehends the issue.
The fundamental problem we face is that the Windows PE loader apparently
can't give feedback to stdout.
You choices are (a) get a dialog box with the details, or (ii) just get
an error code returned to CreateProcess()
(This is controlled by the SetErrorMode() API, if I recall correctly,
which Cygwin sets one way, and strace lets the default happen, which is
why these dialogs show up when you strace the problem executable)
Idk how this problem can be solved without writing our own loader (or a
pre-loader, run before CreateProcess() which just checks if everything
good (which would probably make fork() performance even more terrible))