Restore SEM_FAILCRITICALERRORS [was: Aren't Windows System Error popups meant to be disabled in Cygwin?]
Jon Turney
jon.turney@dronecode.org.uk
Fri Feb 2 13:06:47 GMT 2024
On 02/02/2024 12:55, Corinna Vinschen via Cygwin wrote:
> On Feb 2 09:43, David Allsopp via Cygwin wrote:
>> On Thu, 1 Feb 2024 at 10:02, Corinna Vinschen via Cygwin
>> <cygwin@cygwin.com> wrote:
>>>
>>> The behaviour changed in 2020
>>>
>>> https://cygwin.com/git/?p=newlib-cygwin.git;a=commitdiff;h=21ec498d7f912
>>>
>>> not without a discussion
>>>
>>> https://cygwin.com/pipermail/cygwin-patches/2020q4/010870.html
>>
>> Aha, thank you! (congrats on the 3.5 release, in passing, btw).
>> Definitely not a regression, then (subject edited).
>>
>> However, this patch came from MSYS2, and subsequently they seem to
>> have found it problematic for the same reason as me
>> (https://github.com/msys2/msys2-runtime/pull/18#issuecomment-810897624)
>> and have just recently reintroduced the flag
>> (https://github.com/msys2/msys2-runtime/commit/7616b8a2e0ffcf068b47e1a66bbb1dbd7d9b5c50)
>> to control it.
>>
>> The reasoning in
>> https://cygwin.com/pipermail/cygwin/2006-August/150081.html seems as
>> valid now as it did in 2006.
>>
>> Is it possible to revisit having the flag, or even just reverting the behaviour?
>>
>> FWIW, it's been "hurting" us over in OCaml-land since zstd support was
>> added roughly a year ago - configure can tell us that mingw-w64's zstd
>> is available, but woe betide us if we run the test program to see if
>> it actually works, but the user forgot to add the sys-root into PATH,
>> because at that point the CI system is down...
>
> I'm sympathetic, and personally I would prefer to revert the patch and
> stick to SEM_FAILCRITICALERRORS by default.
>
> The question is this: Why does, apparently, everybody expect Cygwin to
> do the "right thing", with different definitions of "right", when in
> fact the executable in question can easily call SetErrorMode by itself?
Yeah, if cygwin wasn't involved in the process ancestry, how would you
get the behaviour you want?
I guess perhaps what's needed here is a command-wrapper tool like 'nice'
or 'env' which lets you run a command with the error-handling mode you want.
But that must already exist for Windows, right? :)
More information about the Cygwin
mailing list