Hi DJ, I agree that an infinite loop isn't exactly helpful. I believe the original code for that aspect of contrib/gcc_update was contributed by Alexandre; perhaps he's got an idea?
Gerald On Tue, 1 Apr 2008, DJ Delorie wrote: > we use the following logic: > > ... : > @for f in $? $@; do test -f $$f || exit 0; done; \ > echo Touching [EMAIL PROTECTED]; \ > touch $@ > > We have the following chain of dependencies: > > gcc/configure: gcc/configure.ac > gcc/cstamp-h.in: gcc/configure.ac > gcc/config.in: gcc/cstamp-h.in > > In my particular build, for some reason, gcc/cstamp-h.in is missing > but the other files are there. I now have four gcc_update tasks > running, trying desparately to figure out what to do. It won't touch > gcc/cstamp-h.in becuase of the @for line, but it always thinks it > needs to update gcc/config.in because gcc/cstamp-h.in is missing. > > Note that gcc/cstamp-in.h is NOT listed in $?, which is a list of > newer prereqs - but not *missing* prereqs. Perhaps we should use $^, > which is a list of all prereqs? That leaves us not touching > gcc/config.in at all, but at least it doesn't hang. > > At the very least, some sanity about how many times we permit > ourselves to run that Makefile would be useful. I mean, if it doesn't > work in the first 345,600 iterations, it's not ever going to work.