libtool
[Top][All Lists]
Advanced

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

Re: tracking a recursive macro


From: Ralf Wildenhues
Subject: Re: tracking a recursive macro
Date: Wed, 6 Jul 2005 21:41:41 +0200
User-agent: Mutt/1.5.9i

Hi Patrick,

* Patrick Welche wrote on Wed, Jul 06, 2005 at 09:19:52PM CEST:
> I don't really know where to ask for help: trying libtool as the last
> macro mentioned is an autoconf fixup for libtool..
> 
> I'm trying to build apr with cvs autotools, and essentially do
> 
>   libtoolize
>   sinclude(build/{libtool,ltsugar,ltversion,ltoptsion,argz}.m4) in 
> configure.in
>     (instead of aclocal - AC_PROG_LIBTOOL is in configure.in)
>   autoheader
>   autoconf
> 
> but at the autoheader stage
> 
> autom4te: running: /usr/local/bin/gm4 --nesting-limit=1024 
> --include=/usr/local/share/autoconf
> ...
> configure.in:2084: /usr/local/bin/gm4: ERROR: Recursion limit of 1024 
> exceeded, use -L<N> to change it

Are you aware of the recent macro loop in CVS HEAD/branch-2-0 Libtool in
conjunction with special Autoconf versions?

Which exact Autoconf/Automake/Libtool versions do you use (if CVS
versions include `head ChangeLog`).

> Now, that is the AC_OUTPUT line, and the last thing to appear in
> autom4te.cache/traces.0t is
> 
> m4trace:configure.in:2084: -1- AC_SUBST([LIB@&address@hidden, [$ac_libobjs])
> m4trace:configure.in:2084: -1- AC_SUBST_TRACE([LIB@&address@hidden)
> m4trace:configure.in:2084: -1- m4_pattern_allow([^LIB@&address@hidden)
> m4trace:configure.in:2084: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
> m4trace:configure.in:2084: -1- AC_SUBST_TRACE([LTLIBOBJS])
> m4trace:configure.in:2084: -1- m4_pattern_allow([^LTLIBOBJS$])
> 
> which is from AC_OUTPUT -> AC_OUTPUT_COMMANDS_PRE
> 
> # _AC_LIBOBJS_NORMALIZE
> # --------------------- 
> # Clean up LIBOBJS and LTLIBOBJS so that they work with 1. ac_objext,
> # 2. Automake's ANSI2KNR, 3. Libtool, 4. combination of the three.
> # Used with AC_CONFIG_COMMANDS_PRE. 
> AC_DEFUN([_AC_LIBOBJS_NORMALIZE],
> [ac_libobjs=
> ac_ltlibobjs=
> for ac_i in : $LIB@&address@hidden; do test "x$ac_i" = x: && continue
>   # 1. Remove the extension, and $U if already installed.
>   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
>   ac_i=`echo "$ac_i" | sed "$ac_script"`
>   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
>   #    will be set to the directory where LIBOBJS objects are built.
>   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
>   ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
> done
> AC_SUBST([LIB@&address@hidden, [$ac_libobjs])
> AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
> ])

> Any idea how I can start to track this down?

Well, what I did was go back patches until I had the one, then go up and
down macro calls and comment out random stuff to find out what's going
on.  Then I reported that I was stuck and Ralf Menzel came up with a
fix (actually he tracked it down too, mostly).  :)

No, seriously, post something reproducible.  Someone will know..

Cheers,
Ralf




reply via email to

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