diff options
author | 2008-09-30 06:39:50 +0000 | |
---|---|---|
committer | 2008-09-30 06:39:50 +0000 | |
commit | 4493cfcc9077ee699c685ae92e3eaafb772ba32a (patch) | |
tree | f123825c75621ea03af752ba5a874930b9dd242d | |
parent | Version bump (diff) | |
download | gentoo-2-4493cfcc9077ee699c685ae92e3eaafb772ba32a.tar.gz gentoo-2-4493cfcc9077ee699c685ae92e3eaafb772ba32a.tar.bz2 gentoo-2-4493cfcc9077ee699c685ae92e3eaafb772ba32a.zip |
Exclude any use of -fprofile* from ccache storage, per bug #204810.
(Portage version: 2.2_rc11/cvs/Linux 2.6.27-rc1-10246-gca5de40 x86_64)
-rw-r--r-- | dev-util/ccache/ChangeLog | 8 | ||||
-rw-r--r-- | dev-util/ccache/ccache-2.4-r8.ebuild | 80 | ||||
-rw-r--r-- | dev-util/ccache/files/ccache-2.4-profile.patch | 27 |
3 files changed, 114 insertions, 1 deletions
diff --git a/dev-util/ccache/ChangeLog b/dev-util/ccache/ChangeLog index 461f2ad679df..b4c844125829 100644 --- a/dev-util/ccache/ChangeLog +++ b/dev-util/ccache/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-util/ccache # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-util/ccache/ChangeLog,v 1.64 2008/01/12 21:09:48 grobian Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-util/ccache/ChangeLog,v 1.65 2008/09/30 06:39:50 robbat2 Exp $ + +*ccache-2.4-r8 (30 Sep 2008) + + 30 Sep 2008; Robin H. Johnson <robbat2@gentoo.org> + +files/ccache-2.4-profile.patch, +ccache-2.4-r8.ebuild: + Exclude any use of -fprofile* from ccache storage, per bug #204810. 12 Jan 2008; Fabian Groffen <grobian@gentoo.org> ccache-2.4-r6.ebuild, ccache-2.4-r7.ebuild: diff --git a/dev-util/ccache/ccache-2.4-r8.ebuild b/dev-util/ccache/ccache-2.4-r8.ebuild new file mode 100644 index 000000000000..72aa868556e1 --- /dev/null +++ b/dev-util/ccache/ccache-2.4-r8.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-util/ccache/ccache-2.4-r8.ebuild,v 1.1 2008/09/30 06:39:50 robbat2 Exp $ + +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 + 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/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) { |