diff options
author | Friedrich Oslage <bluebird@gentoo.org> | 2008-06-12 18:32:36 +0000 |
---|---|---|
committer | Friedrich Oslage <bluebird@gentoo.org> | 2008-06-12 18:32:36 +0000 |
commit | 24a87574963d25ad186c6483b5da728e2c65b12f (patch) | |
tree | 06fefe831ad84f9b98a637154d77e316dc9ee848 /sys-devel | |
parent | Fix xulrunner depends, bug #217160 (diff) | |
download | gentoo-2-24a87574963d25ad186c6483b5da728e2c65b12f.tar.gz gentoo-2-24a87574963d25ad186c6483b5da728e2c65b12f.tar.bz2 gentoo-2-24a87574963d25ad186c6483b5da728e2c65b12f.zip |
fix bug #223159(always run jobs locally when using -march=native) and bug #183586(lib, lib64 issue on amd64 when running icecc --build-native)
(Portage version: 2.1.4.4)
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/icecream/ChangeLog | 11 | ||||
-rw-r--r-- | sys-devel/icecream/files/0.9.0-create-env-multilib.patch | 30 | ||||
-rw-r--r-- | sys-devel/icecream/files/0.9.0-run-march-native-locally.patch | 16 | ||||
-rw-r--r-- | sys-devel/icecream/icecream-0.9.0-r1.ebuild | 127 |
4 files changed, 183 insertions, 1 deletions
diff --git a/sys-devel/icecream/ChangeLog b/sys-devel/icecream/ChangeLog index 06e1b1beefe0..d9093f8c27e9 100644 --- a/sys-devel/icecream/ChangeLog +++ b/sys-devel/icecream/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for sys-devel/icecream # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/icecream/ChangeLog,v 1.15 2008/06/11 18:44:06 bluebird Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/icecream/ChangeLog,v 1.16 2008/06/12 18:32:36 bluebird Exp $ + +*icecream-0.9.0-r1 (12 Jun 2008) + + 12 Jun 2008; Friedrich Oslage <bluebird@gentoo.org> + +files/0.9.0-create-env-multilib.patch, + +files/0.9.0-run-march-native-locally.patch, +icecream-0.9.0-r1.ebuild: + Add patch to always run jobs containing -march=native locally, bug + #223159 + Fix creation of environment on amd64, bug #183586 *icecream-0.9.0 (11 Jun 2008) diff --git a/sys-devel/icecream/files/0.9.0-create-env-multilib.patch b/sys-devel/icecream/files/0.9.0-create-env-multilib.patch new file mode 100644 index 000000000000..643b8790545c --- /dev/null +++ b/sys-devel/icecream/files/0.9.0-create-env-multilib.patch @@ -0,0 +1,30 @@ +diff -urN icecream.orig/icecc-create-env icecream/icecc-create-env +--- icecream.orig/client/icecc-create-env ++++ icecream/client/icecc-create-env +@@ -11,6 +11,16 @@ + is_darwin=1 + fi + ++lib_is_symlink=0 ++if test -L /lib; then ++ lib_is_symlink=1 ++ real_libdir="`readlink /lib`" ++ if [[ "`readlink /usr/lib`" != "$real_libdir" ]]; then ++ echo "Hmmm, /lib is a symlink to $real_libdir but /usr/lib is not...this doesn't look sane!" ++ exit 1 ++ fi ++fi ++ + is_contained () + { + case " $target_files " in +@@ -55,6 +65,9 @@ + # and prefer that on the assumption that it is a more generic one. + local baselib=`echo "$lib" | sed 's,\(/[^/]*\)/.*\(/[^/]*\)$,\1\2,'` + test -f "$baselib" && lib=$baselib ++ if test "$lib_is_symlink" = 1; then ++ lib="${lib/\/lib\///$real_libdir/}" ++ fi + add_file "$lib" + done + fi diff --git a/sys-devel/icecream/files/0.9.0-run-march-native-locally.patch b/sys-devel/icecream/files/0.9.0-run-march-native-locally.patch new file mode 100644 index 000000000000..fe89637b61cc --- /dev/null +++ b/sys-devel/icecream/files/0.9.0-run-march-native-locally.patch @@ -0,0 +1,16 @@ +diff -urN icecream.orig/client/arg.cpp icecream/client/arg.cpp +--- icecream.orig/client/arg.cpp ++++ icecream/client/arg.cpp +@@ -182,6 +182,12 @@ + #endif + always_local = true; + args.append(a, Arg_Local); ++ } else if (!strcmp(a, "-march=native") || !strcmp(a, "-mcpu=native") || !strcmp(a, "-mtune=native")) { ++#if CLIENT_DEBUG ++ log_info() << "-{march,mpcu,mtune}=native optimizes for local machine; must be local" << endl; ++#endif ++ always_local = true; ++ args.append(a, Arg_Local); + } else if (!strcmp(a, "-c")) { + seen_c = true; + } else if (str_startswith("-o", a)) { diff --git a/sys-devel/icecream/icecream-0.9.0-r1.ebuild b/sys-devel/icecream/icecream-0.9.0-r1.ebuild new file mode 100644 index 000000000000..3f6ba515a6d3 --- /dev/null +++ b/sys-devel/icecream/icecream-0.9.0-r1.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/icecream/icecream-0.9.0-r1.ebuild,v 1.1 2008/06/12 18:32:36 bluebird Exp $ + +inherit autotools eutils flag-o-matic + +MY_P="icecc-${PV}" + +DESCRIPTION="icecc is a program for distributed compiling of C(++) code across several machines; based on distcc" +HOMEPAGE="http://en.opensuse.org/Icecream" +SRC_URI="ftp://ftp.suse.com/pub/projects/${PN}/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="doc" + +RDEPEND="virtual/libc" +DEPEND="${RDEPEND} + doc? ( =kde-base/kdelibs-3.5* )" + +S="${WORKDIR}/${MY_P}" + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/${PV}-dont-create-symlinks.patch" + epatch "${FILESDIR}/${PV}-conf.d-verbosity.patch" + epatch "${FILESDIR}/${PV}-run-march-native-locally.patch" + epatch "${FILESDIR}/${PV}-create-env-multilib.patch" + + use amd64 && append-flags -fPIC -DPIC + + eautoreconf +} + +src_compile() { + econf + emake || die "compiling icecc failed" + + # compile manpages...yeah, we need meinproc, ergo kdelibs for this :( + if use doc; then + cd doc + for docfile in *.docbook; do + outputfile="${docfile/man-/}" + outputfile="${outputfile/.docbook/}" + + meinproc \ + --stylesheet /usr/kde/3.5/share/apps/ksgmltools2/customization/kde-man.xsl \ + "${docfile}" && \ + mv manpage.troff "${outputfile}" || \ + die "compiling manpages failed" + done + fi +} + +src_install() { + emake DESTDIR="${D}" install || die "install failed" + + dosbin "${FILESDIR}"/icecream-config || "install failed" + + newconfd suse/sysconfig.icecream icecream || die "install failed" + doinitd "${FILESDIR}"/icecream || die "install failed" + + diropts -m0755 + keepdir /usr/lib/icecc/bin + + if use doc; then + cd doc + doman icecc.1 iceccd.1 icecream.7 scheduler.1 || die "doman failed" + fi +} + +pkg_postinst() { + enewgroup icecream || die "Problem creating icecream group" + + #are we doing bootstrap with has no useradd? + if [ -x /usr/sbin/useradd ]; then + enewuser icecream -1 -1 /var/cache/icecream icecream || die "Problem adding icecream user" + else + ewarn "You do not have useradd (bootstrap) from shadow so I didn't" + ewarn "install the icecream user. Note that attempting to start the daemon" + ewarn "will fail. Please install shadow and re-emerge icecream." + ebeep 2 + fi + + if [[ "${ROOT}" = "/" ]] ; then + einfo "Scanning for compiler front-ends..." + /usr/sbin/icecream-config --install-links + /usr/sbin/icecream-config --install-links "${CHOST}" + else + ewarn "Install is incomplete; you must run the following command:" + ewarn " # icecream-config --install-links \"${CHOST}\"" + ewarn "after booting or chrooting to \"${ROOT}\" to complete installation." + fi + + elog + elog "If you have compiled binutils/gcc/glibc with processor-specific flags" + elog "(as normal using Gentoo), there is a greater chance that your compiler" + elog "won't work on other machines. The best would be to build gcc, glibc and" + elog "binutils without those flags and then copy the needed files into your" + elog "tarball for distribution to other machines. This tarball can be created" + elog "by running /usr/bin/icecc --build-native, and used by setting" + elog "ICECC_VERSION in /etc/conf.d/icecream" + elog ' ICECC_VERSION=<filename_of_archive_containing_your_environment>' + elog + elog "To use icecream with portage add the following line to /etc/make.conf" + elog ' PREROOTPATH=/usr/lib/icecc/bin' + elog + elog "To use icecream with normal make use (e.g. in /etc/profile)" + elog ' PATH=/usr/lib/icecc/bin:$PATH' + elog + elog "N.B. To use icecream with ccache, the ccache PATH should come first:" + elog ' PATH=/usr/lib/ccache/bin:/usr/lib/icecc/bin:$PATH' + elog + elog "Don't forget to open the following ports in your firewall(s):" + elog " TCP/10245 on the daemon computers (required)" + elog " TCP/8765 for the the scheduler computer (required)" + elog " TCP/8766 for the telnet interface to the scheduler (optional)" + elog " UDP/8765 for broadcast to find the scheduler (optional)" + elog + elog "Further usage instructions: http://www.opensuse.org/icecream" + elog + elog "The icecream monitor is no longer included in this package." + elog "See http://bugs.gentoo.org/show_bug.cgi?id=139432 for more info." +} |