Provides and conflicts with msys2-runtime, so can be used to replace it if wanted. Keep this as a separate package to test for regressions in cygwin and to have (in theory) a runtime that supports 32bit in the repo. There is no guarantee for how long we are going to keep this.
66 lines
2.6 KiB
Diff
66 lines
2.6 KiB
Diff
From c20ec3a443668ab7047a383958e1b2d9f687bbf0 Mon Sep 17 00:00:00 2001
|
|
From: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
Date: Wed, 31 Mar 2021 11:38:41 +0200
|
|
Subject: [PATCH 27/N] Do not show Error dialogs by default
|
|
|
|
In https://github.com/msys2/msys2-runtime/pull/18, we discussed a change
|
|
that would allow default Windows error handling of spawned processes to
|
|
kick in (such as registered JIT debuggers). We even agreed that it would
|
|
make sense to hide this functionality behind a flag, `winjitdebug`.
|
|
|
|
However, when this got upstreamed as 21ec498d7f (cygwin: use
|
|
CREATE_DEFAULT_ERROR_MODE in spawn, 2020-12-09), that flag was deemed
|
|
unnecessary.
|
|
|
|
But it would appear that it _is_ necessary: As reported in
|
|
https://github.com/msys2/MSYS2-packages/pull/2414#issuecomment-810841296
|
|
this new behavior is pretty disruptive e.g. in CI scenarios.
|
|
|
|
So let's introduce that `winjitdebug` flag (settable via the environment
|
|
variable `MSYS`) at long last.
|
|
|
|
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
---
|
|
winsup/cygwin/environ.cc | 1 +
|
|
winsup/cygwin/globals.cc | 1 +
|
|
winsup/cygwin/spawn.cc | 2 +-
|
|
3 files changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
|
|
index daaa1ec..f4e2c68 100644
|
|
--- a/winsup/cygwin/environ.cc
|
|
+++ b/winsup/cygwin/environ.cc
|
|
@@ -128,6 +128,7 @@ static struct parse_thing
|
|
{"winsymlinks", {func: set_winsymlinks}, isfunc, NULL, {{0}, {0}}},
|
|
{"disable_pcon", {&disable_pcon}, setbool, NULL, {{false}, {true}}},
|
|
{"enable_pcon", {&disable_pcon}, setnegbool, NULL, {{true}, {false}}},
|
|
+ {"winjitdebug", {&winjitdebug}, setbool, NULL, {{false}, {true}}},
|
|
{NULL, {0}, setdword, 0, {{0}, {0}}}
|
|
};
|
|
|
|
diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc
|
|
index b4a0c87..5c111ab 100644
|
|
--- a/winsup/cygwin/globals.cc
|
|
+++ b/winsup/cygwin/globals.cc
|
|
@@ -75,6 +75,7 @@ bool reset_com;
|
|
bool wincmdln = true;
|
|
winsym_t allow_winsymlinks = WSYM_deepcopy;
|
|
bool disable_pcon = true;
|
|
+bool winjitdebug = false;
|
|
|
|
bool NO_COPY in_forkee;
|
|
|
|
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
|
|
index 4f28335..bc9dc5a 100644
|
|
--- a/winsup/cygwin/spawn.cc
|
|
+++ b/winsup/cygwin/spawn.cc
|
|
@@ -460,7 +460,7 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
|
|
get the default error mode instead of inheriting the mode Cygwin
|
|
uses. This allows things like Windows Error Reporting/JIT debugging
|
|
to work with processes launched from a Cygwin shell. */
|
|
- if (!real_path.iscygexec ())
|
|
+ if (winjitdebug && !real_path.iscygexec ())
|
|
c_flags |= CREATE_DEFAULT_ERROR_MODE;
|
|
|
|
/* We're adding the CREATE_BREAKAWAY_FROM_JOB flag here to workaround
|