[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
signature.asc
Description: OpenPGP digital signature