We were previously logging the wrong command line if the user invoked any argument with spaces, making it difficult to re-invoke configure with the same complex arguments. To reproduce, open any autoconf-using project and run:
$ ./configure FLAGS='foo bar' >/dev/null && grep -m1 /configure config.log $ ./configure FLAGS=foo bar Now we get the expected output: $ ./configure 'FLAGS=foo bar' (Okay, it would be prettier as FLAGS='foo bar' in the output, by delaying the opening ' until after the first non-alphanumeric or =, but that is more expensive to produce, and makes no difference to shell parsing of the pasted line.) * lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Use _AS_INVOCATION. * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Likewise. Reported by Kevin Brubeck Unhammer <unham...@fsfe.org> Signed-off-by: Eric Blake <ebl...@redhat.com> --- I wonder if it would also be worth updating these two logging points to include the output of 'date' as a (rough) timestamp of when the recorded invocation started. lib/autoconf/general.m4 | 3 ++- lib/autoconf/status.m4 | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index ef6285d..bac9fcd 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -1183,6 +1183,7 @@ fi])dnl m4_define([_AC_INIT_CONFIG_LOG], [m4_divert_text([INIT_PREPARE], [m4_define([AS_MESSAGE_LOG_FD], 5)dnl +_AS_INVOCATION cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -1191,7 +1192,7 @@ It was created by m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])dnl $as_me[]m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]), which was generated by m4_PACKAGE_STRING. Invocation command line was - $ $[0] $[@] + $as_invocation _ACEOF exec AS_MESSAGE_LOG_FD>>config.log diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4 index 308d3d8..f692b6d 100644 --- a/lib/autoconf/status.m4 +++ b/lib/autoconf/status.m4 @@ -1334,6 +1334,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 [#] Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. +_AS_INVOCATION ac_log=" This file was extended by m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])dnl $as_me[]m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]), which was @@ -1343,7 +1344,7 @@ generated by m4_PACKAGE_STRING. Invocation command line was CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $[0] $[@] + $as_invocation on `(hostname || uname -n) 2>/dev/null | sed 1q` " -- 2.9.3