diff options
author | Ryan Hill <dirtyepic@gentoo.org> | 2008-05-26 01:34:38 +0000 |
---|---|---|
committer | Ryan Hill <dirtyepic@gentoo.org> | 2008-05-26 01:34:38 +0000 |
commit | 6a04d0278afc9c06e482e0130c9ac6775dd1d168 (patch) | |
tree | 9b056d0b3bf8c64b37e57ae3680ab098013281e5 /sys-devel | |
parent | Add custom-cpuopts use flag; add dxr2, dxr3 use flag, bug 223587 (diff) | |
download | gentoo-2-6a04d0278afc9c06e482e0130c9ac6775dd1d168.tar.gz gentoo-2-6a04d0278afc9c06e482e0130c9ac6775dd1d168.tar.bz2 gentoo-2-6a04d0278afc9c06e482e0130c9ac6775dd1d168.zip |
Add patch to always run jobs containing -march=native locally. Bug
#223159.
(Portage version: 2.2_pre7/cvs/Linux 2.6.25-gentoo-r3 Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz)
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/distcc/ChangeLog | 9 | ||||
-rw-r--r-- | sys-devel/distcc/distcc-2.18.3-r13.ebuild | 187 | ||||
-rw-r--r-- | sys-devel/distcc/files/distcc-march-native.patch | 16 |
3 files changed, 211 insertions, 1 deletions
diff --git a/sys-devel/distcc/ChangeLog b/sys-devel/distcc/ChangeLog index 3e44171b7130..669cf9d636c6 100644 --- a/sys-devel/distcc/ChangeLog +++ b/sys-devel/distcc/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-devel/distcc # Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.172 2008/04/25 12:15:18 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.173 2008/05/26 01:34:38 dirtyepic Exp $ + +*distcc-2.18.3-r13 (26 May 2008) + + 26 May 2008; Ryan Hill <dirtyepic@gentoo.org> + +files/distcc-march-native.patch, +distcc-2.18.3-r13.ebuild: + Add patch to always run jobs containing -march=native locally. Bug + #223159. 25 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> distcc-2.18.3-r12.ebuild: diff --git a/sys-devel/distcc/distcc-2.18.3-r13.ebuild b/sys-devel/distcc/distcc-2.18.3-r13.ebuild new file mode 100644 index 000000000000..ccacfcbc7b0b --- /dev/null +++ b/sys-devel/distcc/distcc-2.18.3-r13.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/distcc-2.18.3-r13.ebuild,v 1.1 2008/05/26 01:34:38 dirtyepic Exp $ + +# If you change this in any way please email lisa@gentoo.org and make an +# entry in the ChangeLog (this means you spanky :P). (2004-04-11) Lisa Seelye + +inherit autotools eutils flag-o-matic toolchain-funcs fdo-mime + +PATCHLEVEL="2.18-r1" + +DESCRIPTION="a program to distribute compilation of C code across several machines on a network" +HOMEPAGE="http://distcc.samba.org/" +SRC_URI="http://distcc.samba.org/ftp/distcc/distcc-${PV}.tar.bz2 + mirror://gentoo/${PN}-2.18-avahi.patch.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="avahi gnome gtk selinux ipv6" + +COMMON_DEP="dev-libs/popt + avahi? ( >=net-dns/avahi-0.6.5 )" +DEPEND="|| ( >=sys-devel/gcc-config-1.3.1 app-admin/eselect-compiler ) + userland_GNU? ( sys-apps/shadow ) + dev-util/pkgconfig + || ( dev-util/unifdef sys-freebsd/freebsd-ubin ) + >=sys-devel/autoconf-2.60 + ${COMMON_DEP}" +RDEPEND=" + gnome? ( + >=x11-libs/gtk+-2.0.0 + >=gnome-base/libgnome-2.0.0 + >=gnome-base/libgnomeui-2.0.0.0 + >=gnome-base/libglade-2.0.0 + x11-libs/pango + >=gnome-base/gconf-2.0.0 + ) + gtk? ( + >=x11-libs/gtk+-2.0.0 + x11-libs/pango + ) + selinux? ( sec-policy/selinux-distcc ) + ${COMMON_DEP}" + +pkg_setup() { + if use avahi && ! built_with_use net-dns/avahi dbus; then + eerror "${CATEGORY}/${PN} needs net-dns/avahi built with the dbus use" + eerror "flag for avahi support." + die "net-dns/avahi not built with dbus support" + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # -Wl,--as-needed to close bug #128605 + epatch "${FILESDIR}/distcc-as-needed.patch" + + # See bug #75420 for more multilib stuff + epatch "${FILESDIR}/distcc-gentoo-multilib-r1.patch" + einfo "Please report to bug #75420 success or failure of this patch." + + epatch "${FILESDIR}/distcc-freedesktop.patch" + epatch "${FILESDIR}/distcc-create-dir.patch" + epatch "${FILESDIR}"/${PN}-march-native.patch + + rm -v popt/*.c || die + if use avahi; then + epatch "${DISTDIR}/${PN}-2.18-avahi.patch.bz2" + epatch "${FILESDIR}/${PN}-avahi-configure.patch" + fi + + eautoreconf +} + +src_compile() { + local myconf="--without-included-popt --docdir=/usr/share/doc/${PF}" + + #More legacy stuff? + [ `gcc-major-version` -eq 2 ] && filter-lfs-flags + + if use ipv6; then + ewarn "To use IPV6 you must have IPV6 compiled into your kernel" + ewarn "either via a module or compiled code" + ewarn "You can recompile without ipv6 with: USE='-ipv6' emerge distcc" + myconf=" ${myconf} --enable-rfc2553 " + epause 5 + fi + econf ${myconf} $(use_enable avahi) $(use_with gnome) $(use_with gtk) || die "econf ${myconf} failed" + emake || die "emake failed" +} + +handle_avahi() { + local avahi="-UAVAHI" + use avahi && avahi="-DAVAHI" + unifdef ${avahi} "${1}" > "${2}" +} + +src_install() { + make DESTDIR="${D%/}" install + + dodoc "${S}/survey.txt" + + exeinto /usr/bin + doexe "${FILESDIR}/distcc-config" + + handle_avahi "${FILESDIR}/${PATCHLEVEL}/init" "${T}/init" + newinitd "${T}/init" distccd || die + + handle_avahi "${FILESDIR}/${PATCHLEVEL}/conf" "${T}/conf" + newconfd "${T}/conf" distccd || die + + # create and keep the symlink dir + dodir /usr/lib/distcc/bin + keepdir /usr/lib/distcc/bin + + # create the distccd pid directory + dodir /var/run/distccd + keepdir /var/run/distccd + + if use gnome || use gtk; then + einfo "Renaming /usr/bin/distccmon-gnome to /usr/bin/distccmon-gui" + einfo "This is to have a little sensability in naming schemes between distccmon programs" + mv "${D}/usr/bin/distccmon-gnome" "${D}/usr/bin/distccmon-gui" || die + dosym /usr/bin/distccmon-gui /usr/bin/distccmon-gnome + fi + +} + +pkg_preinst() { + # non-/ installs don't require us to do anything here + [ "${ROOT}" != "/" ] && return 0 + + # stop daemon since script is being updated + [ -n "$(pidof distccd)" -a -x /etc/init.d/distccd ] && \ + /etc/init.d/distccd stop +} + +pkg_postinst() { + fdo-mime_desktop_database_update + + #are we doing bootstrap with has no useradd? + if [[ ${CHOST} != *-*-gnu && ${CHOST} != *-linux* ]] || [ -x /usr/sbin/useradd ]; then + enewuser distcc 240 + else + ewarn "You do not have useradd (bootstrap) from shadow so I didn't" + ewarn "install the distcc user. Note that attempting to start the daemon" + ewarn "will fail. Please install shadow and re-emerge distcc." + ebeep 2 + fi + + # By now everyone should be using the right envfile + + if [ "${ROOT}" = "/" ]; then + einfo "Installing links to native compilers..." + /usr/bin/distcc-config --install + else + # distcc-config can *almost* handle ROOT installs itself + # but for now, but user must finsh things off + ewarn "*** Installation is not complete ***" + ewarn "You must run the following as root:" + ewarn " /usr/bin/distcc-config --install" + ewarn "after booting or chrooting into ${ROOT}" + fi + einfo "Setting permissions on ${ROOT}var/run/distccd" + chown -R distcc:daemon "${ROOT}var/run/distccd" + echo "" + + einfo "Tips on using distcc with Gentoo can be found at" + einfo "http://www.gentoo.org/doc/en/distcc.xml" + echo "" + einfo "To use the distccmon programs with Gentoo you should use this command:" + einfo " DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text N" + use gnome || use gtk && einfo "Or: DISTCC_DIR=/var/tmp/portage/.distcc distccmon-gnome" + + ewarn "***SECURITY NOTICE***" + ewarn "If you are upgrading distcc please make sure to run etc-update to" + ewarn "update your /etc/conf.d/distccd and /etc/init.d/distccd files with" + ewarn "added security precautions (the --listen and --allow directives)" + ebeep 5 +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} diff --git a/sys-devel/distcc/files/distcc-march-native.patch b/sys-devel/distcc/files/distcc-march-native.patch new file mode 100644 index 000000000000..a5c9bb2e4da1 --- /dev/null +++ b/sys-devel/distcc/files/distcc-march-native.patch @@ -0,0 +1,16 @@ +diff -ur distcc-2.18.3/src/arg.c distcc-modified/src/arg.c +--- distcc-2.18.3/src/arg.c 2004-11-30 13:13:53.000000000 +0100 ++++ distcc-modified/src/arg.c 2008-02-05 17:56:58.000000000 +0100 +@@ -171,6 +171,12 @@ + to distribute it even if we could. */ + rs_trace("%s implies -E (maybe) and must be local", a); + return EXIT_DISTCC_FAILED; ++ } else if (!strcmp(a, "-march=native")) { ++ rs_trace("-march=native generates code for local machine; must be local"); ++ return EXIT_DISTCC_FAILED; ++ } else if (!strcmp(a, "-mtune=native")) { ++ rs_trace("-mtune=native optimizes for local machine; must be local"); ++ return EXIT_DISTCC_FAILED; + } else if (str_startswith("-Wa,", a)) { + /* Look for assembler options that would produce output + * files and must be local. |