Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-11-05 22:47:39 +0400
committerChristopher Faylor <me@cgf.cx>2011-11-05 22:47:39 +0400
commitf6ba9446edf3bd60867a96d545e23f36fd06f7f4 (patch)
treeda780615ae4279541788de48f7b153f1e286a317 /winsup
parentcd561fdb8be7cf57d88626a1ef0003db75bebe72 (diff)
* pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION.
(child_info::proc_retry): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/pinfo.cc3
-rw-r--r--winsup/cygwin/sigproc.cc1
3 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index cd9cdf5ea..cd6081340 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx>
+ * pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION.
+ (child_info::proc_retry): Ditto.
+
+2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx>
+
* pinfo.cc (status_exit): Return complete error code. Handle
STATUS_ACCESS_VIOLATION correctly.
(pinfo::set_exit_code): Set self->exitcode directly from status_exit.
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 83f231d64..26739ddbe 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -140,6 +140,9 @@ status_exit (DWORD x)
case STATUS_ACCESS_VIOLATION:
x = SIGSEGV;
break;
+ case STATUS_ILLEGAL_INSTRUCTION:
+ x = SIGILL;
+ break;
default:
debug_printf ("*** STATUS_%p\n", x);
x = 127 << 8;
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index be570c496..f31081044 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -960,6 +960,7 @@ child_info::proc_retry (HANDLE h)
break;
case STATUS_DLL_NOT_FOUND:
case STATUS_ACCESS_VIOLATION:
+ case STATUS_ILLEGAL_INSTRUCTION:
case STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION: /* pseudo-reloc.c specific */
return exit_code;
case STATUS_CONTROL_C_EXIT: