help-make
[Top][All Lists]
Advanced

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

Re: Bug in $(call ...) ?


From: Paul D. Smith
Subject: Re: Bug in $(call ...) ?
Date: Mon, 20 Dec 2004 16:31:17 -0500

%% Boris Kolpackov <address@hidden> writes:

  bk> It appears that non-recursive variables don't work well with $(call ).

Make saves time by not checking to see if simple variables need to be
expanded again, since they were fully expanded once when they were set.
A simple variable is just copied verbatim.

Of course, with call, and maybe eval, this might not be such a good
idea.  However, any change to this will have to be very carefully
considered.  Make's implicit expansion means you have to tread very
lightly in these areas to avoid egregious backward compatibility
breaks.

  bk> Not that it is not possible with recursive variables now (segfaults
  bk> on cvs head):

  bk> b = $b

  bk> $(warning $(call b))

There is a counter that will detect this recursion eventually but it's
too big, I guess, for most systems today to hit before they get a stack
overflow or similar.


Try changing EXP_COUNT_MAX in variable.h to something like 1000 or
whatever.

We don't allow any recursion at all for most variables, but call needs
recursion to be legal to allow for recursive function definitions, so
the max depth is something you don't want to make too small or you'll
limit the usefulness of call.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

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