help-make
[Top][All Lists]
Advanced

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

Re: Warning message about file has modification time in the future.


From: Paul D. Smith
Subject: Re: Warning message about file has modification time in the future.
Date: Mon, 24 Mar 2003 01:23:34 -0500

%% "Kong, Michelle" <address@hidden> writes:

  km> I started using GNU make version 3.79.1 on Linux machine and got
  km> some warning messages that I don't understand:
 
  km> make[3]: *** Warning: File `Makefile.real' has modification time in the
  km> future (2003-03-20 10:18:18 > 2003-03-20 10:18:17)
  km> make[3]: warning: Clock skew detected. Your build may be incomplete.
 
  km> We've checked the machine times for each machine that's involved
  km> here, there's not time synchronization issue for all the machines.

Yes there is... if you get this error you can be very sure that the time
on the system where the files live and the time on the system where the
build is being performed, are not in sync.

They may be off by only half a second or so, which means half the time
they will appear to have the same time and half the time they won't.

  km> Then I tried using GNU make version 3.80 on Solaris SunOS 5.8 and got
  km> similar warning messages:
 
  km> make[3]: Warning: File `main/obj/all_obj' has modification time 0.016 s 
in the future
  km> make[3]: warning: Clock skew detected. Your build may be incomplete.
 
  km> These messages are not shown each time I compile, but they do show
  km> every now and then.  And for the second type of messages, I've
  km> even seen "modification time 0.0033 s in the future".

Yes, this is because some newer filesystems store timestamps at a
sub-second granularity, unlike traditional UNIX filesystems.

  km> I want to know why are these messages got displayed?

It means that after make built a target it checked the time last
modified on the target file, and that time was in the future compared to
the system clock.  It means that the system clocks on the fileserver and
the build server are not synced up.

This is very bad because it means that targets that list this one as a
prerequisite might not be built when they should be.

  km> How can I disable the display of these type of messages?

Either fix the problem by running something like NTP to synchronize the
times of your systems, or edit to code and comment them out.

  km> Can I set some kind of range, say, anything less than 2 second can
  km> be ignored?
 
No, not yet.

On the Solaris box you can disable subsecond timestamps so make only
considers timestamps at the granularity of 1 second (see the README
file and the manual).  But you cannot change it other than that (except
by editing the code of course).

-- 
-------------------------------------------------------------------------------
 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]