Message ID | 1524592709-6553-17-git-send-email-ian.jackson@eu.citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 24.04.2018 19:58, Ian Jackson wrote: > This makes it much easier to find a particular thing in config.log. > > We have to use the ${BASH_LINENO[*]} syntax which is a syntax error in > other shells, so test what shell we are running and use eval. > > The extra output is only printed if configure is run with bash. On > systems where /bin/sh is not bash, it is necessary to say bash > ./configure to get the extra debug info in the log. > > Suggested-by: Eric Blake <eblake@redhat.com> > Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> > CC: Kent R. Spillner <kspillner@acm.org> > CC: Janosch Frank <frankja@linux.vnet.ibm.com> > CC: Thomas Huth <thuth@redhat.com> > CC: Peter Maydell <peter.maydell@linaro.org> > CC: Paolo Bonzini <pbonzini@redhat.com> > --- > v8: Fix so that it actually works as intended with bash. > v6: Fix commit message wording. > v4: No longer tag this patch RFC. > --- > configure | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/configure b/configure > index aa35aef..f9ba9ea 100755 > --- a/configure > +++ b/configure > @@ -60,6 +60,11 @@ do_compiler() { > # is compiler binary to execute. > local compiler="$1" > shift > + if test -n "$BASH_VERSION"; then eval ' > + echo >>config.log " > +funcs: ${FUNCNAME[*]} > +lines: ${BASH_LINENO[*]}" > + '; fi > echo $compiler "$@" >> config.log > $compiler "$@" >> config.log 2>&1 || return $? > # Test passed. If this is an --enable-werror build, rerun I just applied the patch and had a look at config.log, and this looks useful indeed. Tested-by: Thomas Huth <thuth@redhat.com>
diff --git a/configure b/configure index aa35aef..f9ba9ea 100755 --- a/configure +++ b/configure @@ -60,6 +60,11 @@ do_compiler() { # is compiler binary to execute. local compiler="$1" shift + if test -n "$BASH_VERSION"; then eval ' + echo >>config.log " +funcs: ${FUNCNAME[*]} +lines: ${BASH_LINENO[*]}" + '; fi echo $compiler "$@" >> config.log $compiler "$@" >> config.log 2>&1 || return $? # Test passed. If this is an --enable-werror build, rerun
This makes it much easier to find a particular thing in config.log. We have to use the ${BASH_LINENO[*]} syntax which is a syntax error in other shells, so test what shell we are running and use eval. The extra output is only printed if configure is run with bash. On systems where /bin/sh is not bash, it is necessary to say bash ./configure to get the extra debug info in the log. Suggested-by: Eric Blake <eblake@redhat.com> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> CC: Kent R. Spillner <kspillner@acm.org> CC: Janosch Frank <frankja@linux.vnet.ibm.com> CC: Thomas Huth <thuth@redhat.com> CC: Peter Maydell <peter.maydell@linaro.org> CC: Paolo Bonzini <pbonzini@redhat.com> --- v8: Fix so that it actually works as intended with bash. v6: Fix commit message wording. v4: No longer tag this patch RFC. --- configure | 5 +++++ 1 file changed, 5 insertions(+)