Date: Sun, 24 Oct 1999 09:31:54 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Laurynas Biveinis cc: djgpp-workers AT delorie DOT com Subject: Re: Help with arg passing In-Reply-To: <380F5677.996ED35F@softhome.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp-workers AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Thu, 21 Oct 1999, Laurynas Biveinis wrote: > Because I want > to see my patch in libc sources, I have a question regarding above: > is it acceptable to turn on !proxy method for calling all DJGPP programs > in 2.04 ? We could do that. But could you first explain why is this required for symlink support? IMHO, it's not a good idea to have differences in functionality that depend on the way programs are called. (Differences in how argv[0] looks are bad, but at least they don't change anything in how the program is invoked and run.) > If I understand correctly, the main reason not to do so was > "some subtle misfeature that could be lurking somewhere". But most GNU > makefiles anyway use long command lines, so can't we assume that this > feature is well tested now ? Most command lines in a typical GNU Makefile don't require !proxy in the environment, even though they are long. The reason for this is that GNU Make tries very hard to avoid calling the shell to run the commands. (On Unix, this is presumably an expensive operation, because it requires to launch an additional process.) If the command line does not include any shell features, like redirection, wildcards, quoted arguments, etc., GNU Make runs the program directly, via fork/exec. The DJGPP port emulates fork/exec with spawnvpe, which passes its argument through the transfer buffer, not through the " !proxy" environment variable. The latter is only used if Make calls the shell (which in the DJGPP port calls `system' instead), *and* if the command is longer than 126 characters. My experience is that this coincidence in Makefiles is rare. So I would not claim that this feature is ``well tested''. Which doesn't mean that we cannot enable it by default, of course, if we have a reason that is good enough.