diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-util/ccache/files | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-util/ccache/files')
-rw-r--r-- | dev-util/ccache/files/ccache-2.4-profile.patch | 27 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-2.4-respectflags.patch | 13 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-2.4-utimes.patch | 105 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-2.4-xrealloc.patch | 35 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch | 185 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-3.1.10-size-on-disk.patch | 21 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-3.1.7-no-perl.patch | 15 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-3.1.9-test-gcc-4.8.patch | 156 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-config | 100 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-config-2 | 97 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-config-3 | 97 |
11 files changed, 851 insertions, 0 deletions
diff --git a/dev-util/ccache/files/ccache-2.4-profile.patch b/dev-util/ccache/files/ccache-2.4-profile.patch new file mode 100644 index 000000000000..57743213dd3c --- /dev/null +++ b/dev-util/ccache/files/ccache-2.4-profile.patch @@ -0,0 +1,27 @@ +GCCs options -fprofile-generate and -fprofile-use are used for +profile guided optimization. It depends on the ability to locate +the profile data files (.gcda) after running the executable with +the training data. However, ccache prevents the compiler from +finding the correct profile data file. Therefore the following +patch disables the caching when one of the + -fprofile-generate + -fprofile-use + -fprofile-arcs +flags is found. + +Signed-off-by: Clemens Rabe <crabe _at_ gmx _dot_ de> + + +diff -Naur ccache-2.4.orig/ccache.c ccache-2.4/ccache.c +--- ccache-2.4.orig/ccache.c 2004-09-13 12:38:30.000000000 +0200 ++++ ccache-2.4/ccache.c 2008-01-07 20:25:38.000000000 +0100 +@@ -640,6 +640,9 @@ + + /* these are too hard */ + if (strcmp(argv[i], "-fbranch-probabilities")==0 || ++ strcmp(argv[i], "-fprofile-generate")==0 || ++ strcmp(argv[i], "-fprofile-use")==0 || ++ strcmp(argv[i], "-fprofile-arcs")==0 || + strcmp(argv[i], "-M") == 0 || + strcmp(argv[i], "-MM") == 0 || + strcmp(argv[i], "-x") == 0) { diff --git a/dev-util/ccache/files/ccache-2.4-respectflags.patch b/dev-util/ccache/files/ccache-2.4-respectflags.patch new file mode 100644 index 000000000000..38d5f6a590d8 --- /dev/null +++ b/dev-util/ccache/files/ccache-2.4-respectflags.patch @@ -0,0 +1,13 @@ +Index: ccache-2.4/Makefile.in +=================================================================== +--- ccache-2.4.orig/Makefile.in ++++ ccache-2.4/Makefile.in +@@ -20,7 +20,7 @@ all: ccache$(EXEEXT) + 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 diff --git a/dev-util/ccache/files/ccache-2.4-utimes.patch b/dev-util/ccache/files/ccache-2.4-utimes.patch new file mode 100644 index 000000000000..30aff6b8fb8a --- /dev/null +++ b/dev-util/ccache/files/ccache-2.4-utimes.patch @@ -0,0 +1,105 @@ +utime(...,NULL) in some cases may cause truncation of sub-second portions of +timestamps. If utimes(...,NULL) is available, use it instead to avoid this +problem. + +Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> + +diff -Nuar --exclude autom4te.cache --exclude '*~' ccache-2.4.orig/ccache.c ccache-2.4/ccache.c +--- ccache-2.4.orig/ccache.c 2004-09-13 03:38:30.000000000 -0700 ++++ ccache-2.4/ccache.c 2006-06-09 16:29:16.695117780 -0700 +@@ -481,7 +481,11 @@ + return; + } + ++#ifdef HAVE_UTIMES ++ utimes(stderr_file, NULL); ++#else + utime(stderr_file, NULL); ++#endif + + if (strcmp(output_file, "/dev/null") == 0) { + ret = 0; +@@ -515,7 +519,11 @@ + } + if (ret == 0) { + /* update the mtime on the file so that make doesn't get confused */ ++#ifdef HAVE_UTIMES ++ utimes(output_file, NULL); ++#else + utime(output_file, NULL); ++#endif + } + + /* get rid of the intermediate preprocessor file */ +diff -Nuar --exclude autom4te.cache --exclude '*~' ccache-2.4.orig/ccache.h ccache-2.4/ccache.h +--- ccache-2.4.orig/ccache.h 2004-09-13 03:38:30.000000000 -0700 ++++ ccache-2.4/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 +diff -Nuar --exclude autom4te.cache --exclude '*~' ccache-2.4.orig/config.h.in ccache-2.4/config.h.in +--- ccache-2.4.orig/config.h.in 2003-09-27 21:48:17.000000000 -0700 ++++ ccache-2.4/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 + +diff -Nuar --exclude autom4te.cache --exclude '*~' ccache-2.4.orig/configure.in ccache-2.4/configure.in +--- ccache-2.4.orig/configure.in 2004-09-13 03:38:30.000000000 -0700 ++++ ccache-2.4/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( diff --git a/dev-util/ccache/files/ccache-2.4-xrealloc.patch b/dev-util/ccache/files/ccache-2.4-xrealloc.patch new file mode 100644 index 000000000000..8e2d44dc6137 --- /dev/null +++ b/dev-util/ccache/files/ccache-2.4-xrealloc.patch @@ -0,0 +1,35 @@ +https://bugzilla.samba.org/show_bug.cgi?id=7090 +https://bugs.gentoo.org/338137 + +From 52a9cd8eb8a69f9dc6944c047faf112b7137a07b Mon Sep 17 00:00:00 2001 +From: Andrew Tridgell <tridge@samba.org> +Date: Mon, 17 Jul 2006 05:41:12 +0200 +Subject: [PATCH] fixed a bug in x_realloc() + +--- + util.c | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +diff --git a/util.c b/util.c +index 073fa81..29d0e5b 100644 +--- a/util.c ++++ b/util.c +@@ -187,14 +187,10 @@ void *x_realloc(void *ptr, size_t size) + { + 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; + } + +-- +1.7.3.1 + diff --git a/dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch b/dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch new file mode 100644 index 000000000000..45e654105170 --- /dev/null +++ b/dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch @@ -0,0 +1,185 @@ +https://lists.samba.org/archive/ccache/2014q4/001246.html + +From 5d0f507a4162ac89e05ca633dbc8056454b798f5 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Mon, 15 Sep 2014 18:15:02 -0400 +Subject: [PATCH] do not rely on pids being unique + +Linux supports creating pid namespaces cheaply and running processes +inside of them. When you try to share a single cache among multiple +such runs, the fact that the code relies on pid numbers as globally +unique values quickly fails. Instead, switch to standard mkstemp to +generate temp files for us. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + ccache.c | 12 ++++++------ + ccache.h | 2 +- + manifest.c | 2 +- + stats.c | 10 +++++++++- + util.c | 13 ++++++++----- + 5 files changed, 25 insertions(+), 14 deletions(-) + +diff --git a/ccache.c b/ccache.c +index 02dbdfa..1dc0a06 100644 +--- a/ccache.c ++++ b/ccache.c +@@ -526,8 +526,11 @@ to_cache(struct args *args) + unsigned added_files = 0; + + tmp_stdout = format("%s.tmp.stdout.%s", cached_obj, tmp_string()); ++ create_empty_file(tmp_stdout); + tmp_stderr = format("%s.tmp.stderr.%s", cached_obj, tmp_string()); ++ create_empty_file(tmp_stderr); + tmp_obj = format("%s.tmp.%s", cached_obj, tmp_string()); ++ create_empty_file(tmp_obj); + + args_add(args, "-o"); + args_add(args, tmp_obj); +@@ -579,7 +582,7 @@ to_cache(struct args *args) + int fd_result; + char *tmp_stderr2; + +- tmp_stderr2 = format("%s.tmp.stderr2.%s", cached_obj, tmp_string()); ++ tmp_stderr2 = format("%s.2", tmp_stderr); + if (x_rename(tmp_stderr, tmp_stderr2)) { + cc_log("Failed to rename %s to %s: %s", tmp_stderr, tmp_stderr2, + strerror(errno)); +@@ -808,6 +808,7 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) + } + + path_stderr = format("%s/tmp.cpp_stderr.%s", temp_dir, tmp_string()); ++ create_empty_file(path_stderr); + add_pending_tmp_file(path_stderr); + + time_of_compilation = time(NULL); +@@ -815,6 +816,7 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) + if (!direct_i_file) { + path_stdout = format("%s/%s.tmp.%s.%s", + temp_dir, input_base, tmp_string(), i_extension); ++ create_empty_file(path_stdout); + add_pending_tmp_file(path_stdout); + + /* run cpp on the input file to obtain the .i */ +@@ -838,11 +843,6 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) + can skip the cpp stage and directly form the + correct i_tmpfile */ + path_stdout = input_file; +- if (create_empty_file(path_stderr) != 0) { +- cc_log("Failed to create %s: %s", path_stderr, strerror(errno)); +- stats_update(STATS_ERROR); +- failed(); +- } + status = 0; + } + +diff --git a/ccache.h b/ccache.h +index 2bc7c87..43ef98d 100644 +--- a/ccache.h ++++ b/ccache.h +@@ -130,7 +130,7 @@ size_t file_size(struct stat *st); + int safe_open(const char *fname); + char *x_realpath(const char *path); + char *gnu_getcwd(void); +-int create_empty_file(const char *fname); ++int create_empty_file(char *fname); + const char *get_home_directory(void); + char *get_cwd(); + bool same_executable_name(const char *s1, const char *s2); +diff --git a/manifest.c b/manifest.c +index 7f02ede..47566d5 100644 +--- a/manifest.c ++++ b/manifest.c +@@ -633,7 +633,7 @@ manifest_put(const char *manifest_path, struct file_hash *object_hash, + } + + tmp_file = format("%s.tmp.%s", manifest_path, tmp_string()); +- fd2 = safe_open(tmp_file); ++ fd2 = mkstemp(tmp_file); + if (fd2 == -1) { + cc_log("Failed to open %s", tmp_file); + goto out; +diff --git a/stats.c b/stats.c +index 2111b65..4ed39c2 100644 +--- a/stats.c ++++ b/stats.c +@@ -126,11 +126,18 @@ stats_write(const char *path, struct counters *counters) + size_t i; + char *tmp_file; + FILE *f; ++ int fd; + + tmp_file = format("%s.tmp.%s", path, tmp_string()); +- f = fopen(tmp_file, "wb"); ++ fd = mkstemp(tmp_file); ++ if (fd == -1) { ++ cc_log("Failed to open %s", tmp_file); ++ goto end; ++ } ++ f = fdopen(fd, "wb"); + if (!f) { + cc_log("Failed to open %s", tmp_file); ++ close(fd); + goto end; + } + for (i = 0; i < counters->size; i++) { +@@ -138,6 +145,7 @@ stats_write(const char *path, struct counters *counters) + fatal("Failed to write to %s", tmp_file); + } + } ++ /* This also implicitly closes the fd. */ + fclose(f); + x_rename(tmp_file, path); + +diff --git a/util.c b/util.c +index 3b472de..cc630a6 100644 +--- a/util.c ++++ b/util.c +@@ -195,7 +195,7 @@ copy_file(const char *src, const char *dest, int compress_dest) + struct stat st; + int errnum; + +- tmp_name = format("%s.%s.XXXXXX", dest, tmp_string()); ++ tmp_name = format("%s.%s", dest, tmp_string()); + cc_log("Copying %s to %s via %s (%s)", + src, dest, tmp_name, compress_dest ? "compressed": "uncompressed"); + +@@ -427,7 +427,7 @@ tmp_string(void) + static char *ret; + + if (!ret) { +- ret = format("%s.%u", get_hostname(), (unsigned)getpid()); ++ ret = format("%s.%u.XXXXXX", get_hostname(), (unsigned)getpid()); + } + + return ret; +@@ -884,12 +884,13 @@ gnu_getcwd(void) + + /* create an empty file */ + int +-create_empty_file(const char *fname) ++create_empty_file(char *fname) + { + int fd; + +- fd = open(fname, O_WRONLY|O_CREAT|O_TRUNC|O_EXCL|O_BINARY, 0666); ++ fd = mkstemp(fname); + if (fd == -1) { ++ cc_log("Failed to create %s: %s", fname, strerror(errno)); + return -1; + } + close(fd); +@@ -1134,7 +1135,9 @@ x_unlink(const char *path) + goto out; + } + if (unlink(tmp_name) == -1) { +- result = -1; ++ /* If it was released in a race, that's OK. */ ++ if (errno != ENOENT) ++ result = -1; + } + out: + free(tmp_name); +-- +2.1.2 + diff --git a/dev-util/ccache/files/ccache-3.1.10-size-on-disk.patch b/dev-util/ccache/files/ccache-3.1.10-size-on-disk.patch new file mode 100644 index 000000000000..5e502912bfa2 --- /dev/null +++ b/dev-util/ccache/files/ccache-3.1.10-size-on-disk.patch @@ -0,0 +1,21 @@ +https://bugs.gentoo.org/56178 + +stick to the size of files on disk rather than their byte size. +this func is only used for stats management, so this should be safe. + +--- a/util.c ++++ b/util.c +@@ -845,12 +845,7 @@ file_size(struct stat *st) + #ifdef _WIN32 + return (st->st_size + 1023) & ~1023; + #else +- size_t size = st->st_blocks * 512; +- if ((size_t)st->st_size > size) { +- /* probably a broken stat() call ... */ +- size = (st->st_size + 1023) & ~1023; +- } +- return size; ++ return st->st_blocks * 512; + #endif + } + diff --git a/dev-util/ccache/files/ccache-3.1.7-no-perl.patch b/dev-util/ccache/files/ccache-3.1.7-no-perl.patch new file mode 100644 index 000000000000..5abd15e1aaff --- /dev/null +++ b/dev-util/ccache/files/ccache-3.1.7-no-perl.patch @@ -0,0 +1,15 @@ +avoid weak perl usage in tests + +https://bugs.gentoo.org/421609 + +--- a/test.sh ++++ b/test.sh +@@ -1466,7 +1466,7 @@ + mkdir -p $dir + i=0 + while [ $i -lt 10 ]; do +- perl -e 'print "A" x 4017' >$dir/result$i-4017.o ++ printf '%4017s' '' | tr ' ' 'A' >$dir/result$i-4017.o + touch $dir/result$i-4017.stderr + touch $dir/result$i-4017.d + if [ $i -gt 5 ]; then diff --git a/dev-util/ccache/files/ccache-3.1.9-test-gcc-4.8.patch b/dev-util/ccache/files/ccache-3.1.9-test-gcc-4.8.patch new file mode 100644 index 000000000000..2a28baf02984 --- /dev/null +++ b/dev-util/ccache/files/ccache-3.1.9-test-gcc-4.8.patch @@ -0,0 +1,156 @@ +https://bugs.gentoo.org/461966 + +fix from upstream + +From b5d63f81c1a83fd4c50b769a96a04f581b7db70c Mon Sep 17 00:00:00 2001 +From: Joel Rosdahl <joel@rosdahl.net> +Date: Wed, 20 Mar 2013 22:18:16 +0100 +Subject: [PATCH] Fix test suite failure on GCC 4.8 + +GCC 4.8 includes /usr/include/stdc-predef.h implicitly, and this shows up +in generated .d files. +--- + test.sh | 35 +++++++++++++++++++---------------- + 1 file changed, 19 insertions(+), 16 deletions(-) + +diff --git a/test.sh b/test.sh +index 3ed9069..3e38387 100755 +--- a/test.sh ++++ b/test.sh +@@ -3,7 +3,7 @@ + # A simple test suite for ccache. + # + # Copyright (C) 2002-2007 Andrew Tridgell +-# Copyright (C) 2009-2012 Joel Rosdahl ++# Copyright (C) 2009-2013 Joel Rosdahl + # + # 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 +@@ -562,6 +562,9 @@ int test3; + EOF + backdate test1.h test2.h test3.h + ++ $COMPILER -c -Wp,-MD,expected.d test.c ++ expected_d_content=`cat expected.d` ++ + ################################################################## + # First compilation is a miss. + testname="first compilation" +@@ -677,7 +680,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + rm -f other.d + +@@ -685,7 +688,7 @@ EOF + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + rm -f other.d + +@@ -760,7 +763,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + rm -f test.d + +@@ -768,7 +771,7 @@ EOF + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + ################################################################## + # Check the scenario of running a ccache with direct mode on a cache +@@ -780,7 +783,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + rm -f test.d + +@@ -788,7 +791,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 1 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + rm -f test.d + +@@ -796,7 +799,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 2 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + rm -f test.d + +@@ -804,7 +807,7 @@ EOF + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 2 + checkstat 'cache miss' 1 +- checkfile test.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile test.d "$expected_d_content" + + ################################################################## + # Check that -MF works. +@@ -815,7 +818,7 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + rm -f other.d + +@@ -823,7 +826,7 @@ EOF + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + ################################################################## + # Check that a missing .d file in the cache is handled correctly. +@@ -835,13 +838,13 @@ EOF + checkstat 'cache hit (direct)' 0 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + $CCACHE $COMPILER -c -MD test.c + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 0 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + find $CCACHE_DIR -name '*.d' -exec rm -f '{}' \; + +@@ -849,7 +852,7 @@ EOF + checkstat 'cache hit (direct)' 1 + checkstat 'cache hit (preprocessed)' 1 + checkstat 'cache miss' 1 +- checkfile other.d "test.o: test.c test1.h test3.h test2.h" ++ checkfile other.d "$expected_d_content" + + ################################################################## + # Check that stderr from both the preprocessor and the compiler is emitted +-- +1.8.1.2 + diff --git a/dev-util/ccache/files/ccache-config b/dev-util/ccache/files/ccache-config new file mode 100644 index 000000000000..a7dc4a04a76e --- /dev/null +++ b/dev-util/ccache/files/ccache-config @@ -0,0 +1,100 @@ +#!/bin/sh +# +# ccache-config - helper script for ccache and its ebuild +# +# Copyright 2003-2014 Superlucidity Services, LLC +# This program licensed under the GNU GPL version 2. +# +# This script developed by Zachary T Welch at Superlucidity Services, LLC +# it was cloned from the distcc-config script +# +# Additional features to come; this provides a starting point + +. /etc/init.d/functions.sh 2>/dev/null || { + ebegin() { echo " * $* ..."; } + eend() { + local r=${1:-$?} + [ ${r} -eq 0 ] && echo " [ OK ]" || echo " [ !! ]" + return $r + } +} + +LIBDIR="lib" + +# this should be getopt'd someday (override with CC_QUIET=1) +CC_VERBOSE=1 +unset _CC_QUIET +c_quiet() { + [ -n "${CC_QUIET:-${_CC_QUIET}}" ] || [ -z "${CC_VERBOSE}" ] +} + +c_ebegin() { c_quiet || ebegin "$@" ; } +c_eend() { c_quiet || eend "$@" ; } + +### +# the following functions manage the ccache symlinks +# they allow the user or other scripts (namely gcc-config) to +# automatically update ccache's links when upgrading toolchains +# +cc_path() { + echo ${ROOT%/}/usr/${LIBDIR}/ccache/bin/$1 +} +cc_remove_link() { + local t=$(cc_path "$1") + if [ -L ${t} ]; then + c_ebegin "Removing ${t}" + rm -f "${t}" + c_eend + + # Trim the empty dir if possible. #517242 + t=${t%/*} + if rmdir "${t}" 2>/dev/null; then + rmdir "${t%/*}" 2>/dev/null + fi + : + fi +} +cc_install_link() { + # Search the PATH for the specified compiler + # then create shadow link in /usr/lib/ccache/bin to ccache + + if [ -n "$(type -p ${1})" ]; then + # first be sure any old link is removed + _CC_QUIET=1 + cc_remove_link "${1}" + unset _CC_QUIET + + # then create the new link + local t=$(cc_path "$1") + c_ebegin "Creating ccache shadow link ${t}" + mkdir -p -m 0755 "${t%/*}" && ln -s /usr/bin/ccache "${t}" + c_eend + fi +} +cc_links() { + local a + for a in gcc cc c++ g++ ; do + if [ -n "${2}" ] ; then + # gcc-config doesnt install ${CHOST}-cc, so until + # it does, don't install a ccache symlink for it + [ "${a}" = "cc" ] && continue + a="${2}-${a}" + fi + "cc_${1}_link" "${a}" + done +} + +### +# main routine + +case "${1}" in + --install-links ) + cc_links install "${2}" + ;; + --remove-links ) + cc_links remove "${2}" + ;; + * ) + echo "usage: ${0} {--install-links|--remove-links} [ CHOST ]" + ;; +esac diff --git a/dev-util/ccache/files/ccache-config-2 b/dev-util/ccache/files/ccache-config-2 new file mode 100644 index 000000000000..914f09500a37 --- /dev/null +++ b/dev-util/ccache/files/ccache-config-2 @@ -0,0 +1,97 @@ +#!/bin/sh +# +# ccache-config - helper script for ccache and its ebuild +# +# Copyright 2003-2014 Superlucidity Services, LLC +# Copyright 2013-2014 Gentoo Foundation +# This program licensed under the GNU GPL version 2. +# +# This script developed by Zachary T Welch at Superlucidity Services, LLC +# it was cloned from the distcc-config script +# +# Additional features to come; this provides a starting point + +EPREFIX='' + +. "${EPREFIX}"/etc/init.d/functions.sh 2>/dev/null || { + ebegin() { echo " * $* ..."; } + eend() { + local r=${1:-$?} + [ ${r} -eq 0 ] && echo " [ OK ]" || echo " [ !! ]" + return $r + } +} + +LIBDIR="lib" + +# this should be getopt'd someday (override with CC_QUIET=1) +CC_VERBOSE=1 +unset _CC_QUIET +c_quiet() { + [ -n "${CC_QUIET:-${_CC_QUIET}}" ] || [ -z "${CC_VERBOSE}" ] +} + +c_ebegin() { c_quiet || ebegin "$@" ; } +c_eend() { c_quiet || eend "$@" ; } + +### +# the following functions manage the ccache symlinks +# they allow the user or other scripts (namely gcc-config) to +# automatically update ccache's links when upgrading toolchains +# +cc_path() { + echo ${ROOT%/}${EPREFIX}/usr/${LIBDIR}/ccache/bin/$1 +} +cc_remove_link() { + local t=$(cc_path "$1") + if [ -L ${t} ]; then + c_ebegin "Removing ${t}" + rm -f "${t}" + c_eend + + # Trim the empty dir if possible. #517242 + t=${t%/*} + if rmdir "${t}" 2>/dev/null; then + rmdir "${t%/*}" 2>/dev/null + fi + : + fi +} +cc_install_link() { + # Search the PATH for the specified compiler + # then create shadow link in /usr/lib/ccache/bin to ccache + + if command -v "$1" >/dev/null ; then + # first be sure any old link is removed + _CC_QUIET=1 + cc_remove_link "$1" + unset _CC_QUIET + + # then create the new link + local t=$(cc_path "$1") + c_ebegin "Creating ccache shadow link ${t}" + mkdir -p -m 0755 "${t%/*}" && ln -s "${EPREFIX}"/usr/bin/ccache "${t}" + c_eend + fi +} +cc_links() { + local a + for a in gcc cc c++ g++ icc icpc clang clang++ ; do + "cc_${1}_link" "${2}${2:+-}${a}" + done +} + +### +# main routine + +case $1 in + --install-links ) + cc_links install "$2" + ;; + --remove-links ) + cc_links remove "$2" + ;; + * ) + echo "usage: $0 {--install-links|--remove-links} [ CHOST ]" + ;; +esac diff --git a/dev-util/ccache/files/ccache-config-3 b/dev-util/ccache/files/ccache-config-3 new file mode 100644 index 000000000000..7f604f0016ef --- /dev/null +++ b/dev-util/ccache/files/ccache-config-3 @@ -0,0 +1,97 @@ +#!/bin/sh +# +# ccache-config - helper script for ccache and its ebuild +# +# Copyright 2003-2014 Superlucidity Services, LLC +# Copyright 2013-2014 Gentoo Foundation +# This program licensed under the GNU GPL version 2. +# +# This script developed by Zachary T Welch at Superlucidity Services, LLC +# it was cloned from the distcc-config script +# +# Additional features to come; this provides a starting point + +EPREFIX='' + +. "${EPREFIX}"/lib/gentoo/functions.sh 2>/dev/null || { + ebegin() { echo " * $* ..."; } + eend() { + local r=${1:-$?} + [ ${r} -eq 0 ] && echo " [ OK ]" || echo " [ !! ]" + return $r + } +} + +LIBDIR="lib" + +# this should be getopt'd someday (override with CC_QUIET=1) +CC_VERBOSE=1 +unset _CC_QUIET +c_quiet() { + [ -n "${CC_QUIET:-${_CC_QUIET}}" ] || [ -z "${CC_VERBOSE}" ] +} + +c_ebegin() { c_quiet || ebegin "$@" ; } +c_eend() { c_quiet || eend "$@" ; } + +### +# the following functions manage the ccache symlinks +# they allow the user or other scripts (namely gcc-config) to +# automatically update ccache's links when upgrading toolchains +# +cc_path() { + echo ${ROOT%/}${EPREFIX}/usr/${LIBDIR}/ccache/bin/$1 +} +cc_remove_link() { + local t=$(cc_path "$1") + if [ -L ${t} ]; then + c_ebegin "Removing ${t}" + rm -f "${t}" + c_eend + + # Trim the empty dir if possible. #517242 + t=${t%/*} + if rmdir "${t}" 2>/dev/null; then + rmdir "${t%/*}" 2>/dev/null + fi + : + fi +} +cc_install_link() { + # Search the PATH for the specified compiler + # then create shadow link in /usr/lib/ccache/bin to ccache + + if command -v "$1" >/dev/null ; then + # first be sure any old link is removed + _CC_QUIET=1 + cc_remove_link "$1" + unset _CC_QUIET + + # then create the new link + local t=$(cc_path "$1") + c_ebegin "Creating ccache shadow link ${t}" + mkdir -p -m 0755 "${t%/*}" && ln -s "${EPREFIX}"/usr/bin/ccache "${t}" + c_eend + fi +} +cc_links() { + local a + for a in gcc cc c++ g++ icc icpc clang clang++ ; do + "cc_${1}_link" "${2}${2:+-}${a}" + done +} + +### +# main routine + +case $1 in + --install-links ) + cc_links install "$2" + ;; + --remove-links ) + cc_links remove "$2" + ;; + * ) + echo "usage: $0 {--install-links|--remove-links} [ CHOST ]" + ;; +esac |