Hello,
I created the following four independent patches:
autoconf-20050629-ccc.patch
autoconf-20050629-precious.patch
autoconf-20050629-canon.patch
autoconf-20050629-subst-files.patch
autoconf-20050629-ccc.patch eliminates the unintentional AC_SUBST(CCC)
which I introduced some time ago
autoconf-20050629-precious.patch changes the way precious variables are
handled. (Though its function doesn't depend on the previous patch,
it won't apply smoothly without it.)
The remaining two are decribed sufficiently by their changelog entries.
Paul and others, do you see any problems before I commit?
Stepan Kasal
2005-06-29 Stepan Kasal <[EMAIL PROTECTED]>
* lib/autoconf/general.m4 (AC_CANONICAL_BUILD): Rename
ac_cv_build_alias to ac_build_alias.
(AC_CANONICAL_HOST, AC_CANONICAL_TARGET): Simplify.
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.869
diff -u -r1.869 general.m4
--- lib/autoconf/general.m4 29 Jun 2005 06:37:48 -0000 1.869
+++ lib/autoconf/general.m4 29 Jun 2005 06:39:38 -0000
@@ -1663,7 +1663,6 @@
# Generate the variables THING, THING_{alias cpu vendor os}.
m4_define([_AC_CANONICAL_SPLIT],
[AC_SUBST([$1], [$ac_cv_$1])dnl
-dnl FIXME: AC_SUBST([$1_alias], [$ac_cv_$1_alias])dnl
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_$1
shift
@@ -1698,13 +1697,13 @@
AC_MSG_ERROR([cannot run $ac_config_sub])
AC_CACHE_CHECK([build system type], [ac_cv_build],
-[ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
+[ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$ac_config_guess`
+test "x$ac_build_alias" = x &&
AC_MSG_ERROR([cannot guess build type; you must specify one])
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- AC_MSG_ERROR([$ac_config_sub $ac_cv_build_alias failed])
+ac_cv_build=`$ac_config_sub $ac_build_alias` ||
+ AC_MSG_ERROR([$ac_config_sub $ac_build_alias failed])
])
_AC_CANONICAL_SPLIT(build)
])# AC_CANONICAL_BUILD
@@ -1717,11 +1716,12 @@
m4_divert_text([HELP_CANON],
[[ --host=HOST cross-compile to build programs to run on HOST
[BUILD]]])dnl
AC_CACHE_CHECK([host system type], [ac_cv_host],
-[ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- AC_MSG_ERROR([$ac_config_sub $ac_cv_host_alias failed])
+[if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$ac_config_sub $host_alias` ||
+ AC_MSG_ERROR([$ac_config_sub $host_alias failed])
+fi
])
_AC_CANONICAL_SPLIT([host])
])# AC_CANONICAL_HOST
@@ -1735,12 +1735,12 @@
m4_divert_text([HELP_CANON],
[[ --target=TARGET configure for building compilers for TARGET [HOST]]])dnl
AC_CACHE_CHECK([target system type], [ac_cv_target],
-[dnl Set target_alias.
-ac_cv_target_alias=$target_alias
-test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
- AC_MSG_ERROR([$ac_config_sub $ac_cv_target_alias failed])
+[if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$ac_config_sub $target_alias` ||
+ AC_MSG_ERROR([$ac_config_sub $target_alias failed])
+fi
])
_AC_CANONICAL_SPLIT([target])
2005-06-29 Stepan Kasal <[EMAIL PROTECTED]>
* lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Move the AC_SUBST ...
(AC_ARG_VAR): ... here.
(_AC_INIT_PREPARE): Call AC_SUBST for build_alias, host_alias and
target_alias.
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.869
diff -u -r1.869 general.m4
--- lib/autoconf/general.m4 29 Jun 2005 06:37:48 -0000 1.869
+++ lib/autoconf/general.m4 29 Jun 2005 06:39:05 -0000
@@ -1294,9 +1294,9 @@
AC_SITE_LOAD
AC_CACHE_LOAD
_AC_ARG_VAR_VALIDATE
-_AC_ARG_VAR_PRECIOUS([build_alias])dnl
-_AC_ARG_VAR_PRECIOUS([host_alias])dnl
-_AC_ARG_VAR_PRECIOUS([target_alias])dnl
+_AC_ARG_VAR_PRECIOUS([build_alias])AC_SUBST([build_alias])dnl
+_AC_ARG_VAR_PRECIOUS([host_alias])AC_SUBST([host_alias])dnl
+_AC_ARG_VAR_PRECIOUS([target_alias])AC_SUBST([target_alias])dnl
AC_LANG_PUSH(C)
dnl Substitute for predefined variables.
@@ -1426,6 +1426,7 @@
m4_expand_once([m4_divert_once([HELP_VAR],
[AS_HELP_STRING([$1], [$2], [ ])])],
[$0($1)])dnl
+AC_SUBST([$1])dnl
_AC_ARG_VAR_PRECIOUS([$1])dnl
])# AC_ARG_VAR
@@ -1445,8 +1446,7 @@
# In subsequent runs, after having loaded the cache, compare
# ac_cv_env_foo against ac_env_foo. See _AC_ARG_VAR_VALIDATE.
m4_define([_AC_ARG_VAR_PRECIOUS],
-[AC_SUBST([$1])dnl
-m4_divert_once([PARSE_ARGS],
+[m4_divert_once([PARSE_ARGS],
[ac_env_$1_set=${$1+set}
ac_env_$1_value=$$1
ac_cv_env_$1_set=${$1+set}
2005-06-29 Stepan Kasal <[EMAIL PROTECTED]>
* lib/autoconf/general.m4 (_AC_ARG_VAR_PRECIOUS): Acumulate the
variable names in new macro...
(_AC_PRECIOUS_VARS): ... which will be assigned to ac_precious_vars.
(_AC_ARG_VAR_STORE): New macro which writes to diversion PARSE_ARGS
a loop to assign all ac_env_* and ac_cv_env_* variables.
(_AC_ARG_VAR_VALIDATE): Use shell variable ac_precious_vars, divert
to INIT_PREPARE.
(_AC_INIT_DEFAULTS): At the end, if _AC_PRECIOUS_VARS is set, assign
its value to shell variable ac_precious_vars and call
_AC_ARG_VAR_STORE and _AC_ARG_VAR_VALIDATE.
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Don't call
_AC_ARG_VAR_VALIDATE.
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Move AC_LANG_PUSH(C)
and the AC_SUBSTs ...
(AC_INIT): ... here.
diff -ur autoconf-clean/lib/autoconf/general.m4 autoconf/lib/autoconf/general.m4
--- lib/autoconf/general.m4 2005-06-29 10:42:12.000000000 +0200
+++ lib/autoconf/general.m4 2005-06-29 11:01:31.000000000 +0200
@@ -416,7 +416,12 @@
m4_divert_pop([DEFAULTS])dnl
m4_wrap([m4_divert_text([DEFAULTS],
[ac_subst_vars='m4_ifdef([_AC_SUBST_VARS], [m4_defn([_AC_SUBST_VARS])])'
-ac_subst_files='m4_ifdef([_AC_SUBST_FILES],
[m4_defn([_AC_SUBST_FILES])])'])])dnl
+ac_subst_files='m4_ifdef([_AC_SUBST_FILES], [m4_defn([_AC_SUBST_FILES])])'
+m4_ifdef([_AC_PRECIOUS_VARS],
+ [_AC_ARG_VAR_STORE[]dnl
+ _AC_ARG_VAR_VALIDATE[]dnl
+ ac_precious_vars='m4_defn([_AC_PRECIOUS_VARS])'])dnl
+])])dnl
])# _AC_INIT_DEFAULTS
@@ -1150,8 +1155,8 @@
# 1. Trap and clean up various tmp files.
# 2. Set up the fd and output files
# 3. Remember the options given to `configure' for `config.status --recheck'.
-# 4. Ensure a correct environment
-# 5. Required macros (cache, default AC_SUBST etc.)
+# 4. Initiates confdefs.h
+# 5. Loads site and cache files
m4_define([_AC_INIT_PREPARE],
[m4_divert_push([INIT_PREPARE])dnl
@@ -1293,18 +1298,6 @@
# Let the site file select an alternate cache file if it wants to.
AC_SITE_LOAD
AC_CACHE_LOAD
-_AC_ARG_VAR_VALIDATE
-_AC_ARG_VAR_PRECIOUS([build_alias])AC_SUBST([build_alias])dnl
-_AC_ARG_VAR_PRECIOUS([host_alias])AC_SUBST([host_alias])dnl
-_AC_ARG_VAR_PRECIOUS([target_alias])AC_SUBST([target_alias])dnl
-AC_LANG_PUSH(C)
-
-dnl Substitute for predefined variables.
-AC_SUBST([DEFS])dnl
-AC_SUBST([ECHO_C])dnl
-AC_SUBST([ECHO_N])dnl
-AC_SUBST([ECHO_T])dnl
-AC_SUBST([LIBS])dnl
m4_divert_pop([INIT_PREPARE])dnl
])# _AC_INIT_PREPARE
@@ -1348,6 +1341,18 @@
_AC_INIT_NOTICE
_AC_INIT_COPYRIGHT
m4_ifval([$2], , [m4_ifval([$1], [AC_CONFIG_SRCDIR([$1])])])dnl
+dnl
+dnl Substitute for predefined variables.
+AC_SUBST([DEFS])dnl
+AC_SUBST([ECHO_C])dnl
+AC_SUBST([ECHO_N])dnl
+AC_SUBST([ECHO_T])dnl
+AC_SUBST([LIBS])dnl
+_AC_ARG_VAR_PRECIOUS([build_alias])AC_SUBST([build_alias])dnl
+_AC_ARG_VAR_PRECIOUS([host_alias])AC_SUBST([host_alias])dnl
+_AC_ARG_VAR_PRECIOUS([target_alias])AC_SUBST([target_alias])dnl
+dnl
+AC_LANG_PUSH(C)
])
@@ -1434,7 +1439,14 @@
# _AC_ARG_VAR_PRECIOUS(VARNAME)
# -----------------------------
# Declare VARNAME is precious.
-#
+m4_define([_AC_ARG_VAR_PRECIOUS],
+[m4_append_uniq([_AC_PRECIOUS_VARS], [$1], [
+])dnl
+])
+
+
+# _AC_ARG_VAR_STORE
+# -----------------
# We try to diagnose when precious variables have changed. To do this,
# make two early snapshots (after the option processing to take
# explicit variables into account) of those variables: one (ac_env_)
@@ -1445,12 +1457,14 @@
#
# In subsequent runs, after having loaded the cache, compare
# ac_cv_env_foo against ac_env_foo. See _AC_ARG_VAR_VALIDATE.
-m4_define([_AC_ARG_VAR_PRECIOUS],
-[m4_divert_once([PARSE_ARGS],
-[ac_env_$1_set=${$1+set}
-ac_env_$1_value=$$1
-ac_cv_env_$1_set=${$1+set}
-ac_cv_env_$1_value=$$1])dnl
+m4_define([_AC_ARG_VAR_STORE],
+[m4_divert_text([PARSE_ARGS],
+[for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done])dnl
])
@@ -1468,11 +1482,11 @@
# So we check that `ac_env_' and `ac_cv_env_' are consistent. If
# they aren't, die.
m4_define([_AC_ARG_VAR_VALIDATE],
+[m4_divert_text([INIT_PREPARE],
[# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([[a-zA-Z_0-9]]*\)_set=.*/\1/p'`; do
+for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
@@ -1511,7 +1525,7 @@
if $ac_cache_corrupted; then
AS_MESSAGE([error: changes in the environment can compromise the build], 2)
AS_ERROR([run `make distclean' and/or `rm $cache_file' and start over])
-fi
+fi])dnl
])# _AC_ARG_VAR_VALIDATE
2005-06-29 Stepan Kasal <[EMAIL PROTECTED]>
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Remove the code which
tries to log something about ac_subst_files.
diff -urN autoconf-clean/lib/autoconf/general.m4
autoconf/lib/autoconf/general.m4
--- lib/autoconf/general.m4 2005-06-29 10:16:23.000000000 +0200
+++ lib/autoconf/general.m4 2005-06-29 10:28:29.000000000 +0200
@@ -1242,17 +1242,6 @@
done | sort
echo
- if test -n "$ac_subst_files"; then
- AS_BOX([Output files.])
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
if test -s confdefs.h; then
AS_BOX([confdefs.h.])
echo