diff lib/swig/swigwin-2.0.11/CCache/debian/patches/05_nfs_fix.diff @ 1899:b3009adc0e2f

Adding swig, gitignore, hgignore
author Nomad
date Mon, 21 Oct 2013 10:42:27 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/swig/swigwin-2.0.11/CCache/debian/patches/05_nfs_fix.diff	Mon Oct 21 10:42:27 2013 +0200
@@ -0,0 +1,45 @@
+--- ccache.1.orig	2007-05-20 17:30:57.000000000 +1200
++++ ccache.1	2007-05-20 17:31:27.000000000 +1200
+@@ -367,12 +367,6 @@
+ .IP o 
+ ccache avoids a double call to cpp on a cache miss
+ .PP 
+-.SH "BUGS" 
+-.PP 
+-When the cache is stored on an NFS filesystem, the filesystem must be
+-exported with the \fBno_subtree_check\fP option to make renames between
+-directories reliable\&.
+-.PP 
+ .SH "CREDITS" 
+ .PP 
+ Thanks to the following people for their contributions to ccache
+--- util.c.patched	2007-05-20 18:19:11.000000000 +1200
++++ util.c	2007-05-20 18:20:55.000000000 +1200
+@@ -58,9 +58,26 @@
+ 	}
+ }
+ 
++static int safe_rename(const char* oldpath, const char* newpath)
++{
++    /* safe_rename is for creating entries in the cache.
++
++       Works like rename(), but it never overwrites an existing
++       cache entry. This avoids corruption on NFS. */
++    int status = link( oldpath, newpath );
++    if( status == 0 || errno == EEXIST )
++    {
++	return unlink( oldpath );
++    }
++    else
++    {
++	return -1;
++    }
++}
++ 
+ /* move a file using rename */
+ int move_file(const char *src, const char *dest) {
+-	return rename(src, dest);
++	return safe_rename(src, dest);
+ }
+ 
+ /* copy a file - used when hard links don't work