libtool
[Top][All Lists]
Advanced

[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: Wed, 23 Sep 2015 23:37:53 +0200
User-agent: KMail/4.14.10 (Linux/4.2.0-300.fc23.x86_64; KDE/4.14.11; x86_64; ; )

Hi Eric, thanks for your review!

On Saturday 19 of September 2015 15:05:07 Eric Blake wrote:
> On 09/19/2015 02:09 AM, Pavel Raiskup wrote:
> > Hi Hiroyuki Sato,
> > 
> > On Wednesday 02 of September 2015 16:00:34 Hiroyuki Sato wrote:
> >> This configure.ac is extreme slow on libtool-2.4.6.
> >> But It run smoothly on libtool-2.4.2.
> >> https://github.com/groonga/groonga/blob/master/configure.ac
> > 
> > thanks for reproducer!
> > 
> > This _really_ looks like issue mentioned [1], though the thread is
> > believed to be resolved (with existing small slowdown between
> > libtool-2.4.5 and 2.4.2).  Let me CC Robert whether this patch does not
> > actually fix the "1 sec" slowdown of libtoolize.
> 
> This looks very much like the same bug that gettext had:
> http://git.savannah.gnu.org/cgit/gettext.git/commit/?id=d75090f2
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580

Indeed, I missed that report.

> Your proposed solution doesn't seem quite right:
> 
> >          # Disable these macros.
> >          m4_undefine([m4_dnl])
> > -        m4_undefine([m4_include])
> >          m4_undefine([m4_m4exit])
> >          m4_undefine([m4_m4wrap])
> >          m4_undefine([m4_maketemp])
> > +        # Rather do not use undefine here because people tend to define
> > +        # macros of the same name as file included in their bodies - which
> > +        # results in infinite recursion.
> > +        m4_define([m4_include], [])
> 
> I'd recommend that you use the same fix as gettext, and define ALL of
> these macros to an empty string, rather than special-casing m4_include
> as the only one that does not get undefined.

Agreed, m4_pushdef([trace_breaking_macro]) should not cause any harm.
I fixed the patch (attached).

Pavel

Attachment: 0001-libtoolize-fix-infinite-recursion-in-m4.patch
Description: Text Data


reply via email to

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