This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
glibc-2.7 and autoconf 2.61 dependency in libc/nptl/sysdeps/configure
- From: "Ryan S. Arnold" <rsa at us dot ibm dot com>
- To: GNU C Library <libc-alpha at sources dot redhat dot com>, Carlos Eduardo Seo <eduseo at br dot ibm dot com>
- Date: Fri, 08 Feb 2008 16:25:47 -0600
- Subject: glibc-2.7 and autoconf 2.61 dependency in libc/nptl/sysdeps/configure
- Reply-to: rsa at us dot ibm dot com
This is simply informational for archival purposes in-case others
encounter this issue in the future.
I hunted down what looked to be an interesting bug.
While building a toolchain on a system with autoconf 2.59 the glibc
build started failing when I used a glibc 2.7 tar as a basis rather than
the earlier snapshot I was using:
Relevant failing configure output:
-----------------------------------------
checking for forced unwind
support... /home/ryanarn/src/glibc/nptl/sysdeps/pthread/configure: line
88: conftest: command not found
no
configure: error: forced unwind support is required
-----------------------------------------
I noticed that sysdeps/pthread/configure was regenerated on Oct 16 for
the first time in 4 years.
The failing fragment was the following:
-----------------------------------------
libc/nptl/sysdeps/pthread/configure:
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
libc_cv_forced_unwind=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
libc_cv_forced_unwind=no
fi
-----------------------------------------
What was happening is that $as_test_x wasn't set to anything so what
should have been: 'test -x conftest' was simply 'conftest'.
$as_test_x is supposed to be set to 'test -x' in the libc/configure
script but it wasn't.
What I found was that libc/configure was re-generated with autoconf 2.59
and libc/nptl/sysdeps/pthread/configure was generated with autoconf 2.61
and $as_test_x was introduced after autoconf 2.59.
Basically, the glibc 2.7 source tree I was using must have met a
condition for having the glibc make system re-run autoconf against the
libc/configure file. Unfortunately autoconf happened to be 2.59 on the
system.
I _think_ setting AUTOCONF="no" \ as a precondition when executing
configure should prevent the make stage from tarnishing the configure
scripts in the src directory.
An alternate (and better option) is to build/install Autoconf 2.61 on
the build system and use AUTOCONF="</path/to/autoconf-2.61/>" \ as a
configure precondition.
Regards,
Ryan S. Arnold
IBM Linux Technology Center
Linux Toolchain Development/GLIBC