bug-make
[Top][All Lists]
Advanced

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

[bug #30714] List of shell commands is outdated/Fallback to shell


From: Eli Zaretskii
Subject: [bug #30714] List of shell commands is outdated/Fallback to shell
Date: Tue, 10 Aug 2010 17:43:42 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322)

Follow-up Comment #6, bug #30714 (project make):

Savannah is not suited well for having a discussion.  (Maybe we should start
a thread on address@hidden, if this is going to continue.)  I respond to
some of the comments after quoting the relevant portion of it.

>As for MOVE being external program in Windows 9x: please note >that Windows
9x uses command.com, while NT line uses cmd.exe - 

Not true: there's Windows ME that uses cmd.exe, but is still W9X vintage
under the hood.  It's a mess.

>Please also note that you already have cmd.exe's specific >commands on the
list (like setlocal/endlocal).

These are never external programs, so the problem does not arise.

>Again, falling back to running shell would keep such problems >away.

So would an explicit use of "cmd /c move".  I actually think that this is TRT
in a Makefile that should run on Windows, because you can never know what
shells are installed on the end-user's machine.  For example, if there's a
sh.exe anywhere on PATH, Make will invoke it by default, and then "move" will
fail anyway.

>How far do you expect you can get with logic with people who >think that
throwing two internal function names
>("process_begin: CreateProcess") is anyway good enough as an >error message
for you stupid windoze user.

People who coded that are no longer active in Make maintenance.  Feel free to
submit patches to make the diagnostics more user-friendly, such patches will
be welcome here.  Alternatively, feel free to file a separate bug report about
that.

>My point here is that the shell should be called here, not the >system
directly. After all the system won't do anything more >than the shell would
do, but it can do less

Are you sure?  AFAIR, CreateProcess doesn't only search PATH, but also a few
other places, see the MS docs.  Are you positive that the shell searches
exactly those same places?  What about with the directory where Make's
executable lives, for example? will the shell look there?

You see, these additional places where CreateProcess looks for a program are
one reason why we call CreateProcess even though the search along PATH fails.

(Invoking the shell has another disadvantage: cmd.exe supports only 4K long
command lines, while CreateProcess supports 32K.)


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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