-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Configuration Information: Machine: i686 OS: cygwin Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash.exe' -DCONF_HOSTTYPE='i686' - -DCONF_OSTYPE='cygwin' -DCONF_MACHTYPE='i686-pc-cygwin' -DCONF_VENDOR='pc' - -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H - -DRECYCLES_PIDS -I. -I/tmp/bash-3.2 -I/tmp/bash-3.2/include - -I/tmp/bash-3.2/lib -O2 uname output: CYGWIN_NT-5.1 LOUNGE 1.5.21(0.156/4/2) 2006-07-30 14:21 i686 Cygwin Machine Type: i686-pc-cygwin
Bash Version: 3.2 Patch Level: 5 Release Status: release Description: The configure check for whether /dev/stdin is available is flawed, since it invokes 'test -r /dev/stdin </dev/null'. However, when configuring with a version of bash that already fakes /dev/stdin, this means that the next configure run on bash will assume that /dev/stdin. Repeat-By: configure and install bash 3.2.5 on cygwin (or any other platform without /dev/stdin). Then reconfigure. Compare the two resulting config.h; they differ by: - --- /tmp/bash/bash-3.2-4/.build/config.h 2006-10-24 +++ config.h 2006-11-09 06:13:01.687500000 -0700 07:17:31.125000000 -0600 @@ -473,7 +473,7 @@ #define DEV_FD_PREFIX "/proc/self/fd/" /* Define if you have the /dev/stdin device. */ - -/* #undef HAVE_DEV_STDIN */ +#define HAVE_DEV_STDIN 1 /* Type and behavior of signal handling functions. */ And with that difference, the new bash fails: $ echo $BASH_VERSION > /dev/stdout $ where the old bash succeeded $ echo $BASH_VERSION > /dev/stdout 3.2.1(4)-release $ Fix: Apply this patch and rerun autoconf before configuring. Using /bin/test instead of test bypasses the bash builtin, and thus bypasses an installed bash's internal special-casing of /dev/stdin. - --- aclocal.m4.orig 2006-11-15 06:35:11.780250000 -0700 +++ aclocal.m4 2006-11-15 06:35:38.577125000 -0700 @@ -1574,7 +1574,7 @@ AC_CACHE_VAL(bash_cv_dev_stdin, [if test -d /dev/fd && test -r /dev/stdin < /dev/null; then bash_cv_dev_stdin=present - - elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then + elif test -d /proc/self/fd && /bin/test -r /dev/stdin < /dev/null; then bash_cv_dev_stdin=present else bash_cv_dev_stdin=absent - -- Life is short - so eat dessert first! Eric Blake [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFWxmN84KuGfSFAYARAr7mAKCEtgAG/TK6A+FDJJbiju1KV3wgngCeLEZu fWLI21/shbAssMieyZo4qCo= =Yizh -----END PGP SIGNATURE----- _______________________________________________ Bug-bash mailing list Bug-bash@gnu.org http://lists.gnu.org/mailman/listinfo/bug-bash