diff options
author | Roland McGrath <roland@redhat.com> | 1996-02-29 00:27:25 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 1996-02-29 00:27:25 +0000 |
commit | b07e961db1aaa6f10c090897c7ba84ee3d4488f9 (patch) | |
tree | 801f9cc7162362e2d157db85840800b9a93472ed | |
parent | 5958f289000914a972b155ce4ca065bf26c79743 (diff) | |
download | gunmake-b07e961db1aaa6f10c090897c7ba84ee3d4488f9.tar.gz |
Wed Feb 28 03:56:20 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* remake.c (f_mtime): Check for future timestamps; give error and mark
file as "failed to update".
-rw-r--r-- | remake.c | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -1,5 +1,5 @@ /* Basic dependency engine for GNU Make. -Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 1995 Free Software Foundation, Inc. +Copyright (C) 1988,89,90,91,92,93,94,95,96 Free Software Foundation, Inc. This file is part of GNU Make. GNU Make is free software; you can redistribute it and/or modify @@ -988,6 +988,27 @@ f_mtime (file, search) file = file->prev; } while (file != 0); + { + /* Files can have bogus timestamps that nothing newly made will be + "newer" than. Updating their dependents could just result in loops. + So notify the user of the anomaly by treating future files as + unrecoverably absent. */ + + static time_t now; + if (mtime > now && ! file->updated) + { + /* This file's time appears to be in the future. + Update our concept of the present, and compare again. */ + extern time_t time (); + if (mtime > time (&now)) + { + error ("*** File `%s' has modification time in the future", + file->name); + file->update_status = 2; + } + } + } + return mtime; } |