This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

glibc-2.7 and autoconf 2.61 dependency in libc/nptl/sysdeps/configure


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]