Thanks for the bug report. I audited Autoconf looking for PATH glitches and installed this patch:
2007-06-13 Paul Eggert <[EMAIL PROTECTED]> * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Set FPATH too. Problem reported by Fred Kreek in <http://lists.gnu.org/archive/html/bug-autoconf/2007-06/msg00009.html>. * doc/autoconf.texi (Special Shell Variables): Warn about FPATH. (Macro Names, Defining Directories): Don't mention PATH as a name for a fully qualified file name, as this usage violates the GNU coding standards and we shouldn't recommend it. * lib/autotest/general.m4 (AT_INIT): Don't set PATH to the empty string and then assume shell builtins like "test" will work. Index: lib/m4sugar/m4sh.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sh.m4,v retrieving revision 1.206 diff -u -p -r1.206 m4sh.m4 --- lib/m4sugar/m4sh.m4 30 Apr 2007 17:11:50 -0000 1.206 +++ lib/m4sugar/m4sh.m4 13 Jun 2007 16:52:19 -0000 @@ -1027,7 +1027,7 @@ if test "${PATH_SEPARATOR+set}" != set; echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + if (PATH="/nonexistent;."; FPATH=$PATH; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: Index: doc/autoconf.texi =================================================================== RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v retrieving revision 1.1160 diff -u -p -r1.1160 autoconf.texi --- doc/autoconf.texi 4 Jun 2007 22:49:42 -0000 1.1160 +++ doc/autoconf.texi 13 Jun 2007 16:52:20 -0000 @@ -10479,8 +10479,6 @@ Posix group owners of files. Header files. @item LIB C libraries. [EMAIL PROTECTED] PATH -Absolute names of files, including programs. @item PROG The base names of programs. @item MEMBER @@ -12148,6 +12146,13 @@ PS2='> ' PS4='+ ' @end example [EMAIL PROTECTED] FPATH +The Korn shell uses @env{FPATH} to find shell functions, so avoid [EMAIL PROTECTED] in portable scripts. @env{FPATH} is consulted after [EMAIL PROTECTED], but you still need to be wary of tests that use @env{PATH} +to find whether a command exists, since they might report the wrong +result if @env{FPATH} is also set. + @item IFS @evindex IFS Long ago, shell scripts inherited @env{IFS} from the environment, @@ -19181,11 +19186,6 @@ Note that all the previous solutions har these directories in the executables, which is not a good property. You may try to compute the names relative to @code{prefix}, and try to find @code{prefix} at runtime, this way your package is relocatable. -Some macros are already available to address this issue: see [EMAIL PROTECTED] and [EMAIL PROTECTED] on the [EMAIL PROTECTED]://autoconf-archive.cryp.to/, -Autoconf Macro Archive}. @end itemize Index: lib/autotest/general.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autotest/general.m4,v retrieving revision 1.221 diff -u -p -r1.221 general.m4 --- lib/autotest/general.m4 7 May 2007 19:56:57 -0000 1.221 +++ lib/autotest/general.m4 13 Jun 2007 16:52:20 -0000 @@ -581,19 +581,20 @@ esac]) # # There might be directories that don't exist, but don't redirect # builtins' (eg., cd) stderr directly: Ultrix's sh hates that. -PATH= +at_new_path= _AS_PATH_WALK([$at_path], [as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` test -d "$as_dir" || continue -case $PATH in +case $at_new_path in $as_dir | \ $as_dir$PATH_SEPARATOR* | \ *$PATH_SEPARATOR$as_dir | \ *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;; - '') PATH=$as_dir ;; - *) PATH=$PATH$PATH_SEPARATOR$as_dir ;; + '') at_new_path=$as_dir ;; + *) at_new_path=$at_new_path$PATH_SEPARATOR$as_dir ;; esac]) +PATH=$at_new_path export PATH # Setting up the FDs.