summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2026-01-05 16:47:04 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2026-01-05 16:47:04 +0100
commit5ac072c0f42bf3216d16f177c795e9324bf3c52b (patch)
treec6d2e59b0be8119177e37bcf88b0fd39e295d2fe
parente4f612979e9361e006f049ff445e9c78497adbbd (diff)
Fix missing dirty-checks against objects in ld, so and ar tasks.
-rw-r--r--src/task_ar.cc9
-rw-r--r--src/task_ld.cc9
-rw-r--r--src/task_so.cc9
3 files changed, 27 insertions, 0 deletions
diff --git a/src/task_ar.cc b/src/task_ar.cc
index 74ea888..16e0ce8 100644
--- a/src/task_ar.cc
+++ b/src/task_ar.cc
@@ -72,6 +72,15 @@ bool TaskAR::dirtyInner()
}
}
+ auto target_file_time = std::filesystem::last_write_time(targetFile());
+ for(const auto& object_file : objectFiles)
+ {
+ if(std::filesystem::last_write_time(object_file) > target_file_time)
+ {
+ return true;
+ }
+ }
+
return false;
}
diff --git a/src/task_ld.cc b/src/task_ld.cc
index c7014ff..a3f02d1 100644
--- a/src/task_ld.cc
+++ b/src/task_ld.cc
@@ -78,6 +78,15 @@ bool TaskLD::dirtyInner()
}
}
+ auto target_file_time = std::filesystem::last_write_time(targetFile());
+ for(const auto& object_file : objectFiles)
+ {
+ if(std::filesystem::last_write_time(object_file) > target_file_time)
+ {
+ return true;
+ }
+ }
+
return false;
}
diff --git a/src/task_so.cc b/src/task_so.cc
index f922ac3..090105a 100644
--- a/src/task_so.cc
+++ b/src/task_so.cc
@@ -74,6 +74,15 @@ bool TaskSO::dirtyInner()
}
}
+ auto target_file_time = std::filesystem::last_write_time(targetFile());
+ for(const auto& object_file : objectFiles)
+ {
+ if(std::filesystem::last_write_time(object_file) > target_file_time)
+ {
+ return true;
+ }
+ }
+
return false;
}