bug-m4
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug#764580: m4 eats memory for breakfast (fwd)


From: Eric Blake
Subject: Re: Bug#764580: m4 eats memory for breakfast (fwd)
Date: Thu, 09 Oct 2014 13:36:00 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1

On 10/09/2014 01:14 PM, Eric Blake wrote:
> On 10/09/2014 12:47 PM, Eric Blake wrote:
> 
>>> git clone git://git.debian.org/git/collab-maint/pkg-util-linux.git 
>>> util-linux
>>> cd util-linux
>>> git checkout v2.20.1
>>> ./autogen.sh
>>>    autopoint:  /usr/bin/autopoint (GNU gettext-tools) 0.19.2
> 
> Okay, I am repeating the setup on my Fedora 20 system, with autopoint
> 0.18.3 and m4 1.4.16; and I can reproduce that running 'autopoint
> --force' is the step in ./autogen.sh that causes m4 to run away with
> memory.  At this point, I'm suspecting an autopoint bug.
> 
>>
>> Most likely, this is not a memory leak in m4, so much as a bug in
>> util-linux' configure.ac that is causing m4 to go into an infinite loop.
> 
> Or something in the way autopoint is running m4.

In particular, autom4te --verbose shows this is the runaway command line:

/usr/bin/m4 --nesting-limit=1024 --gnu --include=/usr/share/autoconf
--debug=aflq --fatal-warning --debugfile=/tmp/am4tSXlU7J/traces.0t
--trace=AM_GNU_GETTEXT_VERSION --trace=_m4_warn --trace=include
--trace=m4_include --trace=m4_pattern_allow --trace=m4_pattern_forbid
--reload-state=/usr/share/autoconf/autoconf/autoconf.m4f
--undefine=__m4_version__ - configure.ac > /tmp/am4tSXlU7J/output.0t

where stdin is fed the following prepended to configure.ac:

echo '\
dnl disable macros which may abort autom4te
m4_undefine([m4_assert])
m4_undefine([m4_fatal])
m4_undefine([m4_warn])
m4_undefine([m4_errprintn])
m4_undefine([m4_exit])
m4_undefine([m4_include])
m4_undefine([m4_esyscmd])
dnl macros which needs to be traced without aclocal.m4
m4_define([AM_GNU_GETTEXT], [])
m4_define([AM_GNU_GETTEXT_VERSION], [])
'

I bet if you downgrade to gettext 0.17, that things work again (it was
gettext 0.18 that tried to switch to an m4 trace run rather than a grep
for learning about the existence of gettext macros embedded in
configure.ac).  I'm still not easily seeing the inf-loop in all of that,
though.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]