Mail Archives: djgpp/1998/02/17/10:55:55
On Mon, 16 Feb 1998, Eric Rudd wrote:
> I started getting this message when I moved to a new computer with Win
> 95 on it. The message only appears when shelled out to DOS, and then
> only about every other make; I have never seen it in MS-DOS mode. I
> haven't been able to figure out whether this represents a bug in MAKE,
> or a bug in the Win 95 support for DOS programs.
This is a known problem with the FAT32 volumes and DOS 7.1 which supports
them. (Does the ``new computer'' use FAT32?) File time stamps on FAT
volumes (both FAT16 and FAT32) have 2-second granularity. When a file is
created, DOS/Windows should convert the current system time into the file
time by truncating or rounding it to the nearest even second. The problem
is that, unlike previous versions of DOS/Windows, the version of DOS which
comes with FAT32 seems to *round* the time (previous versions were
apparently truncating it). This sometimes makes the file timestamp be
newer than the current system clock.
(If you ask me, this is Microsoft's bug, but so what else is new?)
So when Make looks at the file which was created at an odd second, there
is a possibility that the file's time seems like being in the future.
The probability of this is higher on fast machines.
Unfortunately, I cannot fix this bug at this time because I don't have
access to a FAT32-based machine. One thing that bothers me is whether
the time rounding as explained above indeed happens (it is all based on a
guess, I couldn't verify it myself, and I have never seen any piece of
documentation that describe this officially). It would be great if you
could investigate this problem and explain how does it really happen, and
even maybe suggest a bugfix. I'm told that the next version of GNU Make
will be released in a couple of months, so now is a good time to fix
this.
- Raw text -