Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


On Tue, Feb 24, 2015 at 8:58 AM, Ashod Nakashian <ashnakash@gmail.com> wrote:
++Norbert

awesome!

Thanks. The root cause is that stat is not precise enough, not the FS
timestamp precision (I should have redacted that).


that sounds like a reasonable approach for platforms where hi-res stat
is currently not implemented, i would hope upstream agrees with that.

Indeed. I was doubly surprised when enabling FILE_TIMESTAMP_HI_RES in
config failed to build on Windows at all (no stat with NS fields).
So somebody must've known that Windows has 1s precision stat and
should've deduced this issue.

this seems relevant:

https://www.gnu.org/software/make/manual/html_node/Special-Targets.html

.LOW_RESOLUTION_TIME

If you specify prerequisites for .LOW_RESOLUTION_TIME, make assumes
that these files are created by commands that generate low resolution
time stamps. The recipe for the .LOW_RESOLUTION_TIME target are
ignored.

The high resolution file time stamps of many modern file systems
lessen the chance of make incorrectly concluding that a file is up to
date. Unfortunately, some hosts do not provide a way to set a high
resolution file time stamp, so commands like ‘cp -p’ that explicitly
set a file’s time stamp must discard its sub-second part. If a file is
created by such a command, you should list it as a prerequisite of
.LOW_RESOLUTION_TIME so that make does not mistakenly conclude that
the file is out of date. For example:

.LOW_RESOLUTION_TIME: dst
dst: src
        cp -p src dst

Since ‘cp -p’ discards the sub-second part of src’s time stamp, dst is
typically slightly older than src even when it is up to date. The
.LOW_RESOLUTION_TIME line causes make to consider dst to be up to date
if its time stamp is at the start of the same second that src’s time
stamp is in.

Due to a limitation of the archive format, archive member time stamps
are always low resolution. You need not list archive members as
prerequisites of .LOW_RESOLUTION_TIME, as make does this
automatically.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.