diff --git a/dev-util/ccache/Manifest b/dev-util/ccache/Manifest
index 34df0a5..67fe791 100644
--- a/dev-util/ccache/Manifest
+++ b/dev-util/ccache/Manifest
@@ -1 +1,2 @@
 DIST ccache-3.1.10.tar.xz 240932 SHA256 88439f43d3b426ab435afdf69a808511bada4de3a8a9527426bc4fbf6cb02857 SHA512 6a1c77161ec97b556a8c58592e2d6bba8e3d43cc039de3ebaa2a80fb92ae54bb7bad58eb011f52b750e29aadb0ed208220fb67d30deaf6c64aa4cfab31937fed WHIRLPOOL 5d527d986ba14a6312f82df277d7de47757bb43b7bcaf9eb6cbdbf337af862726f1f85ff7c352d0ad54344d98a8d8dc538e43de05976cdd29710b72917b42106
+DIST ccache-3.2.4.tar.xz 302548 SHA256 1c3da93f654e78a4ac71a54b0f63b19bc0fef9aa5522f4ebb9c201d4361cea5d SHA512 d048b70804c81dece97f3ba511b3c109ec0d14e7dca69bc68faeeb61a4a7b5639c03e3e5ad7dad4e42b4bd198d7a7fffa4e3b7ef99590dfd4df0805db6c25db7 WHIRLPOOL 3dc1de9d1cab8769b3776e48746a1967536e7a9d01e4eb23e1ddbaaf2858c16eba170a185312bfdb0a58951c77cd6c79ff30c7cf6ab366ade64c2b6997df7703
diff --git a/dev-util/ccache/ccache-3.1.10-r1.ebuild b/dev-util/ccache/ccache-3.2.4.ebuild
similarity index 73%
rename from dev-util/ccache/ccache-3.1.10-r1.ebuild
rename to dev-util/ccache/ccache-3.2.4.ebuild
index b1636b7..ce2e88b 100644
--- a/dev-util/ccache/ccache-3.1.10-r1.ebuild
+++ b/dev-util/ccache/ccache-3.2.4.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/ccache/ccache-3.1.10-r1.ebuild,v 1.1 2014/11/01 08:11:46 vapier Exp $
+# $Id$
 
-EAPI="4"
+EAPI=5
 
 inherit eutils readme.gentoo
 
@@ -15,24 +15,23 @@
 KEYWORDS="*"
 IUSE=""
 
-RDEPEND="sys-libs/zlib"
-DEPEND="${RDEPEND}
-	app-arch/xz-utils"
+DEPEND="app-arch/xz-utils
+	sys-libs/zlib"
+RDEPEND="${DEPEND}
+	sys-apps/gentoo-functions"
 
 src_prepare() {
 	# make sure we always use system zlib
-	rm -rf zlib
-	epatch "${FILESDIR}"/${PN}-3.1.7-no-perl.patch #421609
+	rm -rf zlib || die
 	epatch "${FILESDIR}"/${PN}-3.1.10-size-on-disk.patch #456178
-	epatch "${FILESDIR}"/${PN}-3.1.10-real-temp-files.patch
 	sed \
 		-e "/^EPREFIX=/s:'':'${EPREFIX}':" \
-		"${FILESDIR}"/ccache-config-2 > ccache-config || die
+		"${FILESDIR}"/ccache-config-3 > ccache-config || die
 }
 
 src_install() {
+	DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.txt )
 	default
-	dodoc AUTHORS.txt MANUAL.txt NEWS.txt README.txt
 
 	dobin ccache-config
 
@@ -62,8 +61,8 @@
 	"${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
 
 	# nuke broken symlinks from previous versions that shouldn't exist
-	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc
-	rm -rf "${EROOT}"/usr/lib/ccache.backup
+	rm -f "${EROOT}"/usr/lib/ccache/bin/${CHOST}-cc || die
+	rm -rf "${EROOT}"/usr/lib/ccache.backup || die
 
 	readme.gentoo_print_elog
 }
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
deleted file mode 100644
index 45e6541..0000000
--- a/dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-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.7-no-perl.patch b/dev-util/ccache/files/ccache-3.1.7-no-perl.patch
deleted file mode 100644
index 5abd15e..0000000
--- a/dev-util/ccache/files/ccache-3.1.7-no-perl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-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-config-2 b/dev-util/ccache/files/ccache-config-3
similarity index 96%
rename from dev-util/ccache/files/ccache-config-2
rename to dev-util/ccache/files/ccache-config-3
index 914f095..7f604f0 100644
--- a/dev-util/ccache/files/ccache-config-2
+++ b/dev-util/ccache/files/ccache-config-3
@@ -13,7 +13,7 @@
 
 EPREFIX=''
 
-. "${EPREFIX}"/etc/init.d/functions.sh 2>/dev/null || {
+. "${EPREFIX}"/lib/gentoo/functions.sh 2>/dev/null || {
 	ebegin() { echo " * $* ..."; }
 	eend() {
 		local r=${1:-$?}
