bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNU Autoconf 2.63] testsuite: 166 failed


From: Eric Blake
Subject: Re: [GNU Autoconf 2.63] testsuite: 166 failed
Date: Fri, 10 Oct 2008 19:20:47 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]