[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Re: libtool-2.4.2 is fine but libtool-2.4.6 very slow.
From: |
Pavel Raiskup |
Subject: |
Re: [PATCH] Re: libtool-2.4.2 is fine but libtool-2.4.6 very slow. |
Date: |
Thu, 24 Sep 2015 09:13:05 +0200 |
User-agent: |
KMail/4.14.10 (Linux/4.2.0-300.fc23.x86_64; KDE/4.14.11; x86_64; ; ) |
On Wednesday 23 of September 2015 16:09:49 Eric Blake wrote:
> On 09/23/2015 03:37 PM, Pavel Raiskup wrote:
>
> >
> >>From 5e8a4c5173f1aa0786e8eba15fb07bfe04b83862 Mon Sep 17 00:00:00 2001
> > From: Pavel Raiskup <address@hidden>
> > Date: Fri, 18 Sep 2015 23:17:07 +0200
> > Subject: [PATCH] libtoolize: fix infinite recursion in m4
> >
> > Some projects use this construct in configure.ac:
> >
> > m4_define([version], m4_include([version])
>
> Missing a )
>
> The faulty package used:
>
> m4_define([version], m4_include(version))
Thanks for catching the ')' typo!
> and the infinite recursion occurred _because_ the usage was underquoted.
> But as you wrote things here, you have sufficient quoting that you
> won't trigger infinite recursion.
> You need to drop the second [] for
> this to be an accurate representation of the failure.
I intentionally added the '[ ]' quotes there as that is something which
would look like correct usage, but it still goes to infinite recursion.
The problem is that while defining 'version':
m4_define([version], m4_include([version]))
The expansion is like 'version => m4_include(version)'. Then, usage of
'version' goes to infinite recursion.
> > pkg_version=version
> >
> > When the m4_include builtin is undefined (as was done in
> > libtoolize and extract-trace scripts), the call to this 'version'
> > macro gone to infinite recursion (until ENOMEM). So rather
>
> s/gone to infinite/enters an infinite/
>
> > re-define all potentially dangerous macros by empty strings,
> > suggested by Eric Blake.
> >
> > While we are on it, merge the macro-"blacklist" with similar list
> > implemented in gettext, except the 'm4_esyscmd'. It's kept
>
> s/except the/except for/
>
> > defined because we already trace AC_INIT macro for package
> > version, while it is often specified by
> > m4_esyscmd(git-version-gen). Similarly to m4_include, m4_esyscmd
> > might be opt-in-blacklisted in future.
> >
> > References:
> > http://lists.gnu.org/archive/html/libtool/2015-09/msg00000.html
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580
> >
>
> With the commit message touched up, it looks okay to me.
I'll fix the typos, thanks!
Pavel