Follow-up Comment #2, bug #12209 (project make):

-- code snippet from function.c:1475++

  /* make sure that CreateProcess() has Path it needs */
  sync_Path_environment();

  if (!process_begin(hProcess, command_argv, envp, command_argv[0], NULL)) {
    /* register process for wait */


 The sync_Path_environment() sets PATH variable to environment, but the
process_begin() is called with previously stored envp, so the PATH is set
wrong for the first process_begin() call. 

I would suggest moving the call to sync_Path_environment() before storing the
envp, see the patch attached. 

Easy way to demonstrate the difference is following Makefile with
native-win32 version:

export PATH=c:/tmp
$(warning $(shell path))
$(warning $(shell path))


(file #11414)
    _______________________________________________________

Additional Item Attachment:

File name: make_w32_path_change_fix.txt   Size:0 KB


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?12209>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to