It seems that AC_VALIDATE_CACHED_SYSTEM_TUPLE has not heard of the recent changes to the canonical system family. There are a number of problems: (1) It should not require AC_CANONICAL_SYSTEM, only AC_CANONICAL_BUILD at most. The rest you can handle like this: if { test x"${ac_cv_build+set}" = x"set" && test x"$ac_cv_build" != x"$build"; }dnl AC_PROVIDE_IFELSE([AC_CANONICAL_HOST], [|| { test x"${ac_cv_host+set}" = x"set" && test x"$ac_cv_host" != x"$host"; }dnl AC_PROVIDE_IFELSE([AC_CANONICAL_TARGET], [|| { test x"${ac_cv_target+set}" = x"set" && test x"$ac_cv_target" != x"$target"; }])]) then AC_MSG_RESULT([different]) m4_default([$1], [AC_MSG_ERROR([remove $cache_file and re-run configure])]) else AC_MSG_RESULT(ok) fi For consistency it perhaps shouldn't require anything, just issue a warning/error if any of the CANONICAL_XXX things are called after it. (2) The error message should contain the name of the actual cache file, as illustrated above. (3) The variable names have changed. (4) Worst of all, config.guess isn't even run if the build system type is in the cache, so you don't have anything to validate against. If have figured out how to solve 1 - 3, but number 4 essentially breaks it at the design level. -- Peter Eisentraut Sernanders väg 10:115 [EMAIL PROTECTED] 75262 Uppsala http://yi.org/peter-e/ Sweden