summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-util/ccache
downloadgentoo-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')
-rw-r--r--dev-util/ccache/Manifest5
-rw-r--r--dev-util/ccache/ccache-2.4-r9.ebuild83
-rw-r--r--dev-util/ccache/ccache-3.1.10-r1.ebuild69
-rw-r--r--dev-util/ccache/ccache-3.1.9-r4.ebuild71
-rw-r--r--dev-util/ccache/ccache-3.2.1-r1.ebuild69
-rw-r--r--dev-util/ccache/ccache-3.2.2.ebuild69
-rw-r--r--dev-util/ccache/files/ccache-2.4-profile.patch27
-rw-r--r--dev-util/ccache/files/ccache-2.4-respectflags.patch13
-rw-r--r--dev-util/ccache/files/ccache-2.4-utimes.patch105
-rw-r--r--dev-util/ccache/files/ccache-2.4-xrealloc.patch35
-rw-r--r--dev-util/ccache/files/ccache-3.1.10-real-temp-files.patch185
-rw-r--r--dev-util/ccache/files/ccache-3.1.10-size-on-disk.patch21
-rw-r--r--dev-util/ccache/files/ccache-3.1.7-no-perl.patch15
-rw-r--r--dev-util/ccache/files/ccache-3.1.9-test-gcc-4.8.patch156
-rw-r--r--dev-util/ccache/files/ccache-config100
-rw-r--r--dev-util/ccache/files/ccache-config-297
-rw-r--r--dev-util/ccache/files/ccache-config-397
-rw-r--r--dev-util/ccache/metadata.xml12
18 files changed, 1229 insertions, 0 deletions
diff --git a/dev-util/ccache/Manifest b/dev-util/ccache/Manifest
new file mode 100644
index 000000000000..a3ada3a55654
--- /dev/null
+++ b/dev-util/ccache/Manifest
@@ -0,0 +1,5 @@
+DIST ccache-2.4.tar.gz 86363 SHA256 435f862ca5168c346f5aa9e242174bbf19a5abcaeecfceeac2f194558827aaa0 SHA512 6ab05f74eba5c0a7472a3d53cfa6c24e45f421f2c773776f713a46121eda21213deb34fcef214d4f8d2e756cd375637e4639a9bdfeb6b9a44455c5bcca246b19 WHIRLPOOL eb308222713d17f52f88ac97a5c63add454b350d60259d1d2238e3b54f1e80ad8c8700e0e045b40aa5be64b1db54846a86da600436778a64d2270efff7763380
+DIST ccache-3.1.10.tar.xz 240932 SHA256 88439f43d3b426ab435afdf69a808511bada4de3a8a9527426bc4fbf6cb02857 SHA512 6a1c77161ec97b556a8c58592e2d6bba8e3d43cc039de3ebaa2a80fb92ae54bb7bad58eb011f52b750e29aadb0ed208220fb67d30deaf6c64aa4cfab31937fed WHIRLPOOL 5d527d986ba14a6312f82df277d7de47757bb43b7bcaf9eb6cbdbf337af862726f1f85ff7c352d0ad54344d98a8d8dc538e43de05976cdd29710b72917b42106
+DIST ccache-3.1.9.tar.xz 238988 SHA256 4981fdf3ad851de400d94083a0d03f115ce9ce8062c3fd7a291630294b0006c4 SHA512 b73f5816bb87c2d94200473510ea42a304c5a2c5e5f14720c513574ce3eb983423c5849a786a89df70cbb09852d9ec2761ad37a820a767d7350e1a3243148ac0 WHIRLPOOL 61ef671aae68516ecfaee88a50b8f442968a7ab24595fd7dfc652ab27de80834d90510c62cfcc75dd88e1f3832989633f518ebe5984149c16d5ab9848cff05fc
+DIST ccache-3.2.1.tar.xz 297868 SHA256 872af34e1d2cef18694001d29db7f167d644e7602ca32cd6c74b28d81458bd9d SHA512 ef0e56f2d1775fb0f401f48cca2a65eb415f4e2ccf0bcfd769045a9c08c3c2977db4edea12e06629f4cb5406cde23cd3ee0910e2e4d5eff9376227fa23c78a7a WHIRLPOOL f3d07cf142258d588a1c6cb9ba77d31d7b568cd18ae131ed3526595c809352b0fa30ae61b0bfcbfde3ea8d959c545119662c25af0cd03c97517be361315e1ffe
+DIST ccache-3.2.2.tar.xz 300808 SHA256 4f0d99699f24d198494addca0f41a93b0150cdfd01491f15a5d7eb02c7c2a0ca SHA512 fc438f3b00baa41076eee3e5783ea53a208eb348343e587c6f729f7e98462cd20c720fe323fe08f271bc14dae48f7828cef769882f028f3772992989b87b075d WHIRLPOOL 095a125e869910644622b98b7720a01ccc235fbeb8c84ec52017fe52f82fe7b8122584c3e5fa4d39c1344e9c062517a1edb46c3e64fe649e845ed5c1fb455c5a
diff --git a/dev-util/ccache/ccache-2.4-r9.ebuild b/dev-util/ccache/ccache-2.4-r9.ebuild
new file mode 100644
index 000000000000..6aeeaf5ddd70
--- /dev/null
+++ b/dev-util/ccache/ccache-2.4-r9.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+WANT_AUTOMAKE=none # not using automake
+
+inherit eutils autotools multilib
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="http://samba.org/ftp/ccache/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
+IUSE=""
+
+# Note: this version is designed to be auto-detected and used if
+# you happen to have Portage 2.0.X+ installed.
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/ccache-2.4-profile.patch
+ epatch "${FILESDIR}"/ccache-2.4-respectflags.patch
+ epatch "${FILESDIR}"/ccache-2.4-utimes.patch
+ epatch "${FILESDIR}"/ccache-2.4-xrealloc.patch #338137
+ eautoconf
+}
+
+do_links() {
+ insinto /usr/$(get_libdir)/ccache/bin
+ for a in ${CHOST}-{gcc,g++,c++} gcc c++ g++; do
+ dosym /usr/bin/ccache /usr/$(get_libdir)/ccache/bin/${a}
+ done
+}
+
+src_install() {
+ dobin ccache || die
+ doman ccache.1
+ dodoc README
+ dohtml web/*.html
+
+ diropts -m0755
+ dodir /usr/$(get_libdir)/ccache/bin
+ keepdir /usr/$(get_libdir)/ccache/bin
+
+ dobin "${FILESDIR}"/ccache-config || die
+
+ diropts -m0700
+ dodir /root/.ccache
+ keepdir /root/.ccache
+}
+
+pkg_preinst() {
+ # Do NOT duplicate this in your ebuilds or phear of the wrath!!!
+ if [[ ${ROOT} = "/" ]] ; then
+ einfo "Scanning for compiler front-ends..."
+ do_links
+ else
+ ewarn "Install is incomplete; you must run the following commands:"
+ ewarn " # ccache-config --install-links"
+ ewarn " # ccache-config --install-links ${CHOST}"
+ ewarn "after booting or chrooting to ${ROOT} to complete installation."
+ fi
+}
+
+pkg_postinst() {
+ # nuke broken symlinks from previous versions that shouldn't exist
+ for i in cc ${CHOST}-cc ; do
+ [[ -L "${ROOT}/usr/$(get_libdir)/ccache/bin/${i}" ]] && \
+ rm -rf "${ROOT}/usr/$(get_libdir)/ccache/bin/${i}"
+ done
+ [[ -d "${ROOT}/usr/$(get_libdir)/ccache.backup" ]] && \
+ rm -fr "${ROOT}/usr/$(get_libdir)/ccache.backup"
+
+ elog "To use ccache with **non-Portage** C compiling, add"
+ elog "/usr/$(get_libdir)/ccache/bin to the beginning of your path, before /usr/bin."
+ elog "Portage 2.0.46-r11+ will automatically take advantage of ccache with"
+ elog "no additional steps. If this is your first install of ccache, type"
+ elog "something like this to set a maximum cache size of 2GB:"
+ elog "# ccache -M 2G"
+}
diff --git a/dev-util/ccache/ccache-3.1.10-r1.ebuild b/dev-util/ccache/ccache-3.1.10-r1.ebuild
new file mode 100644
index 000000000000..8deb6f737c5d
--- /dev/null
+++ b/dev-util/ccache/ccache-3.1.10-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils readme.gentoo
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="http://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}
+ app-arch/xz-utils"
+
+src_prepare() {
+ # make sure we always use system zlib
+ rm -rf zlib
+ epatch "${FILESDIR}"/${PN}-3.1.7-no-perl.patch #421609
+ 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
+}
+
+src_install() {
+ default
+ dodoc AUTHORS.txt MANUAL.txt NEWS.txt README.txt
+
+ dobin ccache-config
+
+ DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before ${EPREFIX}usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps. If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+ readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+ if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ "${EROOT}"/usr/bin/ccache-config --remove-links
+ "${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+ fi
+}
+
+pkg_postinst() {
+ "${EROOT}"/usr/bin/ccache-config --install-links
+ "${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
+
+ readme.gentoo_print_elog
+}
diff --git a/dev-util/ccache/ccache-3.1.9-r4.ebuild b/dev-util/ccache/ccache-3.1.9-r4.ebuild
new file mode 100644
index 000000000000..4b7b2d56d936
--- /dev/null
+++ b/dev-util/ccache/ccache-3.1.9-r4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit multilib eutils readme.gentoo
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="http://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+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
+ epatch "${FILESDIR}"/${P}-test-gcc-4.8.patch #461966
+ sed \
+ -e "/^LIBDIR=/s:lib:$(get_libdir):" \
+ -e "/^EPREFIX=/s:'':'${EPREFIX}':" \
+ "${FILESDIR}"/ccache-config-3 > ccache-config || die
+}
+
+src_install() {
+ default
+ dodoc AUTHORS.txt MANUAL.txt NEWS.txt README.txt
+
+ dobin ccache-config
+
+ DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/$(get_libdir)/ccache/bin to the beginning of your path, before ${EPREFIX}usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps. If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+ readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+ if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ "${EROOT}"/usr/bin/ccache-config --remove-links
+ "${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+ fi
+}
+
+pkg_postinst() {
+ "${EROOT}"/usr/bin/ccache-config --install-links
+ "${EROOT}"/usr/bin/ccache-config --install-links ${CHOST}
+
+ # nuke broken symlinks from previous versions that shouldn't exist
+ rm -f "${EROOT}/usr/$(get_libdir)/ccache/bin/${CHOST}-cc"
+ [[ -d "${EROOT}/usr/$(get_libdir)/ccache.backup" ]] && \
+ rm -rf "${EROOT}/usr/$(get_libdir)/ccache.backup"
+
+ readme.gentoo_print_elog
+}
diff --git a/dev-util/ccache/ccache-3.2.1-r1.ebuild b/dev-util/ccache/ccache-3.2.1-r1.ebuild
new file mode 100644
index 000000000000..dfd1b11d8c26
--- /dev/null
+++ b/dev-util/ccache/ccache-3.2.1-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils readme.gentoo
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="http://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+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 || die
+ epatch "${FILESDIR}"/${PN}-3.1.7-no-perl.patch #421609
+ epatch "${FILESDIR}"/${PN}-3.1.10-size-on-disk.patch #456178
+ sed \
+ -e "/^EPREFIX=/s:'':'${EPREFIX}':" \
+ "${FILESDIR}"/ccache-config-3 > ccache-config || die
+}
+
+src_install() {
+ DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.txt )
+ default
+
+ dobin ccache-config
+
+ DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before ${EPREFIX}usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps. If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+ readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+ if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ "${EROOT}"/usr/bin/ccache-config --remove-links
+ "${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+ fi
+}
+
+pkg_postinst() {
+ "${EROOT}"/usr/bin/ccache-config --install-links
+ "${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 || die
+ rm -rf "${EROOT}"/usr/lib/ccache.backup || die
+
+ readme.gentoo_print_elog
+}
diff --git a/dev-util/ccache/ccache-3.2.2.ebuild b/dev-util/ccache/ccache-3.2.2.ebuild
new file mode 100644
index 000000000000..49b51795b713
--- /dev/null
+++ b/dev-util/ccache/ccache-3.2.2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils readme.gentoo
+
+DESCRIPTION="fast compiler cache"
+HOMEPAGE="http://ccache.samba.org/"
+SRC_URI="http://samba.org/ftp/ccache/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+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 || die
+ epatch "${FILESDIR}"/${PN}-3.1.7-no-perl.patch #421609
+ epatch "${FILESDIR}"/${PN}-3.1.10-size-on-disk.patch #456178
+ sed \
+ -e "/^EPREFIX=/s:'':'${EPREFIX}':" \
+ "${FILESDIR}"/ccache-config-3 > ccache-config || die
+}
+
+src_install() {
+ DOCS=( AUTHORS.txt MANUAL.txt NEWS.txt README.txt )
+ default
+
+ dobin ccache-config
+
+ DOC_CONTENTS="
+To use ccache with **non-Portage** C compiling, add
+${EPREFIX}/usr/lib/ccache/bin to the beginning of your path, before ${EPREFIX}usr/bin.
+Portage 2.0.46-r11+ will automatically take advantage of ccache with
+no additional steps. If this is your first install of ccache, type
+something like this to set a maximum cache size of 2GB:\\n
+# ccache -M 2G\\n
+If you are upgrading from an older version than 3.x you should clear all of your caches like so:\\n
+# CCACHE_DIR='${CCACHE_DIR:-${PORTAGE_TMPDIR}/ccache}' ccache -C\\n
+ccache now supports sys-devel/clang and dev-lang/icc, too!"
+
+ readme.gentoo_create_doc
+}
+
+pkg_prerm() {
+ if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ "${EROOT}"/usr/bin/ccache-config --remove-links
+ "${EROOT}"/usr/bin/ccache-config --remove-links ${CHOST}
+ fi
+}
+
+pkg_postinst() {
+ "${EROOT}"/usr/bin/ccache-config --install-links
+ "${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 || die
+ rm -rf "${EROOT}"/usr/lib/ccache.backup || die
+
+ readme.gentoo_print_elog
+}
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
diff --git a/dev-util/ccache/metadata.xml b/dev-util/ccache/metadata.xml
new file mode 100644
index 000000000000..a1113ba3300a
--- /dev/null
+++ b/dev-util/ccache/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>toolchain</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ ccache acts as a caching pre-processor to C/C++ compilers, improving
+ compilation time when recompiling previously compiled source.
+ </longdescription>
+</pkgmetadata>