Thomas Klausner <tk <at> giga.or.at> writes: > > Hi!
Hello, Thomas, > > autoconf-2.63's test 166 fails on NetBSD-4.99.72/amd64, testsuite.log > attached as requested. > Hmm. This is the relevant part of the failure: | ./torture.at:1111: "`pwd`"/configure && "`pwd`"/configure | Not enabling shell tracing (command contains a `...` command substitution) | stderr: | config.status: error: /usr/pkgsrc/devel/autoconf/work/autoconf- 2.63/tests/testsuite.dir/166/src/s: file not found | stdout: | configure: creating ./config.status | config.status: linking /usr/pkgsrc/devel/autoconf/work/autoconf- 2.63/tests/testsuite.dir/166/src/s to src/s | config.status: linking /usr/pkgsrc/devel/autoconf/work/autoconf- 2.63/tests/testsuite.dir/166/src/t to src/t | configure: creating ./config.status | config.status: linking /usr/pkgsrc/devel/autoconf/work/autoconf- 2.63/tests/testsuite.dir/166/src/s to src/s Somehow, runinng "`pwd`"/configure failed to realize that "`pwd`" corresponded to ., and thus, config.status thought that /usr/pkgsrc/devel/autoconf/work/autoconf- 2.63/tests/testsuite.dir/166/src/s and src/s were separate files, and removed src/s instead of leaving it alone. But how did this happen? Configure is generated with the following code snippet: | ac_abs_confdir=`( | cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 | { (exit 1); exit 1; }; } | pwd)` | # When building in place, set srcdir=. | if test "$ac_abs_confdir" = "$ac_pwd"; then | srcdir=. | fi which is supposed to recognize just this fact (ie. config.status is supposed to see $srcdir as ., not `pwd`). Would you mind going into testsuite.dir/166, editing configure to echo the contents of $ac_abs_confdir and $ac_pwd at this point in the script, then manually running "`pwd`"/configure in that directory? Hmmm. This is potentially buggy, anyway. It is unsafe to call cd "$srcdir" if $srcdir is a relative path, does not contain /, and CDPATH is set in the environment (POSIX requires that it output the destination path as discovered by the CDPATH lookup). Of course, configure has already tried to unset CDPATH, but what if the user declared it to be a read-only variable? -- Eric Blake