From: fjh AT cs DOT mu DOT OZ DOT AU (Fergus Henderson) Subject: Re: why does /bin have to be *first* in the PATH? 5 Dec 1996 14:20:14 -0800 Sender: daemon AT cygnus DOT com Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: <199612052051.HAA27235.cygnus.gnu-win32@murlibobo.cs.mu.OZ.AU> Content-Type: text Original-To: dje AT cygnus DOT com (Doug Evans) Original-Cc: gnu-win32 AT cygnus DOT com (gnu-win32) In-Reply-To: <199612052026.MAA19781@canuck.cygnus.com> from "Doug Evans" at Dec 5, 96 12:26:28 pm X-Mailer: ELM [version 2.4 PL24] Original-Sender: owner-gnu-win32 AT cygnus DOT com Doug Evans wrote: > > [Fergus wrote:] > I have programs that rely on the ability to do > > PATH=../scripts:$PATH some_script > > This breaks in gnu-win32 version b16. > > Having /bin be first in PATH was a workaround to a > bug that has since been fixed [or at least was fixed at one point]. Well, b16 still requires /bin be first. Here's how to reproduce the bug: $ cd /tmp $ cat > foo < #!/bin/sh > echo "this is foo" > EOF $ cat > Makefile < do_foo: > ./foo > EOF $ PATH=/bin:$PATH make do_foo this is foo $ PATH=/blah:/bin:$PATH make do_foo ./foo make: ./foo: Command not found make: *** [do_foo] Error 127 Specifically, if `/bin' is not first, and you invoke execve() on a shell script (as `make' does in the above example) then the call to `find_exec ("sh", ...)' in spawn.cc fails to expand "sh" to "/bin/sh". -- Fergus Henderson | "I have always known that the pursuit WWW: | of excellence is a lethal habit" PGP: finger fjh AT 128 DOT 250 DOT 37 DOT 3 | -- the last words of T. S. Garp. - For help on using this list, send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".