Import patches to ccache-2.4 from debian (ccache-2.4-15)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10902 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
db41b96503
commit
5e2812ed09
25 changed files with 2351 additions and 0 deletions
22
CCache/debian/NEWS
Normal file
22
CCache/debian/NEWS
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
ccache (2.4-8) unstable; urgency=high
|
||||
|
||||
zlib compression is now enabled by default in order to increase the amount
|
||||
of object files that can fit in the cache.
|
||||
|
||||
The impact on performance is supposed to be almost negligible
|
||||
(see http://www.gustaebel.de/lars/ccache/). If you do want to disable
|
||||
it however, simply export the CCACHE_NOCOMPRESS environment variable.
|
||||
|
||||
Note that a zlib-enabled ccache will still read your existing
|
||||
uncompressed cache. If you want to compress/uncompress your cache,
|
||||
see the manage-cache.sh script under /usr/share/doc/ccache/examples/.
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 20 May 2007 19:45:07 +1200
|
||||
|
||||
ccache (2.4-1) unstable; urgency=low
|
||||
|
||||
* This release changes the hash input slighly, so you will probably find
|
||||
that you will not get any hits against your existing cache when you
|
||||
upgrade.
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sat, 11 Jun 2005 13:54:33 -0400
|
||||
59
CCache/debian/README.Debian
Normal file
59
CCache/debian/README.Debian
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
Installing ccache
|
||||
-----------------
|
||||
|
||||
The recommended way to use this with Debian is to either create "cc"
|
||||
and "gcc" symlinks to /usr/bin/ccache in your private bin directory
|
||||
(which must be before the real cc and gcc in your path), or use
|
||||
CC="ccache gcc" on the make command line.
|
||||
|
||||
Another option is to just prepend /usr/lib/ccache in your PATH
|
||||
environment variable, like
|
||||
|
||||
export PATH="/usr/lib/ccache:$PATH"
|
||||
|
||||
Note that ccache works with both native and cross compilers.
|
||||
|
||||
Ignoring whitespace
|
||||
-------------------
|
||||
|
||||
If you wish to set up ccache so that it ignores blank lines, have a
|
||||
look at the CCACHE_UNIFY option. However, please note that this
|
||||
option is off by default since the reported line numbers may not
|
||||
match the source files anymore.
|
||||
|
||||
|
||||
NFS Issues
|
||||
----------
|
||||
|
||||
(from John Coiner <john.coiner@amd.com> on the ccache mailing list)
|
||||
|
||||
When CCache creates a hardlinked output file, it calls utime() to update
|
||||
the timestamp on the object, so that Make realizes that the object has
|
||||
changed.
|
||||
|
||||
On NFS, utime() has no coherency guarantee, AFAIK. When utime() runs on
|
||||
host A, and our parallel implementation of Make is running on host B,
|
||||
sometimes Make doesn't see the new timestamp soon enough -- and neglects
|
||||
to relink the final binary. That's a one-way ticket to Silent Mysterious
|
||||
Failure Town.
|
||||
|
||||
Instead of relying on the object file timestamp, we create a dummy file
|
||||
with a reliable timestamp:
|
||||
|
||||
objs/foo.o objs/foo.o.built :
|
||||
if ( ccache gcc -o foo.o -c foo.c ) ; \
|
||||
then touch objs/foo.o.built ; \
|
||||
else exit 1; \
|
||||
fi
|
||||
|
||||
binary : objs/foo.o.built
|
||||
gcc -o binary objs/foo.o
|
||||
|
||||
NFS does make a coherency guarantee, that if a file is written and
|
||||
close()d on host A, and subsequently open()ed on host B, that the second
|
||||
open() will reflect all modifications and attributes from the close().
|
||||
Since Make does open() when checking timestamps, and the dummy file is
|
||||
close()d when it's created, the binary will always relink after the
|
||||
object is recompiled.
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 20 May 2007 17:35:36 +1200
|
||||
221
CCache/debian/changelog
Normal file
221
CCache/debian/changelog
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
ccache (2.4-15) unstable; urgency=low
|
||||
|
||||
* Add a new patch which improve the consistency of timestamps on cached
|
||||
objects to make sure clean-up is based on least recently used objects.
|
||||
* Patch the set_limit call so that non-writable cache directories return
|
||||
an error when attempting to size the max(files|size) (closes: #332527)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 13 Apr 2008 15:07:05 +1200
|
||||
|
||||
ccache (2.4-14) unstable; urgency=low
|
||||
|
||||
* Mention the long options everywhere in the manpage
|
||||
* Merge Gentoo patches:
|
||||
- respect user's LDFLAGS
|
||||
- use utimes() for timestamp if possible
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 23 Mar 2008 16:30:11 +1300
|
||||
|
||||
ccache (2.4-13) unstable; urgency=low
|
||||
|
||||
* Update CACHEDIR.TAG patch to avoid creating the tag file when the
|
||||
CCACHE_READONLY environment variable is set. (closes: #464356)
|
||||
* Mention the GNU-style long options in the manpage
|
||||
|
||||
-- Francois Marier <francois@debian.org> Thu, 07 Feb 2008 10:50:42 +1300
|
||||
|
||||
ccache (2.4-12) unstable; urgency=low
|
||||
|
||||
* Add symlink for gcc 4.3 (closes: #463590)
|
||||
* Add support for the CACHEDIR.TAG spec, thanks to Karl Chen.
|
||||
(see http://www.brynosaurus.com/cachedir/)
|
||||
* Fix hyphens in manpage (lintian notice)
|
||||
* Bump Standards-Version up to 3.7.3 (no changes)
|
||||
* Bump debhelper compatibility to 6
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sat, 02 Feb 2008 10:37:22 +1300
|
||||
|
||||
ccache (2.4-11) unstable; urgency=low
|
||||
|
||||
* Add the collab-maint repo to debian/control
|
||||
|
||||
-- Francois Marier <francois@debian.org> Tue, 20 Nov 2007 15:26:37 +1300
|
||||
|
||||
ccache (2.4-10) unstable; urgency=low
|
||||
|
||||
* Document where the patches are from in debian/patches/CREDITS
|
||||
* debian/rules:
|
||||
- Fixed "make distclean" lintian warning
|
||||
- Removed commented-out entries
|
||||
* Set debhelper compatibility to 5
|
||||
* Add homepage field in debian/control
|
||||
* Add symlinks for MinGW (closes: #445782)
|
||||
* Bump the version to 5 in the debhelper dependency
|
||||
|
||||
-- Francois Marier <francois@debian.org> Fri, 19 Oct 2007 16:04:37 +1300
|
||||
|
||||
ccache (2.4-9) unstable; urgency=low
|
||||
|
||||
* Add a symlink for gcc 4.2 (closes: #431007)
|
||||
* Fix dependencies when using -o (closes: #217713)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sat, 30 Jun 2007 17:58:44 +1200
|
||||
|
||||
ccache (2.4-8) unstable; urgency=low
|
||||
|
||||
* Enable zlib compression of the cache by default (closes: #409848).
|
||||
Thanks to Sami Liedes for suggesting this.
|
||||
* Disable ccache when profiling (closes: #215849).
|
||||
Thanks to Ted Percival for the Patch.
|
||||
* Fix NFS renaming issues and add instructions to the README.
|
||||
Thanks to John Coiner and instructions.
|
||||
* Put all patches in debian/patches and apply them at build time.
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 20 May 2007 19:42:34 +1200
|
||||
|
||||
ccache (2.4-7) unstable; urgency=low
|
||||
|
||||
* Use the real compiler when HOME is not set (closes: #396350)
|
||||
* Include user script under doc/examples (closes: #392435)
|
||||
Thanks to Behan Webster!
|
||||
* Add support for GNU --long options (closes: #297126)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sat, 18 Nov 2006 00:50:59 -0500
|
||||
|
||||
ccache (2.4-6) unstable; urgency=low
|
||||
|
||||
* Include symlinks for gcc 4.1 (closes: #372838)
|
||||
* Update watch file
|
||||
|
||||
-- Francois Marier <francois@debian.org> Tue, 13 Jun 2006 22:17:37 -0400
|
||||
|
||||
ccache (2.4-5) unstable; urgency=low
|
||||
|
||||
* Document the fact that cross-compiling is supported (closes: #349221)
|
||||
* Bump Standards-Version up to 3.7.2 (no changes)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 4 Jun 2006 01:20:07 -0400
|
||||
|
||||
ccache (2.4-4) unstable; urgency=low
|
||||
|
||||
* Mention another way to use ccache in README.Debian (thanks to Benjamin
|
||||
Drieu for the suggestion) (closes: #267632)
|
||||
* Update FSF address
|
||||
* Fix watch file
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sat, 26 Nov 2005 00:15:13 -0500
|
||||
|
||||
ccache (2.4-3) unstable; urgency=low
|
||||
|
||||
* Actually use the configuration flags in debian/rules
|
||||
* Bump Standards-Version up to 3.6.2 (no changes)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 26 Jun 2005 13:33:19 -0400
|
||||
|
||||
ccache (2.4-2) unstable; urgency=low
|
||||
|
||||
* Add gcc and g++ symlinks to /usr/lib/ccache (closes: #313490)
|
||||
* Remove invalid entry from Depends
|
||||
|
||||
-- Francois Marier <francois@debian.org> Wed, 15 Jun 2005 20:51:03 -0400
|
||||
|
||||
ccache (2.4-1) unstable; urgency=low
|
||||
|
||||
* New maintainer (closes: #312867)
|
||||
* New upstream version: (closes: #273753, #239640)
|
||||
- New CCACHE_READONLY and CCACHE_TEMPDIR options
|
||||
- Fixed handling of hard-linked compilers on AIX
|
||||
- Fixed handling of HOME environment variable (closes: #299880)
|
||||
- Show cache directory in stats output
|
||||
* Fix copyright file
|
||||
* Add 'distcc' to Suggests (closes: #269158)
|
||||
* Add a note about whitespace in README.Debian (closes: #229116)
|
||||
* Update rules to add symmlinks for gcc 3.4 & 4.0 (closes: #261177)
|
||||
* Acknowledge NMUs (closes: #200185, #177129, #174417)
|
||||
|
||||
-- Francois Marier <francois@debian.org> Sun, 12 Jun 2005 12:05:34 -0400
|
||||
|
||||
ccache (2.3-1.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload during BSP
|
||||
* Re-apply patch for
|
||||
#200185 ccache: Incorrect symlinks in /usr/lib/ccache
|
||||
(Closes: #200185)
|
||||
|
||||
-- Frank Lichtenheld <djpig@debian.org> Fri, 19 Mar 2004 11:14:50 +0100
|
||||
|
||||
ccache (2.3-1) unstable; urgency=low
|
||||
|
||||
* New upstream release: obsoletes existing caches.
|
||||
* Tweak package description in arbitrary way (closes: #181721)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Mon, 29 Sep 2003 02:53:20 +0200
|
||||
|
||||
ccache (2.2-2) unstable; urgency=low
|
||||
|
||||
* Insert more symlinks in ccache dir (closes: #197468)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Mon, 16 Jun 2003 10:52:50 +0100
|
||||
|
||||
ccache (2.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #150755)
|
||||
* Insert more symlinks in ccache dir (closes: #144462)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Mon, 17 Feb 2003 07:19:36 +0100
|
||||
|
||||
ccache (2.1.1-2) unstable; urgency=low
|
||||
|
||||
* Restored /usr/lib/ccache symlinks (closes: #179393)
|
||||
* Fixed manpage typo (closes: #179564)
|
||||
* With thanks to Andreas Rottmann.
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Wed, 5 Feb 2003 10:01:10 +0100
|
||||
|
||||
ccache (2.1.1-1) unstable; urgency=low
|
||||
|
||||
* NMU (with maintainer consent).
|
||||
* New upstream release (closes: #174417, #177129).
|
||||
* debian/control:
|
||||
+ Build-Depend on and use dephelper 4 (DH_COMPAT = 4).
|
||||
+ Bumped Standards-Version to 3.5.8.
|
||||
+ No full stop on short package description (fixes linda warning).
|
||||
* debian/copright:
|
||||
+ Make lintian feel comfortable; fixes warnings:
|
||||
- copyright-should-refer-to-common-license-file-for-gpl
|
||||
- copyright-lists-upstream-authors-with-dh_make-boilerplate
|
||||
* Built with g++ 3.2 :-).
|
||||
|
||||
-- Andreas Rottmann <rotty@debian.org> Thu, 16 Jan 2003 11:42:38 +0100
|
||||
|
||||
ccache (1.9-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #144920)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Mon, 13 May 2002 10:01:09 +0200
|
||||
|
||||
ccache (1.8-1) unstable; urgency=low
|
||||
|
||||
* New upstream release (closes: #145401)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Fri, 3 May 2002 02:26:32 +0200
|
||||
|
||||
ccache (1.7-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
* Install symlinks in /usr/lib/ccache (closes: #141337)
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Wed, 10 Apr 2002 17:51:21 +0200
|
||||
|
||||
ccache (1.4-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Wed, 3 Apr 2002 03:41:46 +0200
|
||||
|
||||
ccache (1.2-1) unstable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
-- Paul Russell <prussell@debian.org> Sun, 31 Mar 2002 14:08:57 +0200
|
||||
|
||||
1
CCache/debian/compat
Normal file
1
CCache/debian/compat
Normal file
|
|
@ -0,0 +1 @@
|
|||
6
|
||||
20
CCache/debian/control
Normal file
20
CCache/debian/control
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Source: ccache
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Maintainer: Francois Marier <francois@debian.org>
|
||||
Build-Depends: debhelper (>> 6), autotools-dev, zlib1g-dev
|
||||
Standards-Version: 3.7.3
|
||||
Homepage: http://ccache.samba.org
|
||||
Vcs-Svn: svn://svn.debian.org/svn/collab-maint/deb-maint/ccache/
|
||||
Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/deb-maint/ccache/
|
||||
|
||||
Package: ccache
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}
|
||||
Suggests: distcc
|
||||
Description: Compiler results cacher, for fast recompiles
|
||||
ccache is a compiler cache. It speeds up re-compilation of C/C++ code
|
||||
by caching previous compiles and detecting when the same compile is
|
||||
being done again.
|
||||
.
|
||||
This is similar to, but faster than, the compilercache package.
|
||||
29
CCache/debian/copyright
Normal file
29
CCache/debian/copyright
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
This package was debianized by Paul Russell <prussell@debian.org> on
|
||||
Sun, 31 Mar 2002 14:08:57 +0200.
|
||||
|
||||
It was downloaded from http://ccache.samba.org/ftp/ccache/
|
||||
|
||||
The ccache-zlib patch was downloaded from http://www.gustaebel.de/lars/ccache/
|
||||
|
||||
Upstream Author: Andrew Tridgell <tridge@samba.org>
|
||||
|
||||
Copyright: 2002-2005 Andrew Tridgell <tridge@samba.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301, USA
|
||||
|
||||
You are free to distribute this software under the terms of the GNU General
|
||||
Public License. On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in /usr/share/common-licenses/GPL file.
|
||||
3
CCache/debian/dirs
Normal file
3
CCache/debian/dirs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
usr/bin
|
||||
usr/lib/ccache
|
||||
usr/share/man/man1
|
||||
1
CCache/debian/docs
Normal file
1
CCache/debian/docs
Normal file
|
|
@ -0,0 +1 @@
|
|||
README
|
||||
2
CCache/debian/examples
Normal file
2
CCache/debian/examples
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
debian/update-ccache
|
||||
manage-cache.sh
|
||||
100
CCache/debian/patches/01_no_home.diff
Normal file
100
CCache/debian/patches/01_no_home.diff
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
--- ccache.c
|
||||
+++ ccache.c
|
||||
@@ -836,6 +836,13 @@
|
||||
{
|
||||
/* find the real compiler */
|
||||
find_compiler(argc, argv);
|
||||
+
|
||||
+ /* use the real compiler if HOME is not set */
|
||||
+ if (!cache_dir) {
|
||||
+ cc_log("Unable to determine home directory\n");
|
||||
+ cc_log("ccache is disabled\n");
|
||||
+ failed();
|
||||
+ }
|
||||
|
||||
/* we might be disabled */
|
||||
if (getenv("CCACHE_DISABLE")) {
|
||||
@@ -895,6 +902,13 @@
|
||||
printf("-V print version number\n");
|
||||
}
|
||||
|
||||
+static void check_cache_dir(void)
|
||||
+{
|
||||
+ if (!cache_dir) {
|
||||
+ fatal("Unable to determine home directory");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* the main program when not doing a compile */
|
||||
static int ccache_main(int argc, char *argv[])
|
||||
{
|
||||
@@ -914,31 +928,37 @@
|
||||
exit(0);
|
||||
|
||||
case 's':
|
||||
+ check_cache_dir();
|
||||
stats_summary();
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
+ check_cache_dir();
|
||||
cleanup_all(cache_dir);
|
||||
printf("Cleaned cache\n");
|
||||
break;
|
||||
|
||||
case 'C':
|
||||
+ check_cache_dir();
|
||||
wipe_all(cache_dir);
|
||||
printf("Cleared cache\n");
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
+ check_cache_dir();
|
||||
stats_zero();
|
||||
printf("Statistics cleared\n");
|
||||
break;
|
||||
|
||||
case 'F':
|
||||
+ check_cache_dir();
|
||||
v = atoi(optarg);
|
||||
stats_set_limits(v, -1);
|
||||
printf("Set cache file limit to %u\n", (unsigned)v);
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
+ check_cache_dir();
|
||||
v = value_units(optarg);
|
||||
stats_set_limits(-1, v);
|
||||
printf("Set cache size limit to %uk\n", (unsigned)v);
|
||||
@@ -983,7 +1003,10 @@
|
||||
|
||||
cache_dir = getenv("CCACHE_DIR");
|
||||
if (!cache_dir) {
|
||||
- x_asprintf(&cache_dir, "%s/.ccache", get_home_directory());
|
||||
+ const char *home_directory = get_home_directory();
|
||||
+ if (home_directory) {
|
||||
+ x_asprintf(&cache_dir, "%s/.ccache", home_directory);
|
||||
+ }
|
||||
}
|
||||
|
||||
temp_dir = getenv("CCACHE_TEMPDIR");
|
||||
@@ -1023,7 +1046,7 @@
|
||||
}
|
||||
|
||||
/* make sure the cache dir exists */
|
||||
- if (create_dir(cache_dir) != 0) {
|
||||
+ if (cache_dir && (create_dir(cache_dir) != 0)) {
|
||||
fprintf(stderr,"ccache: failed to create %s (%s)\n",
|
||||
cache_dir, strerror(errno));
|
||||
exit(1);
|
||||
--- util.c
|
||||
+++ util.c
|
||||
@@ -448,7 +448,7 @@
|
||||
}
|
||||
}
|
||||
#endif
|
||||
- fatal("Unable to determine home directory");
|
||||
+ cc_log("Unable to determine home directory");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
1026
CCache/debian/patches/02_ccache-compressed.diff
Normal file
1026
CCache/debian/patches/02_ccache-compressed.diff
Normal file
File diff suppressed because it is too large
Load diff
133
CCache/debian/patches/03_long_options.diff
Normal file
133
CCache/debian/patches/03_long_options.diff
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
Index: ccache.c
|
||||
===================================================================
|
||||
--- ccache.c (révision 7695)
|
||||
+++ ccache.c (copie de travail)
|
||||
@@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include "ccache.h"
|
||||
+#include <getopt.h>
|
||||
|
||||
/* the base cache directory */
|
||||
char *cache_dir = NULL;
|
||||
@@ -885,14 +886,14 @@
|
||||
printf("\tcompiler [compile options] (via symbolic link)\n");
|
||||
printf("\nOptions:\n");
|
||||
|
||||
- printf("-s show statistics summary\n");
|
||||
- printf("-z zero statistics\n");
|
||||
- printf("-c run a cache cleanup\n");
|
||||
- printf("-C clear the cache completely\n");
|
||||
- printf("-F <maxfiles> set maximum files in cache\n");
|
||||
- printf("-M <maxsize> set maximum size of cache (use G, M or K)\n");
|
||||
- printf("-h this help page\n");
|
||||
- printf("-V print version number\n");
|
||||
+ printf("-s, --show-stats show statistics summary\n");
|
||||
+ printf("-z, --zero-stats zero statistics\n");
|
||||
+ printf("-c, --cleanup run a cache cleanup\n");
|
||||
+ printf("-C, --clear clear the cache completely\n");
|
||||
+ printf("-F <n>, --max-files=<n> set maximum files in cache\n");
|
||||
+ printf("-M <n>, --max-size=<n> set maximum size of cache (use G, M or K)\n");
|
||||
+ printf("-h, --help this help page\n");
|
||||
+ printf("-V, --version print version number\n");
|
||||
}
|
||||
|
||||
/* the main program when not doing a compile */
|
||||
@@ -901,7 +902,21 @@
|
||||
int c;
|
||||
size_t v;
|
||||
|
||||
- while ((c = getopt(argc, argv, "hszcCF:M:V")) != -1) {
|
||||
+ static struct option long_options[] =
|
||||
+ {
|
||||
+ {"show-stats", no_argument, 0, 's'},
|
||||
+ {"zero-stats", no_argument, 0, 'z'},
|
||||
+ {"cleanup", no_argument, 0, 'c'},
|
||||
+ {"clear", no_argument, 0, 'C'},
|
||||
+ {"max-files", required_argument, 0, 'F'},
|
||||
+ {"max-size", required_argument, 0, 'M'},
|
||||
+ {"help", no_argument, 0, 'h'},
|
||||
+ {"version", no_argument, 0, 'V'},
|
||||
+ {0, 0, 0, 0}
|
||||
+ };
|
||||
+ int option_index = 0;
|
||||
+
|
||||
+ while ((c = getopt_long(argc, argv, "hszcCF:M:V", long_options, &option_index)) != -1) {
|
||||
switch (c) {
|
||||
case 'V':
|
||||
printf("ccache version %s\n", CCACHE_VERSION);
|
||||
Index: ccache.1
|
||||
===================================================================
|
||||
--- ccache.1 (révision 7695)
|
||||
+++ ccache.1 (copie de travail)
|
||||
@@ -23,14 +23,14 @@
|
||||
.nf
|
||||
|
||||
|
||||
--s show statistics summary
|
||||
--z zero statistics
|
||||
--c run a cache cleanup
|
||||
--C clear the cache completely
|
||||
--F <maxfiles> set maximum files in cache
|
||||
--M <maxsize> set maximum size of cache (use G, M or K)
|
||||
--h this help page
|
||||
--V print version number
|
||||
+\-s, \-\-show-stats show statistics summary
|
||||
+\-z, \-\-zero-stats zero statistics
|
||||
+\-c, \-\-cleanup run a cache cleanup
|
||||
+\-C, \-\-clear clear the cache completely
|
||||
+\-F <n>, \-\-max-files=<n> set maximum files in cache
|
||||
+\-M <n>, \-\-max-size=<n> set maximum size of cache (use G, M or K)
|
||||
+\-h, \-\-help this help page
|
||||
+\-V, \-\-version print version number
|
||||
|
||||
.fi
|
||||
|
||||
@@ -43,22 +43,22 @@
|
||||
normal compiler options apply and you should refer to your compilers
|
||||
documentation\&.
|
||||
.PP
|
||||
-.IP "\fB-h\fP"
|
||||
+.IP "\fB-h, --help\fP"
|
||||
Print a options summary page
|
||||
.IP
|
||||
-.IP "\fB-s\fP"
|
||||
+.IP "\fB-s, --show-stats\fP"
|
||||
Print the current statistics summary for the cache\&. The
|
||||
statistics are stored spread across the subdirectories of the
|
||||
cache\&. Using "ccache -s" adds up the statistics across all
|
||||
subdirectories and prints the totals\&.
|
||||
.IP
|
||||
-.IP "\fB-z\fP"
|
||||
+.IP "\fB-z, --zero-stats\fP"
|
||||
Zero the cache statistics\&.
|
||||
.IP
|
||||
-.IP "\fB-V\fP"
|
||||
+.IP "\fB-V, --version\fP"
|
||||
Print the ccache version number
|
||||
.IP
|
||||
-.IP "\fB-c\fP"
|
||||
+.IP "\fB-c, --cleanup\fP"
|
||||
Clean the cache and re-calculate the cache file count and
|
||||
size totals\&. Normally the -c option should not be necessary as ccache
|
||||
keeps the cache below the specified limits at runtime and keeps
|
||||
@@ -66,16 +66,16 @@
|
||||
if you manually modify the cache contents or believe that the cache
|
||||
size statistics may be inaccurate\&.
|
||||
.IP
|
||||
-.IP "\fB-C\fP"
|
||||
+.IP "\fB-C, --clear\fP"
|
||||
Clear the entire cache, removing all cached files\&.
|
||||
.IP
|
||||
-.IP "\fB-F maxfiles\fP"
|
||||
+.IP "\fB-F <maxfiles>, --max-files=<maxfiles>\fP"
|
||||
This sets the maximum number of files allowed in
|
||||
the cache\&. The value is stored inside the cache directory and applies
|
||||
to all future compiles\&. Due to the way the value is stored the actual
|
||||
value used is always rounded down to the nearest multiple of 16\&.
|
||||
.IP
|
||||
-.IP "\fB-M maxsize\fP"
|
||||
+.IP "\fB-M <maxsize>, --max-size=<maxsize>\fP"
|
||||
This sets the maximum cache size\&. You can specify
|
||||
a value in gigabytes, megabytes or kilobytes by appending a G, M or K
|
||||
to the value\&. The default is gigabytes\&. The actual value stored is
|
||||
13
CCache/debian/patches/04_ignore_profile.diff
Normal file
13
CCache/debian/patches/04_ignore_profile.diff
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff -ru ccache-2.4/ccache.c ccache-2.4-tp/ccache.c
|
||||
--- ccache.c 2007-05-20 03:14:19.000000000 +1000
|
||||
+++ ccache.c 2007-05-20 03:17:54.000000000 +1000
|
||||
@@ -641,6 +641,9 @@
|
||||
|
||||
/* these are too hard */
|
||||
if (strcmp(argv[i], "-fbranch-probabilities")==0 ||
|
||||
+ strcmp(argv[i], "-fprofile-arcs") == 0 ||
|
||||
+ strcmp(argv[i], "-ftest-coverage") == 0 ||
|
||||
+ strcmp(argv[i], "--coverage") == 0 ||
|
||||
strcmp(argv[i], "-M") == 0 ||
|
||||
strcmp(argv[i], "-MM") == 0 ||
|
||||
strcmp(argv[i], "-x") == 0) {
|
||||
45
CCache/debian/patches/05_nfs_fix.diff
Normal file
45
CCache/debian/patches/05_nfs_fix.diff
Normal file
|
|
@ -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
|
||||
77
CCache/debian/patches/06_md.diff
Normal file
77
CCache/debian/patches/06_md.diff
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
--- ccache.c Mon Sep 13 11:38:30 2004
|
||||
+++ ccache.c Thu Jun 21 22:17:32 2007
|
||||
@@ -627,6 +627,13 @@ static void process_args(int argc, char
|
||||
int found_S_opt = 0;
|
||||
struct stat st;
|
||||
char *e;
|
||||
+ /* is gcc being asked to output dependencies? */
|
||||
+ int generating_dependencies = 0;
|
||||
+ /* is the dependency makefile name overridden with -MF? */
|
||||
+ int dependency_filename_specified = 0;
|
||||
+ /* is the dependency makefile target name specified with -MQ or -MF? */
|
||||
+ int dependency_target_specified = 0;
|
||||
+
|
||||
|
||||
stripped_args = args_init(0, NULL);
|
||||
|
||||
@@ -702,6 +709,18 @@ static void process_args(int argc, char
|
||||
continue;
|
||||
}
|
||||
|
||||
+ /* These options require special handling, because they
|
||||
+ behave differently with gcc -E, when the output
|
||||
+ file is not specified. */
|
||||
+
|
||||
+ if (strcmp(argv[i], "-MD") == 0 || strcmp(argv[i], "-MMD") == 0) {
|
||||
+ generating_dependencies = 1;
|
||||
+ } else if (strcmp(argv[i], "-MF") == 0) {
|
||||
+ dependency_filename_specified = 1;
|
||||
+ } else if (strcmp(argv[i], "-MQ") == 0 || strcmp(argv[i], "-MT") == 0) {
|
||||
+ dependency_target_specified = 1;
|
||||
+ }
|
||||
+
|
||||
/* options that take an argument */
|
||||
{
|
||||
const char *opts[] = {"-I", "-include", "-imacros", "-iprefix",
|
||||
@@ -812,6 +831,41 @@ static void process_args(int argc, char
|
||||
}
|
||||
p[1] = found_S_opt ? 's' : 'o';
|
||||
p[2] = 0;
|
||||
+ }
|
||||
+
|
||||
+ /* If dependencies are generated, configure the preprocessor */
|
||||
+
|
||||
+ if (generating_dependencies && output_file) {
|
||||
+ if (!dependency_filename_specified) {
|
||||
+ char *default_depfile_name = x_strdup(output_file);
|
||||
+ char *p = strrchr(default_depfile_name, '.');
|
||||
+
|
||||
+ if (p) {
|
||||
+ if (strlen(p) < 2) {
|
||||
+ stats_update(STATS_ARGS);
|
||||
+ failed();
|
||||
+ return;
|
||||
+ }
|
||||
+ *p = 0;
|
||||
+ }
|
||||
+ else {
|
||||
+ int len = p - default_depfile_name;
|
||||
+
|
||||
+ p = x_malloc(len + 3);
|
||||
+ strncpy(default_depfile_name, p, len - 1);
|
||||
+ free(default_depfile_name);
|
||||
+ default_depfile_name = p;
|
||||
+ }
|
||||
+
|
||||
+ strcat(default_depfile_name, ".d");
|
||||
+ args_add(stripped_args, "-MF");
|
||||
+ args_add(stripped_args, default_depfile_name);
|
||||
+ }
|
||||
+
|
||||
+ if (!dependency_target_specified) {
|
||||
+ args_add(stripped_args, "-MT");
|
||||
+ args_add(stripped_args, output_file);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* cope with -o /dev/null */
|
||||
75
CCache/debian/patches/07_cachedirtag.diff
Normal file
75
CCache/debian/patches/07_cachedirtag.diff
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
Index: ccache.c
|
||||
===================================================================
|
||||
--- ccache.c (révision 7695)
|
||||
+++ ccache.c (copie de travail)
|
||||
@@ -1029,6 +1029,14 @@
|
||||
exit(1);
|
||||
}
|
||||
|
||||
+ if (!getenv("CCACHE_READONLY")) {
|
||||
+ if (create_cachedirtag(cache_dir) != 0) {
|
||||
+ fprintf(stderr,"ccache: failed to create %s/CACHEDIR.TAG (%s)\n",
|
||||
+ cache_dir, strerror(errno));
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
ccache(argc, argv);
|
||||
return 1;
|
||||
}
|
||||
Index: ccache.h
|
||||
===================================================================
|
||||
--- ccache.h (révision 7695)
|
||||
+++ ccache.h (copie de travail)
|
||||
@@ -81,6 +81,7 @@
|
||||
int copy_file(const char *src, const char *dest);
|
||||
|
||||
int create_dir(const char *dir);
|
||||
+int create_cachedirtag(const char *dir);
|
||||
void x_asprintf(char **ptr, const char *format, ...);
|
||||
char *x_strdup(const char *s);
|
||||
void *x_realloc(void *ptr, size_t size);
|
||||
Index: util.c
|
||||
===================================================================
|
||||
--- util.c (révision 7695)
|
||||
+++ util.c (copie de travail)
|
||||
@@ -138,6 +138,39 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+char const CACHEDIR_TAG[] =
|
||||
+ "Signature: 8a477f597d28d172789f06886806bc55\n"
|
||||
+ "# This file is a cache directory tag created by ccache.\n"
|
||||
+ "# For information about cache directory tags, see:\n"
|
||||
+ "# http://www.brynosaurus.com/cachedir/\n";
|
||||
+
|
||||
+int create_cachedirtag(const char *dir)
|
||||
+{
|
||||
+ char *filename;
|
||||
+ struct stat st;
|
||||
+ FILE *f;
|
||||
+ x_asprintf(&filename, "%s/CACHEDIR.TAG", dir);
|
||||
+ if (stat(filename, &st) == 0) {
|
||||
+ if (S_ISREG(st.st_mode)) {
|
||||
+ goto success;
|
||||
+ }
|
||||
+ errno = EEXIST;
|
||||
+ goto error;
|
||||
+ }
|
||||
+ f = fopen(filename, "w");
|
||||
+ if (!f) goto error;
|
||||
+ if (fwrite(CACHEDIR_TAG, sizeof(CACHEDIR_TAG)-1, 1, f) != 1) {
|
||||
+ goto error;
|
||||
+ }
|
||||
+ if (fclose(f)) goto error;
|
||||
+success:
|
||||
+ free(filename);
|
||||
+ return 0;
|
||||
+error:
|
||||
+ free(filename);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
this is like asprintf() but dies if the malloc fails
|
||||
note that we use vsnprintf in a rather poor way to make this more portable
|
||||
89
CCache/debian/patches/08_manpage_hyphens.diff
Normal file
89
CCache/debian/patches/08_manpage_hyphens.diff
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
Index: ccache.1
|
||||
===================================================================
|
||||
--- ccache.1 (révision 7695)
|
||||
+++ ccache.1 (copie de travail)
|
||||
@@ -49,7 +49,7 @@
|
||||
.IP "\fB-s\fP"
|
||||
Print the current statistics summary for the cache\&. The
|
||||
statistics are stored spread across the subdirectories of the
|
||||
-cache\&. Using "ccache -s" adds up the statistics across all
|
||||
+cache\&. Using "ccache \-s" adds up the statistics across all
|
||||
subdirectories and prints the totals\&.
|
||||
.IP
|
||||
.IP "\fB-z\fP"
|
||||
@@ -60,7 +60,7 @@
|
||||
.IP
|
||||
.IP "\fB-c\fP"
|
||||
Clean the cache and re-calculate the cache file count and
|
||||
-size totals\&. Normally the -c option should not be necessary as ccache
|
||||
+size totals\&. Normally the \-c option should not be necessary as ccache
|
||||
keeps the cache below the specified limits at runtime and keeps
|
||||
statistics up to date on each compile\&. This option is mostly useful
|
||||
if you manually modify the cache contents or believe that the cache
|
||||
@@ -100,9 +100,9 @@
|
||||
|
||||
|
||||
cp ccache /usr/local/bin/
|
||||
- ln -s /usr/local/bin/ccache /usr/local/bin/gcc
|
||||
- ln -s /usr/local/bin/ccache /usr/local/bin/g++
|
||||
- ln -s /usr/local/bin/ccache /usr/local/bin/cc
|
||||
+ ln \-s /usr/local/bin/ccache /usr/local/bin/gcc
|
||||
+ ln \-s /usr/local/bin/ccache /usr/local/bin/g++
|
||||
+ ln \-s /usr/local/bin/ccache /usr/local/bin/cc
|
||||
|
||||
.fi
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
.PP
|
||||
When run as a compiler front end ccache usually just takes the same
|
||||
command line options as the compiler you are using\&. The only exception
|
||||
-to this is the option \&'--ccache-skip\&'\&. That option can be used to tell
|
||||
+to this is the option \&'\-\-ccache-skip\&'\&. That option can be used to tell
|
||||
ccache that the next option is definitely not a input filename, and
|
||||
should be passed along to the compiler as-is\&.
|
||||
.PP
|
||||
@@ -128,7 +128,7 @@
|
||||
of the resulting object file (among other things)\&. The heuristic
|
||||
ccache uses in this parse is that any string on the command line that
|
||||
exists as a file is treated as an input file name (usually a C
|
||||
-file)\&. By using --ccache-skip you can force an option to not be
|
||||
+file)\&. By using \-\-ccache-skip you can force an option to not be
|
||||
treated as an input file name and instead be passed along to the
|
||||
compiler as a command line option\&.
|
||||
.PP
|
||||
@@ -238,7 +238,7 @@
|
||||
.IP "\fBCCACHE_UNIFY\fP"
|
||||
If you set the environment variable CCACHE_UNIFY
|
||||
then ccache will use the C/C++ unifier when hashing the pre-processor
|
||||
-output if -g is not used in the compile\&. The unifier is slower than a
|
||||
+output if \-g is not used in the compile\&. The unifier is slower than a
|
||||
normal hash, so setting this environment variable loses a little bit
|
||||
of speed, but it means that ccache can take advantage of not
|
||||
recompiling when the changes to the source code consist of
|
||||
@@ -262,7 +262,7 @@
|
||||
.PP
|
||||
By default ccache has a one gigabyte limit on the cache size and no
|
||||
maximum number of files\&. You can set a different limit using the
|
||||
-"ccache -M" and "ccache -F" options, which set the size and number of
|
||||
+"ccache \-M" and "ccache \-F" options, which set the size and number of
|
||||
files limits\&.
|
||||
.PP
|
||||
When these limits are reached ccache will reduce the cache to 20%
|
||||
@@ -276,7 +276,7 @@
|
||||
that it is the same code by forming a hash of:
|
||||
.PP
|
||||
.IP o
|
||||
-the pre-processor output from running the compiler with -E
|
||||
+the pre-processor output from running the compiler with \-E
|
||||
.IP o
|
||||
the command line options
|
||||
.IP o
|
||||
@@ -331,7 +331,7 @@
|
||||
.IP o
|
||||
Make sure that the setgid bit is set on all directories in the
|
||||
cache\&. This tells the filesystem to inherit group ownership for new
|
||||
-directories\&. The command "chmod g+s `find $CCACHE_DIR -type d`" might
|
||||
+directories\&. The command "chmod g+s `find $CCACHE_DIR \-type d`" might
|
||||
be useful for this\&.
|
||||
.PP
|
||||
.SH "HISTORY"
|
||||
11
CCache/debian/patches/09_respect_ldflags.diff
Normal file
11
CCache/debian/patches/09_respect_ldflags.diff
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- Makefile.in.orig 2008-03-23 17:01:19.000000000 +1300
|
||||
+++ Makefile.in 2008-03-23 17:03:03.000000000 +1300
|
||||
@@ -21,7 +21,7 @@
|
||||
docs: ccache.1 web/ccache-man.html
|
||||
|
||||
ccache$(EXEEXT): $(OBJS) $(HEADERS)
|
||||
- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
ccache.1: ccache.yo
|
||||
-yodl2man -o ccache.1 ccache.yo
|
||||
23
CCache/debian/patches/10_lru_cleanup.diff
Normal file
23
CCache/debian/patches/10_lru_cleanup.diff
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
--- ccache.c (révision 8804)
|
||||
+++ ccache.c (copie de travail)
|
||||
@@ -481,6 +481,9 @@
|
||||
return;
|
||||
}
|
||||
|
||||
+ /* update timestamps for LRU cleanup
|
||||
+ also gives output_file a sensible mtime when hard-linking (for make) */
|
||||
+ utime(hashname, NULL);
|
||||
utime(stderr_file, NULL);
|
||||
|
||||
if (strcmp(output_file, "/dev/null") == 0) {
|
||||
@@ -513,10 +516,6 @@
|
||||
failed();
|
||||
}
|
||||
}
|
||||
- if (ret == 0) {
|
||||
- /* update the mtime on the file so that make doesn't get confused */
|
||||
- utime(output_file, NULL);
|
||||
- }
|
||||
|
||||
/* get rid of the intermediate preprocessor file */
|
||||
if (i_tmpfile) {
|
||||
85
CCache/debian/patches/11_utimes.diff
Normal file
85
CCache/debian/patches/11_utimes.diff
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
--- ccache.c 2004-09-13 03:38:30.000000000 -0700
|
||||
+++ ccache.c 2006-06-09 16:29:16.695117780 -0700
|
||||
@@ -481,8 +481,13 @@
|
||||
|
||||
/* update timestamps for LRU cleanup
|
||||
also gives output_file a sensible mtime when hard-linking (for make) */
|
||||
+#ifdef HAVE_UTIMES
|
||||
+ utimes(hashname, NULL);
|
||||
+ utimes(stderr_file, NULL);
|
||||
+#else
|
||||
utime(hashname, NULL);
|
||||
utime(stderr_file, NULL);
|
||||
+#endif
|
||||
|
||||
if (strcmp(output_file, "/dev/null") == 0) {
|
||||
ret = 0;
|
||||
--- ccache.h 2004-09-13 03:38:30.000000000 -0700
|
||||
+++ ccache.h 2006-06-09 16:28:16.601658626 -0700
|
||||
@@ -22,6 +22,9 @@
|
||||
#ifdef HAVE_PWD_H
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_TIME_H
|
||||
+#include <sys/time.h>
|
||||
+#endif
|
||||
|
||||
#define STATUS_NOTFOUND 3
|
||||
#define STATUS_FATAL 4
|
||||
--- config.h.in 2003-09-27 21:48:17.000000000 -0700
|
||||
+++ config.h.in 2006-06-09 16:25:43.000000000 -0700
|
||||
@@ -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
|
||||
|
||||
@@ -60,6 +66,9 @@
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
+/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
+#undef HAVE_SYS_TIME_H
|
||||
+
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
@@ -69,6 +78,9 @@
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
+/* Define to 1 if you have the `utimes' function. */
|
||||
+#undef HAVE_UTIMES
|
||||
+
|
||||
/* Define to 1 if you have the `vasprintf' function. */
|
||||
#undef HAVE_VASPRINTF
|
||||
|
||||
--- configure.in 2004-09-13 03:38:30.000000000 -0700
|
||||
+++ configure.in 2006-06-09 16:25:15.541288184 -0700
|
||||
@@ -27,10 +27,11 @@
|
||||
AC_HEADER_TIME
|
||||
AC_HEADER_SYS_WAIT
|
||||
|
||||
-AC_CHECK_HEADERS(ctype.h strings.h stdlib.h string.h pwd.h)
|
||||
+AC_CHECK_HEADERS(ctype.h strings.h stdlib.h string.h pwd.h sys/time.h)
|
||||
|
||||
AC_CHECK_FUNCS(realpath snprintf vsnprintf vasprintf asprintf mkstemp)
|
||||
AC_CHECK_FUNCS(gethostname getpwuid)
|
||||
+AC_CHECK_FUNCS(utimes)
|
||||
|
||||
AC_CACHE_CHECK([for compar_fn_t in stdlib.h],ccache_cv_COMPAR_FN_T, [
|
||||
AC_TRY_COMPILE(
|
||||
83
CCache/debian/patches/12_cachesize_permissions.diff
Normal file
83
CCache/debian/patches/12_cachesize_permissions.diff
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
--- stats.c (révision 8804)
|
||||
+++ stats.c (copie de travail)
|
||||
@@ -286,7 +286,7 @@
|
||||
|
||||
|
||||
/* set the per directory limits */
|
||||
-void stats_set_limits(long maxfiles, long maxsize)
|
||||
+int stats_set_limits(long maxfiles, long maxsize)
|
||||
{
|
||||
int dir;
|
||||
unsigned counters[STATS_END];
|
||||
@@ -298,7 +298,9 @@
|
||||
maxsize /= 16;
|
||||
}
|
||||
|
||||
- create_dir(cache_dir);
|
||||
+ if (create_dir(cache_dir) != 0) {
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
/* set the limits in each directory */
|
||||
for (dir=0;dir<=0xF;dir++) {
|
||||
@@ -306,7 +308,9 @@
|
||||
int fd;
|
||||
|
||||
x_asprintf(&cdir, "%s/%1x", cache_dir, dir);
|
||||
- create_dir(cdir);
|
||||
+ if (create_dir(cdir) != 0) {
|
||||
+ return 1;
|
||||
+ }
|
||||
x_asprintf(&fname, "%s/stats", cdir);
|
||||
free(cdir);
|
||||
|
||||
@@ -326,6 +330,8 @@
|
||||
}
|
||||
free(fname);
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* set the per directory sizes */
|
||||
--- ccache.c (révision 8804)
|
||||
+++ ccache.c (copie de travail)
|
||||
@@ -935,15 +934,23 @@
|
||||
case 'F':
|
||||
check_cache_dir();
|
||||
v = atoi(optarg);
|
||||
- stats_set_limits(v, -1);
|
||||
- printf("Set cache file limit to %u\n", (unsigned)v);
|
||||
+ if (stats_set_limits(v, -1) == 0) {
|
||||
+ printf("Set cache file limit to %u\n", (unsigned)v);
|
||||
+ } else {
|
||||
+ printf("Could not set cache file limit.\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
check_cache_dir();
|
||||
v = value_units(optarg);
|
||||
- stats_set_limits(-1, v);
|
||||
- printf("Set cache size limit to %uk\n", (unsigned)v);
|
||||
+ if (stats_set_limits(-1, v) == 0) {
|
||||
+ printf("Set cache size limit to %uk\n", (unsigned)v);
|
||||
+ } else {
|
||||
+ printf("Could not set cache size limit.\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
break;
|
||||
|
||||
default:
|
||||
--- ccache.h (révision 8804)
|
||||
+++ ccache.h (copie de travail)
|
||||
@@ -101,7 +101,7 @@
|
||||
void stats_summary(void);
|
||||
void stats_tocache(size_t size);
|
||||
void stats_read(const char *stats_file, unsigned counters[STATS_END]);
|
||||
-void stats_set_limits(long maxfiles, long maxsize);
|
||||
+int stats_set_limits(long maxfiles, long maxsize);
|
||||
size_t value_units(const char *s);
|
||||
void display_size(unsigned v);
|
||||
void stats_set_sizes(const char *dir, size_t num_files, size_t total_size);
|
||||
47
CCache/debian/patches/CREDITS
Normal file
47
CCache/debian/patches/CREDITS
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
01_no_home.diff:
|
||||
Francois Marier <francois@debian.org>
|
||||
Made especially for the Debian package.
|
||||
|
||||
02_ccache_compressed.diff:
|
||||
Lars Gustäbel <lars@gustaebel.de>
|
||||
http://www.gustaebel.de/lars/ccache/ (downloaded on 2007-05-20)
|
||||
|
||||
03_long_options.diff:
|
||||
Francois Marier <francois@debian.org>
|
||||
Made especially for the Debian package.
|
||||
|
||||
04_ignore_profile.diff:
|
||||
Ted Percival <ted@midg3t.net>
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=20;filename=ccache-profile.patch;att=1;bug=215849
|
||||
|
||||
05_nfs_fix.diff:
|
||||
John Coiner <john.coiner@amd.com>
|
||||
http://lists.samba.org/archive/ccache/2007q1/000265.html
|
||||
|
||||
06_md.diff:
|
||||
Andrea Bittau <a.bittau@cs.ucl.ac.uk>
|
||||
http://darkircop.org/ccache/ccache-2.4-md.patch (downloaded on 2007-06-30)
|
||||
|
||||
07_cachedirtag.diff:
|
||||
Karl Chen <quarl@cs.berkeley.edu>
|
||||
http://lists.samba.org/archive/ccache/2008q1/000316.html (downloaded on 2008-02-02)
|
||||
|
||||
08_manpage_hyphens.diff:
|
||||
Francois Marier <francois@debian.org>
|
||||
Made especially for the Debian package.
|
||||
|
||||
09_respect_ldflags.diff:
|
||||
Lisa Seelye <lisa@gentoo.org>
|
||||
http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/ccache/files/ccache-2.4-respectflags.patch?rev=1.1&view=markup
|
||||
|
||||
10_lru_cleanup.diff:
|
||||
RW <fbsd06@mlists.homeunix.com>
|
||||
http://lists.samba.org/archive/ccache/2008q2/000339.html (downloaded on 2008-04-11)
|
||||
|
||||
11_utimes.diff:
|
||||
Robin H. Johnson <robbat2@gentoo.org>
|
||||
http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/ccache/files/ccache-2.4-utimes.patch?rev=1.1&view=markup
|
||||
|
||||
12_cachesize_permissions.diff:
|
||||
Francois Marier <francois@debian.org>
|
||||
Made especially for the Debian package to fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=332527
|
||||
141
CCache/debian/rules
Normal file
141
CCache/debian/rules
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# GNU copyright 1997 to 1999 by Joey Hess.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# These are used for cross-compiling and for saving the configure script
|
||||
# from having to guess our platform (since we know it already)
|
||||
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
|
||||
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
|
||||
confflags += --build $(DEB_HOST_GNU_TYPE)
|
||||
else
|
||||
confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
||||
CFLAGS += -g
|
||||
endif
|
||||
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
||||
INSTALL_PROGRAM += -s
|
||||
endif
|
||||
|
||||
config.status: configure
|
||||
dh_testdir
|
||||
|
||||
# Apply Debian specific patches
|
||||
cp $(CURDIR)/ccache.c $(CURDIR)/ccache.c.unpatched
|
||||
cp $(CURDIR)/util.c $(CURDIR)/util.c.unpatched
|
||||
cp $(CURDIR)/ccache.1 $(CURDIR)/ccache.1.unpatched
|
||||
cp $(CURDIR)/ccache.h $(CURDIR)/ccache.h.unpatched
|
||||
cp $(CURDIR)/ccache.yo $(CURDIR)/ccache.yo.unpatched
|
||||
cp $(CURDIR)/config.h.in $(CURDIR)/config.h.in.unpatched
|
||||
cp $(CURDIR)/configure $(CURDIR)/configure.unpatched
|
||||
cp $(CURDIR)/configure.in $(CURDIR)/configure.in.unpatched
|
||||
cp $(CURDIR)/Makefile.in $(CURDIR)/Makefile.in.unpatched
|
||||
if test ! -f patch-stamp; then \
|
||||
for patch in $(CURDIR)/debian/patches/*.diff ;\
|
||||
do \
|
||||
echo APPLYING PATCH\: $${patch##*/};\
|
||||
patch -p0 < $$patch ;\
|
||||
done ;\
|
||||
touch patch-stamp ;\
|
||||
fi
|
||||
chmod +x $(CURDIR)/manage-cache.sh
|
||||
|
||||
./configure $(confflags) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
|
||||
|
||||
build: build-stamp
|
||||
|
||||
build-stamp: config.status
|
||||
dh_testdir
|
||||
|
||||
$(MAKE)
|
||||
|
||||
touch build-stamp
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp
|
||||
|
||||
# Unapply patches
|
||||
-test -r $(CURDIR)/ccache.c.unpatched && mv $(CURDIR)/ccache.c.unpatched $(CURDIR)/ccache.c
|
||||
-test -r $(CURDIR)/util.c.unpatched && mv $(CURDIR)/util.c.unpatched $(CURDIR)/util.c
|
||||
-test -r $(CURDIR)/ccache.1.unpatched && mv $(CURDIR)/ccache.1.unpatched $(CURDIR)/ccache.1
|
||||
-test -r $(CURDIR)/ccache.h.unpatched && mv $(CURDIR)/ccache.h.unpatched $(CURDIR)/ccache.h
|
||||
-test -r $(CURDIR)/ccache.yo.unpatched && mv $(CURDIR)/ccache.yo.unpatched $(CURDIR)/ccache.yo
|
||||
-test -r $(CURDIR)/config.h.in.unpatched && mv $(CURDIR)/config.h.in.unpatched $(CURDIR)/config.h.in
|
||||
-test -r $(CURDIR)/configure.unpatched && mv $(CURDIR)/configure.unpatched $(CURDIR)/configure
|
||||
-test -r $(CURDIR)/configure.in.unpatched && mv $(CURDIR)/configure.in.unpatched $(CURDIR)/configure.in
|
||||
-test -r $(CURDIR)/Makefile.in.unpatched && mv $(CURDIR)/Makefile.in.unpatched $(CURDIR)/Makefile.in
|
||||
-rm -f $(CURDIR)/manage-cache.sh
|
||||
-rm -f patch-stamp
|
||||
|
||||
[ ! -f Makefile ] || $(MAKE) distclean
|
||||
|
||||
dh_clean
|
||||
|
||||
# Update config.sub and config.guess
|
||||
-test -r /usr/share/misc/config.sub && \
|
||||
cp -f /usr/share/misc/config.sub config.sub
|
||||
-test -r /usr/share/misc/config.guess && \
|
||||
cp -f /usr/share/misc/config.guess config.guess
|
||||
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/ccache.
|
||||
$(MAKE) install prefix=$(CURDIR)/debian/ccache/usr
|
||||
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/$(DEB_BUILD_GNU_TYPE)-gcc
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/$(DEB_BUILD_GNU_TYPE)-g++
|
||||
set -e; for ver in 2.95 3.0 3.2 3.3 3.4 4.0 4.1 4.2 4.3; do \
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/$(DEB_BUILD_GNU_TYPE)-gcc-$$ver; \
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/gcc-$$ver; \
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/$(DEB_BUILD_GNU_TYPE)-g++-$$ver; \
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/g++-$$ver; \
|
||||
done
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/cc
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/c++
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/gcc
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/g++
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/i586-mingw32msvc-c++
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/i586-mingw32msvc-cc
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/i586-mingw32msvc-g++
|
||||
ln -s ../../bin/ccache $(CURDIR)/debian/ccache/usr/lib/ccache/i586-mingw32msvc-gcc
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installdocs
|
||||
dh_installexamples
|
||||
dh_installmenu
|
||||
dh_installcron
|
||||
dh_installman
|
||||
dh_installinfo
|
||||
dh_installchangelogs
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_installdeb
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
||||
43
CCache/debian/update-ccache
Normal file
43
CCache/debian/update-ccache
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Update compiler links to ccache (in /usr/local/bin)
|
||||
#
|
||||
# The idea is that /usr/local/bin is ahead of /usr/bin in your PATH, so adding
|
||||
# the link /usr/local/bin/cc -> /usr/bin/ccache means that it is run instead of
|
||||
# /usr/bin/cc
|
||||
#
|
||||
# Written by: Behan Webster <behanw@websterwood.com>
|
||||
#
|
||||
|
||||
DIRECTORY=/usr/local/bin
|
||||
CCACHE=/usr/bin/ccache
|
||||
CCDIR=/usr/lib/ccache
|
||||
|
||||
usage() {
|
||||
echo "Usage: `basename $0` [--directory <dir>] [--remove]"
|
||||
exit 0
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ] ; do
|
||||
case "$1" in
|
||||
-d*|--d*|--directory) DIRECTORY=$2; shift; shift;;
|
||||
-h*|--h*|--help) usage;;
|
||||
-r*|--r*|--remove) REMOVE=1; shift;;
|
||||
-t*|--t*|--test) TEST=echo; shift;;
|
||||
esac
|
||||
done
|
||||
|
||||
for FILE in `cd $CCDIR; ls` ; do
|
||||
LINK=$DIRECTORY/$FILE
|
||||
if [ -z "$REMOVE" ] ; then
|
||||
# Add link
|
||||
$TEST ln -fs $CCACHE $LINK
|
||||
else
|
||||
# Remove link
|
||||
if [ -L "$LINK" ] ; then
|
||||
$TEST rm -f $LINK
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# vim: sw=4 ts=4
|
||||
2
CCache/debian/watch
Normal file
2
CCache/debian/watch
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
version=2
|
||||
http://samba.org/ftp/ccache/ccache-(.*)\.tar\.gz
|
||||
Loading…
Add table
Add a link
Reference in a new issue