2 changed files with 6 additions and 203 deletions
@ -1,197 +0,0 @@ |
|||||||
Index: Makefile.in
|
|
||||||
--- Makefile.in.orig 2004-09-13 12:38:30 +0200
|
|
||||||
+++ Makefile.in 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -8,7 +8,9 @@
|
|
||||||
INSTALLCMD=@INSTALL@
|
|
||||||
|
|
||||||
CC=@CC@
|
|
||||||
-CFLAGS=@CFLAGS@ -I.
|
|
||||||
+CPPFLAGS=@CPPFLAGS@ -I.
|
|
||||||
+CFLAGS=$(CPPFLAGS) @CFLAGS@
|
|
||||||
+LDFLAGS=@LDFLAGS@
|
|
||||||
EXEEXT=@EXEEXT@
|
|
||||||
|
|
||||||
OBJS= ccache.o mdfour.o hash.o execute.o util.o args.o stats.o \
|
|
||||||
@@ -20,7 +22,7 @@
|
|
||||||
docs: ccache.1 web/ccache-man.html
|
|
||||||
|
|
||||||
ccache$(EXEEXT): $(OBJS) $(HEADERS)
|
|
||||||
- $(CC) $(CFLAGS) -o $@ $(OBJS)
|
|
||||||
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)
|
|
||||||
|
|
||||||
ccache.1: ccache.yo
|
|
||||||
-yodl2man -o ccache.1 ccache.yo
|
|
||||||
Index: ccache.1
|
|
||||||
--- ccache.1.orig 2004-09-13 12:38:30 +0200
|
|
||||||
+++ ccache.1 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -234,6 +234,16 @@
|
|
||||||
incorrect setting of this debug info rarely causes problems\&. If you
|
|
||||||
strike problems with gdb not using the correct directory then enable
|
|
||||||
this option\&.
|
|
||||||
+.IP
|
|
||||||
+.IP "\fBCCACHE_NOHASH_SIZE_MTIME\fP"
|
|
||||||
+This tells ccache to not hash the real compiler's size and modification
|
|
||||||
+time. Normally this is the mechanism to detect compiler upgrades.
|
|
||||||
+There are situations however, where even though the compiler's size or
|
|
||||||
+modification time has changed you can safely use the cached objects
|
|
||||||
+(e.g. if as part of your build system the compiler is built as well
|
|
||||||
+and the compiler's source has not changed; or if the compiler has only
|
|
||||||
+changes that do not affect code generation). Use this feature only if
|
|
||||||
+you know what you are doing.
|
|
||||||
.IP
|
|
||||||
.IP "\fBCCACHE_UNIFY\fP"
|
|
||||||
If you set the environment variable CCACHE_UNIFY
|
|
||||||
Index: ccache.c
|
|
||||||
--- ccache.c.orig 2004-09-13 12:38:30 +0200
|
|
||||||
+++ ccache.c 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -158,9 +158,9 @@
|
|
||||||
struct stat st1, st2;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
- x_asprintf(&tmp_stdout, "%s/tmp.stdout.%s", temp_dir, tmp_string());
|
|
||||||
- x_asprintf(&tmp_stderr, "%s/tmp.stderr.%s", temp_dir, tmp_string());
|
|
||||||
- x_asprintf(&tmp_hashname, "%s/tmp.hash.%s.o", temp_dir, tmp_string());
|
|
||||||
+ x_asprintf(&tmp_stdout, "%s.tmp.stdout.%s", hashname, tmp_string());
|
|
||||||
+ x_asprintf(&tmp_stderr, "%s.tmp.stderr.%s", hashname, tmp_string());
|
|
||||||
+ x_asprintf(&tmp_hashname, "%s.tmp.%s", hashname, tmp_string());
|
|
||||||
|
|
||||||
args_add(args, "-o");
|
|
||||||
args_add(args, tmp_hashname);
|
|
||||||
@@ -331,8 +331,12 @@
|
|
||||||
hash_string(str_basename(args->argv[0]));
|
|
||||||
}
|
|
||||||
|
|
||||||
- hash_int(st.st_size);
|
|
||||||
- hash_int(st.st_mtime);
|
|
||||||
+ if (getenv("CCACHE_HASH_COMPILER")) {
|
|
||||||
+ hash_file(args->argv[0]);
|
|
||||||
+ } else if (!getenv("CCACHE_NOHASH_SIZE_MTIME")) {
|
|
||||||
+ hash_int(st.st_size);
|
|
||||||
+ hash_int(st.st_mtime);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* possibly hash the current working directory */
|
|
||||||
if (getenv("CCACHE_HASHDIR")) {
|
|
||||||
@@ -640,6 +644,8 @@
|
|
||||||
|
|
||||||
/* these are too hard */
|
|
||||||
if (strcmp(argv[i], "-fbranch-probabilities")==0 ||
|
|
||||||
+ strcmp(argv[i], "-coverage") == 0 ||
|
|
||||||
+ strcmp(argv[i], "-ftest-coverage") == 0 ||
|
|
||||||
strcmp(argv[i], "-M") == 0 ||
|
|
||||||
strcmp(argv[i], "-MM") == 0 ||
|
|
||||||
strcmp(argv[i], "-x") == 0) {
|
|
||||||
Index: ccache.h
|
|
||||||
--- ccache.h.orig 2004-09-13 12:38:30 +0200
|
|
||||||
+++ ccache.h 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -6,11 +6,10 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <errno.h>
|
|
||||||
-#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
+#include <sys/stat.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
-#include <sys/file.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <string.h>
|
|
||||||
@@ -19,6 +18,7 @@
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <limits.h>
|
|
||||||
+#include <sys/file.h>
|
|
||||||
#ifdef HAVE_PWD_H
|
|
||||||
#include <pwd.h>
|
|
||||||
#endif
|
|
||||||
Index: cleanup.c
|
|
||||||
--- cleanup.c.orig 2003-09-28 06:48:17 +0200
|
|
||||||
+++ cleanup.c 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -57,6 +57,17 @@
|
|
||||||
free(p);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (strstr(fname, ".tmp.") != NULL) {
|
|
||||||
+ /* delete any tmp files older than 1 hour */
|
|
||||||
+ if (st->st_mtime + 3600 < time(NULL)) {
|
|
||||||
+ unlink(fname);
|
|
||||||
+ free(p);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
free(p);
|
|
||||||
|
|
||||||
if (num_files == allocated) {
|
|
||||||
Index: config.h.in
|
|
||||||
--- config.h.in.orig 2003-09-28 06:48:17 +0200
|
|
||||||
+++ config.h.in 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -19,6 +19,9 @@
|
|
||||||
/* Define to 1 if you have the `gethostname' function. */
|
|
||||||
#undef HAVE_GETHOSTNAME
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the `getpwuid' function. */
|
|
||||||
+#undef HAVE_GETPWUID
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#undef HAVE_INTTYPES_H
|
|
||||||
|
|
||||||
@@ -31,6 +34,9 @@
|
|
||||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
|
||||||
#undef HAVE_NDIR_H
|
|
||||||
|
|
||||||
+/* Define to 1 if you have the <pwd.h> header file. */
|
|
||||||
+#undef HAVE_PWD_H
|
|
||||||
+
|
|
||||||
/* Define to 1 if you have the `realpath' function. */
|
|
||||||
#undef HAVE_REALPATH
|
|
||||||
|
|
||||||
@@ -98,3 +104,8 @@
|
|
||||||
|
|
||||||
/* Define _GNU_SOURCE so that we get all necessary prototypes */
|
|
||||||
#undef _GNU_SOURCE
|
|
||||||
+
|
|
||||||
+/* Define on UNIX to activate XPG/5 features. */
|
|
||||||
+#if !defined(_XOPEN_SOURCE)
|
|
||||||
+# define _XOPEN_SOURCE
|
|
||||||
+#endif
|
|
||||||
Index: util.c
|
|
||||||
--- util.c.orig 2004-09-13 12:38:30 +0200
|
|
||||||
+++ util.c 2007-06-30 10:27:56 +0200
|
|
||||||
@@ -151,7 +151,7 @@
|
|
||||||
vasprintf(ptr, format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
- if (!ptr) fatal("out of memory in x_asprintf");
|
|
||||||
+ if (!*ptr) fatal("out of memory in x_asprintf");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -187,14 +187,10 @@
|
|
||||||
{
|
|
||||||
void *p2;
|
|
||||||
if (!ptr) return x_malloc(size);
|
|
||||||
- p2 = malloc(size);
|
|
||||||
+ p2 = realloc(ptr, size);
|
|
||||||
if (!p2) {
|
|
||||||
fatal("out of memory in x_realloc");
|
|
||||||
}
|
|
||||||
- if (ptr) {
|
|
||||||
- memcpy(p2, ptr, size);
|
|
||||||
- free(ptr);
|
|
||||||
- }
|
|
||||||
return p2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -448,7 +444,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
- fatal("Unable to determine home directory");
|
|
||||||
+ fprintf(stderr, "ccache: Unable to determine home directory");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in new issue