about summary refs log tree commit diff
path: root/pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch')
-rw-r--r--pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch b/pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch
new file mode 100644
index 000000000000..3e0fbe6b996d
--- /dev/null
+++ b/pkgs/development/compilers/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch
@@ -0,0 +1,17 @@
+The clean command line compiler clm checks modules for freshness by comparing timestamps.
+However, in chroot builds all files installed have the same timestamp.  This leads to clm
+trying to rebuild the library modules distributed with the Clean install every time a user
+compiles any file.  This patch changes the freshness check to use less than instead of less
+than or equal to in order to avoid this.
+
+--- clean-upstream/src/tools/clm/clm.c	2010-12-10 06:12:17.000000000 -0430
++++ clean/src/tools/clm/clm.c	2010-12-25 10:29:09.840675925 -0430
+@@ -250,7 +250,7 @@
+ 		|| (t1.dwHighDateTime==t2.dwHighDateTime && (unsigned)(t1.dwLowDateTime)<=(unsigned)(t2.dwLowDateTime)))
+ #else
+ 	typedef unsigned long FileTime;
+-#	define FILE_TIME_LE(t1,t2) (t1<=t2)
++#	define FILE_TIME_LE(t1,t2) (t1<t2)
+ #endif
+ 
+ typedef struct project_node {