bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The bugs in make v3.82


From: Eli Zaretskii
Subject: Re: The bugs in make v3.82
Date: Tue, 28 Sep 2010 06:39:07 -0400

> From: "Alexander Kornilov" <address@hidden>
> Date: Tue, 28 Sep 2010 13:54:42 +0400
> 
> While I working on my build system I find some bugs in working of make
> tool.
> Could you, please, review issues?

Thanks for the reports.  I will respond to the Windows-specific
issues.

> Description: Wrong slash used in path of files from subdirectories on
> Windows platform;

Why is this a problem?  Make uses the forward slash when it generates
file names, even on Windows.  It uses the style from the Makefile when
it uses the file names without any changes.  Make cannot know what
style is preferred, because various parts of the Makefile could
legitimately use different styles of slashes.

Windows understand both forward and backslashes, so it should at worst
be a cosmetic issue.  (I would recommend using forward slashes at all
times).

> Also I see what make v3.82 doesn't work on Windows x64 platforms. It's
> fails when tries to execute temporary .bat file. I fix this issue by my
> self in file sub_proc.c. The patch is attached to letter in file
> make_v3.82_win64_patch.zip.

Thanks for the patch.  This is all of it:

  --- orig/sub_proc.c   2010-07-19 11:10:54.000000000 -0400
  +++ fixed/sub_proc.c  2010-09-18 02:47:10.000000000 -0400
  @@ -541,12 +541,16 @@
          /*
           *  Set up inherited stdin, stdout, stderr for child
           */
  +     ZeroMemory(&startInfo, sizeof(startInfo));
  +     ZeroMemory(&procInfo, sizeof(procInfo));
          GetStartupInfo(&startInfo);
          startInfo.dwFlags = STARTF_USESTDHANDLES;
          startInfo.lpReserved = 0;
          startInfo.cbReserved2 = 0;
          startInfo.lpReserved2 = 0;
  +     #ifndef _WIN64
          startInfo.lpTitle = shell_name ? shell_name : exec_path;
  +     #endif
          startInfo.hStdInput = (HANDLE)pproc->sv_stdin[1];
          startInfo.hStdOutput = (HANDLE)pproc->sv_stdout[1];
          startInfo.hStdError = (HANDLE)pproc->sv_stderr[1];

Could you please explain the reason for excluding the line that sets
startInfo.lpTitle?  What's wrong with it on the 64-bit Windows
systems?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]