Follow-up Comment #2, bug #40610 (project make): It loops running the recipe for objdir/depend.mk. It does not rerun the mkdir. Moving the mkdir into the recipe for depend.mk does not change the behavior; however, removing objdir from the depends of depend.mk does.
If depend.mk exists and is newer than objdir, e.g. by creating both by hand and then touching objdir/depend.mk, it doesn't attempt to rebuild depend.mk at all and doesn't get into trouble. However, it seems that once it runs the depend.mk recipe it gets stuck. It looks like the proximate cause is that after creating objdir/depend.mk, objdir is newer than depend.mk, typically by about 1 ms. It looks like the difference vs. 3.82 is that 3.82 doesn't notice this. (Possibly it just isn't reading the fractional timestamps.) What happens, based on the -d output and printing the full timestamps of objdir and objdir/depend.mk at the end of the objdir/depend.mk recipe, is that it creates depend.mk, which leaves depend.mk older than objdir, does Re-executing[1]: gmake -d decides it needs to build depend.mk because it's older than objdir, and thereby goes into an infinite loop. This is looking like the underlying cause is a tmpfs bug, but it would still probably be a good idea for make to not go into an infinite loop. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?40610> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make