GNU bug report logs -
#25740
Error reporting with confess mangles messages
Previous Next
Full log
Message #11 received at 25740 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
autom4te is maintained by autoconf, not automake; redirecting your patch
there.
On 03/07/2017 04:00 PM, Christophe de Dinechin wrote:
> The symptoms are something like:
>
> Use of uninitialized value $msg in concatenation (.) or string at /usr/local/Cellar/autoconf/2.69/bin/autom4te line 1032.
> Use of uninitialized value $stacktrace in pattern match (m//) at /usr/local/Cellar/autoconf/2.69/bin/autom4te line 1032.
> unknown channel m4trace: -1- AS_VAR_APPEND(ac_configure_args, " '$ac_arg'")
> at /usr/local/Cellar/autoconf/2.69/share/autoconf/Autom4te/Channels.pm line 638.
> Autom4te::Channels::msg('m4trace: -1- AS_VAR_APPEND(ac_configure_args, " \'$ac_arg\'")\x{a}', undef, 'warning: ', 'partial', 0) called at /usr/local/Cellar/autoconf/2.69/bin/autom4te line 1032
>
> The root cause is m4 traces without a file/line number shown.
>
> So instead of something like:
>
> m4trace:configure.ac:48: -1- ...
>
> you have something like:
>
> m4trace: -1- ...
>
> In the scenarios I ran into, this is due to some error that throws m4 out.
> Eliminating these messages from the temporary m4 file being generated
> (which will not complete anyway) is sufficient for the rest of autoconf
> to complete, until it prints errors.
>
> In my case, the final error looks like:
>
> common/Makefile.am:20: error: Libtool library used but 'LIBTOOL' is undefined
> common/Makefile.am:20: The usual way to define 'LIBTOOL' is to add 'LT_INIT'
> common/Makefile.am:20: to 'configure.ac' and run 'aclocal' and 'autoconf' again.
> common/Makefile.am:20: If 'LT_INIT' is in 'configure.ac', make sure
> common/Makefile.am:20: its definition is in aclocal's search path.
> autoreconf: automake failed with exit status: 1
>
> But I've seen various reports for other root causes that ran into the same
> problem (see bug report)
>
> Signed-off-by: Christophe de Dinechin <dinechin <at> redhat.com>
> ---
> bin/autom4te.in | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/bin/autom4te.in b/bin/autom4te.in
> index 964ac1a..b3f3831 100644
> --- a/bin/autom4te.in
> +++ b/bin/autom4te.in
> @@ -821,6 +821,8 @@ EOF
> my $traces = new Autom4te::XFile ($tcache . $req->id, "<");
> while ($_ = $traces->getline)
> {
> + # Traces without file/line
> + next if (m{^m4trace: -(\d+)- ([^(]+)\((.*)$});
Would it be better to keep the error message, but set the file and line
to placeholders, instead of completely discarding the message?
> # Trace with arguments, as the example above. We don't try
> # to match the trailing parenthesis as it might be on a
> # separate line.
>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
This bug report was last modified 4 years and 286 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.