Nelson H. F. Beebe wrote:
[...there appears to be a hang in "make check" on FreeBSD...]
>
> PASS: misc/id-groups
> SKIP: misc/md5sum
> SKIP: misc/md5sum-newline
> PASS: misc/md5sum-parallel
> PASS: misc/mknod
Hi Nelson,
[Cc'ing the list]
Thanks for the heads up and for all the testing.
The test following that one is "misc/nice", and it is indeed stuck.
The shell seems to be the problem (bash-4.1.7)
and how it treats IFS. init.cfg saves $IFS and restores it like this:
local saved_IFS=$IFS
IFS=:
set -- $PATH
IFS=$saved_IFS
but that fails with the bash-4.1.7 on your freebsd system.
Compilation problem? Missing patch? It works fine on my F14 desktop
which has bash-4.1.7-3.fc14.x86_64.
The trouble is that the assignment to saved_IFS
above stored the empty string, so "restoring" it
set that special variable to the empty string. Oops.
Not surprisingly, that caused many tests to fail.
Adding the normally-unnecessary quotes,
local saved_IFS="$IFS"
makes all tests pass once again.
For the record, I reduced it to this,
where /bin/sh is /usr/local/bin/bash, which is 4.1.7:
cat <<\EOF > init.cfg
f()
{
case $IFS in '') exit 91;; esac
local s=$IFS
case $s in '') exit 97;; esac
}
f
EOF
$ /bin/sh -c '. init.cfg'
[Exit 97]