--- d/phobos/config/x3.c.orig (revision 241) +++ d/phobos/config/x3.c (revision 242) @@ -451,7 +451,15 @@ { int status; const char * result; - char * cmd = concat("exec \"$@\"", +#if _WIN32 + /* x3 programs get the c:\foo\bar form of path names. Passing that + as a program name to the MSYS shell's 'exec' causes the path + to be mangled. */ + const char * exec_bit = "\"$@\""; +#else + const char * exec_bit = "exec \"$@\""; +#endif + char * cmd = concat(exec_bit, global->log_path ? " >>" : "", global->log_path ? global->log_path : "", // TODO: assumptions about charaters in the path global->log_path ? " 2>&1" : "", --- d/dmd/root.c.orig (revision 241) +++ d/dmd/root.c (revision 242) @@ -523,7 +523,6 @@ break; #endif #if _WIN32 - case '/': case '\\': case ':': case '/': --- d/phobos/gcc/deh.d.orig (revision 231) +++ d/phobos/gcc/deh.d (revision 232) @@ -324,7 +324,7 @@ // Can never have null landing pad for sjlj -- that would have // been indicated by a -1 call site index. - landing_pad = cs_lp + 1; + phase1.landingPad = cs_lp + 1; if (cs_action) action_record = info.action_table + cs_action - 1; goto found_something;