[newlib-cygwin/main] Cygwin: spawn: drop CREATE_SEPARATE_WOW_VDM process flag

Corinna Vinschen corinna@sourceware.org
Mon Feb 2 17:16:05 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=cdc622a97631b787aab045c975aea4c7eafa4fed

commit cdc622a97631b787aab045c975aea4c7eafa4fed
Author:     Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Sun Jan 25 20:03:10 2026 +0100
Commit:     Corinna Vinschen <corinna@vinschen.de>
CommitDate: Mon Jan 26 10:26:03 2026 +0100

    Cygwin: spawn: drop CREATE_SEPARATE_WOW_VDM process flag
    
    This is outdated and should have been removed when we dropped
    32 bit support.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/spawn.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 7d993d0810eb..04e4a4028b8a 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -401,7 +401,11 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
       c_flags = GetPriorityClass (GetCurrentProcess ());
       sigproc_printf ("priority class %d", c_flags);
 
-      c_flags |= CREATE_SEPARATE_WOW_VDM | CREATE_UNICODE_ENVIRONMENT;
+      /* Per MSDN, this must be specified even if lpEnvironment is set to NULL,
+	 otherwise UNICODE characters in the parent environment are not copied
+	 correctly to the child.  Omitting it may scramble %PATH% on non-English
+	 systems. */
+      c_flags |= CREATE_UNICODE_ENVIRONMENT;
 
       /* Add CREATE_DEFAULT_ERROR_MODE flag for non-Cygwin processes so they
 	 get the default error mode instead of inheriting the mode Cygwin


More information about the Cygwin-cvs mailing list