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

Reply via email to