It appears that a configure script tries to unset all shell variables that contain newlines in a subshell as part of the caching code. This causes the subshell to exit early if any of the variables is readonly. At a minimum, this breaks caching.
Here is a configure.ac file that demonstrates the issue: AC_INIT(p, v) readonly x=' ' AC_OUTPUT Here is the result with Autoconf 2.69: $ autoconf $ ./configure ./configure: line 1699: x: readonly variable configure: creating ./config.status ./configure: line 23: x: readonly variable If you further compare using the --cache-file option with and without the x variable being readonly, you'll find that the cache files differ.