bug-autoconf
[Top][All Lists]
Advanced

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

config.cache madness


From: Karl Berry
Subject: config.cache madness
Date: Sun, 19 Jan 2003 20:27:47 -0500

Dear Autoconfers,

I'm using autoconf 2.57 with Texinfo.  Thomas Esser found a strange
problem when he incorporated Texinfo into the upcoming teTeX release,
which is using autoconf 2.13 (unfortunately it's not practical to
upgrade teTeX/web2c autoconf at this time, since the long-awaited teTeX
release is too close.)

texinfo/configure is being called with --cache-file=config.cache, since
it's one of the subdirs.  ac_cv_prog_CPP and a number of other settings
end up with a bogus value.

I could reproduce the error like this (with or without the -v):

  $ make distclean >&/dev/null
  $ rm -f config.cache
  $ /bin/sh -v configure --cache-file=config.cache >&config.out
  $ fgrep \$\' config.cache
  ac_cv_path_install=${ac_cv_path_install=$'/usr/bin/install -c'}
  ac_cv_prog_CPP=${ac_cv_prog_CPP=$'gcc -E'}
  ac_cv_prog_egrep=${ac_cv_prog_egrep=$'grep -E'}
  test "${acl_cv_hardcode_libdir_flag_spec+set}" = set || 
acl_cv_hardcode_libdir_flag_spec=$'${wl}-rpath ${wl}$libdir'
  acl_cv_sys_lib_dlsearch_path_spec=${acl_cv_sys_lib_dlsearch_path_spec=$'/lib 
/usr/lib'}
  acl_cv_sys_lib_search_path_spec=${acl_cv_sys_lib_search_path_spec=$'/lib 
/usr/lib /usr/local/lib'}
  am_cv_proto_iconv=${am_cv_proto_iconv=$'extern size_t iconv (iconv_t cd, char 
* *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);'}

The $'...' syntax in these assignments is invalid.

But if I add -x, the result is ok!
  $ make distclean >&/dev/null; rm -f config.cache; /bin/sh -vx configure 
--cache-file=config.cache >&config.out; fgrep \$\' config.cache
  ac_cv_path_install=${ac_cv_path_install='$'\''/usr/bin/install -c'\'''}
  ...

This must be one obscure bug, to depend on whether -x is set or not!
And without -x, debugging is a lot harder, so I'm writing this mail
instead :).

This happens with this version of bash (from red hat 7.2):
  GNU bash, version 2.05.8(1)-release (i386-redhat-linux-gnu)
  Copyright 2000 Free Software Foundation, Inc.
We have reports that it also happens with solaris 9 /bin/sh.

But it does not happen with this newer bash (from redhat 8.0):
  GNU bash, version 2.05b.0(1)-release (i686-pc-linux-gnu)
  Copyright (C) 2002 Free Software Foundation, Inc.

At the moment, the best workaround Thomas and I can think of is to hack
the top-level configure script (via sed postprocessing or whatever) so
that it does not pass the --cache-file argument to the texinfo
subconfigure.

Is there a better way?  Any suggestions?

Thanks,
karl




reply via email to

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