aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/link.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/cc/link.cxx')
-rw-r--r--build2/cc/link.cxx14
1 files changed, 8 insertions, 6 deletions
diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx
index bd2face..6d0c605 100644
--- a/build2/cc/link.cxx
+++ b/build2/cc/link.cxx
@@ -997,10 +997,12 @@ namespace build2
if (!for_install)
rpath_timestamp = windows_rpath_timestamp (t, bs, act, lo);
- path mf (
- windows_manifest (
- t,
- rpath_timestamp != timestamp_nonexistent));
+ pair<path, bool> p (
+ windows_manifest (t,
+ rpath_timestamp != timestamp_nonexistent));
+
+ path& mf (p.first);
+ bool mf_cf (p.second); // Changed flag (timestamp resolution).
timestamp mf_mt (file_mtime (mf));
@@ -1012,7 +1014,7 @@ namespace build2
//
manifest = mf + ".o";
- if (mf_mt > file_mtime (manifest))
+ if (mf_mt > file_mtime (manifest) || mf_cf)
{
path of (relative (manifest));
@@ -1087,7 +1089,7 @@ namespace build2
{
manifest = move (mf); // Save for link.exe's /MANIFESTINPUT.
- if (mf_mt > mt)
+ if (mf_mt > mt || mf_cf)
update = true; // Manifest changed, force update.
}
}