[Top][All Lists]
[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