From: Paul Eggert Date: Wed, 4 Oct 2006 21:16:06 +0000 (+0000) Subject: * doc/autoconf.texi (Special Shell Variables): Autoconf-generated X-Git-Tag: AUTOCONF-2.60b~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71e8fdea434c8dde8fb4a3358bd7032512ead7e0;p=thirdparty%2Fautoconf.git * doc/autoconf.texi (Special Shell Variables): Autoconf-generated shel scripts no longer export BIN_SH, due to configuration hassles with this. * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Don't set BIN_SH or DUALCASE. (_AS_DETECT_BETTER_SHELL): Don't look in /usr/bin/posix. Use AS_EXECUTABLE_P rather than test -f. (AS_SHELL_SANITIZE): Set DUALCASE. (AS_EXECUTABLE_P): Just invoke as_executable_p. (_AS_TEST_PREPARE): Default to test -f, rather than to nothing. --- diff --git a/ChangeLog b/ChangeLog index 83febf4a9..acf2f81d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2006-10-04 Paul Eggert + * doc/autoconf.texi (Special Shell Variables): Autoconf-generated + shel scripts no longer export BIN_SH, due to configuration + hassles with this. + * lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Don't set BIN_SH + or DUALCASE. + (_AS_DETECT_BETTER_SHELL): Don't look in /usr/bin/posix. + Use AS_EXECUTABLE_P rather than test -f. + (AS_SHELL_SANITIZE): Set DUALCASE. + (AS_EXECUTABLE_P): Just invoke as_executable_p. + (_AS_TEST_PREPARE): Default to test -f, rather than to nothing. + * lib/autoconf/general.m4 (_AC_COMPILE_IFELSE, _AC_LINK_IFELSE): Use a single call to AC_DO_TOKENS rather than multiple, for efficiency. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 0075384cb..dbc75b193 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -11891,7 +11891,6 @@ the last command executed. @evindex BIN_SH In Tru64, if @env{BIN_SH} is set to @code{xpg4}, subsidiary invocations of the standard shell conform to Posix. -Autoconf-generated scripts export this variable when they start up. @item CDPATH @evindex CDPATH diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index 405432d82..d81e36622 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -161,9 +161,10 @@ $2 # -------------------- # Try to be as Bourne and/or POSIX as possible. # -# FIXME: The assignment to BIN_SH is dubious; see +# This does not set BIN_SH, due to the problems described in # . -# It might be better to remove it, but first please see +# People who need BIN_SH should set it in their environment before invoking +# configure; apparently this would include UnixWare, as described in # . m4_define([AS_BOURNE_COMPATIBLE], [# Be Bourne compatible @@ -177,8 +178,6 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh ]) @@ -223,16 +222,9 @@ m4_expand_once([m4_append([_AS_DETECT_SUGGESTED_BODY], [ # The real workhorse for detecting a shell with the correct # features. # -# FIXME: The '/usr/bin/posix' below works around a shell bug in OSF -# -# but this causes a regression on OpenServer 6.0.0 -# -# The code should test for the OSF bug directly rather than look at -# /usr/bin/posix here. -# -# FIXME: The 'test -f "$as_shell.exe"' works around a problem in OS/2 -# -# but we should replace the two test -f calls with a single AS_EXECUTABLE_P. +# FIXME: The code should test for the OSF bug described in +# . +# Looking for /usr/bin/posix/sh causes more troubles than it cures. # m4_defun_once([_AS_DETECT_BETTER_SHELL], [m4_wrap([m4_divert_text([M4SH-SANITIZE], [ @@ -245,7 +237,7 @@ if test "x$CONFIG_SHELL" = x; then _AS_RUN([_AS_DETECT_SUGGESTED_BODY]) 2> /dev/null], [], [as_candidate_shells= - _AS_PATH_WALK([/usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH], + _AS_PATH_WALK([/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH], [case $as_dir in /*) for as_base in sh bash ksh sh5; do @@ -255,7 +247,7 @@ if test "x$CONFIG_SHELL" = x; then for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. - AS_IF([{ test -f "$as_shell" || test -f "$as_shell.exe"; } && + AS_IF([AS_EXECUTABLE_P(["$as_shell"]) && _AS_RUN([_AS_DETECT_REQUIRED_BODY], [("$as_shell") 2> /dev/null])], [CONFIG_SHELL=$as_shell @@ -342,6 +334,7 @@ m4_defun([AS_SHELL_SANITIZE], ## --------------------- ## AS_BOURNE_COMPATIBLE +DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR _AS_CR_PREPARE @@ -785,7 +778,7 @@ fi # Check whether a file is executable. m4_defun([AS_EXECUTABLE_P], [AS_REQUIRE([_AS_TEST_PREPARE])dnl -{ test -f $1 && $as_executable_p $1; }dnl +$as_executable_p $1[]dnl ])# AS_EXECUTABLE_P @@ -1021,7 +1014,7 @@ m4_defun([_AS_TEST_PREPARE], [if test -x / >/dev/null 2>&1; then as_executable_p='test -x' else - as_executable_p=: + as_executable_p='test -f' fi ])# _AS_TEST_PREPARE