Maybe it is just me, but I take the chance and responsibility. This commit caused /usr/bin/clang being 32bit on my amd64 system. I compiled it 3 times.
I have reverted the commit for the live ebuild, reverted it for 3.4-r1 and hardmasked 3.4 to ensure that people who unmasked 3.4 on stable arch will get the fix as well. The breakage is not immediate, depending on what you compiled. I noticed it only after a chain of 3-4 packages that failed to link at some point. Michal Gorny (mgorny): > mgorny 14/04/01 17:24:02 > > Modified: llvm-3.4.ebuild llvm-9999.ebuild ChangeLog > Log: > Use alternate root install instead of dumb removal to work-around > non-clobber install target. Use MULTILIB_CHOST_TOOLS rather than inline code > to handle llvm-config, bug #506398. > > (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key > EFB4464E!) > > Revision Changes Path > 1.10 sys-devel/llvm/llvm-3.4.ebuild > > file : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?rev=1.10&view=markup > plain: > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?rev=1.10&content-type=text/plain > diff : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?r1=1.9&r2=1.10 > > Index: llvm-3.4.ebuild > =================================================================== > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v > retrieving revision 1.9 > retrieving revision 1.10 > diff -u -r1.9 -r1.10 > --- llvm-3.4.ebuild 31 Mar 2014 21:21:24 -0000 1.9 > +++ llvm-3.4.ebuild 1 Apr 2014 17:24:02 -0000 1.10 > @@ -1,13 +1,13 @@ > # Copyright 1999-2014 Gentoo Foundation > # Distributed under the terms of the GNU General Public License v2 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v 1.9 > 2014/03/31 21:21:24 mgorny Exp $ > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v 1.10 > 2014/04/01 17:24:02 mgorny Exp $ > > EAPI=5 > > PYTHON_COMPAT=( python{2_6,2_7} pypy pypy2_0 ) > > -inherit cmake-utils eutils flag-o-matic multilib multilib-minimal \ > - python-r1 toolchain-funcs pax-utils check-reqs > +inherit cmake-utils eutils flag-o-matic multibuild multilib \ > + multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs > > DESCRIPTION="Low Level Virtual Machine" > HOMEPAGE="http://llvm.org/" > @@ -69,6 +69,10 @@ > # so why did it call itself ninja in the first place? > CMAKE_MAKEFILE_GENERATOR=emake > > +MULTILIB_CHOST_TOOLS=( > + /usr/bin/llvm-config > +) > + > pkg_pretend() { > # in megs > # !clang !debug !multitarget -O2 400 > @@ -387,25 +391,15 @@ > local MAKEARGS > set_makeargs > > - emake "${MAKEARGS[@]}" DESTDIR="${D}" install > + local root=${D}/_${ABI} > > - # Preserve ABI-variant of llvm-config. > - dodir /tmp > - mv "${ED}"/usr/bin/llvm-config "${ED}"/tmp/"${CHOST}"-llvm-config || die > + emake "${MAKEARGS[@]}" DESTDIR="${root}" install > + multibuild_merge_root "${root}" "${D}" > > if ! multilib_build_binaries; then > - # Drop all the executables since LLVM doesn't like to > - # clobber when installing. > - rm -r "${ED}"/usr/bin || die > - > # Backwards compat, will be happily removed someday. > - dosym "${CHOST}"-llvm-config /tmp/llvm-config.${ABI} > + dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI} > else > - # Move files back. > - mv "${ED}"/tmp/*llvm-config* "${ED}"/usr/bin || die > - # Create a symlink for host's llvm-config. > - dosym "${CHOST}"-llvm-config /usr/bin/llvm-config > - > # Install docs. > if use doc; then > doman "${S}"/docs/_build/man/*.1 > > > > 1.80 sys-devel/llvm/llvm-9999.ebuild > > file : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?rev=1.80&view=markup > plain: > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?rev=1.80&content-type=text/plain > diff : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?r1=1.79&r2=1.80 > > Index: llvm-9999.ebuild > =================================================================== > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v > retrieving revision 1.79 > retrieving revision 1.80 > diff -u -r1.79 -r1.80 > --- llvm-9999.ebuild 11 Mar 2014 18:40:17 -0000 1.79 > +++ llvm-9999.ebuild 1 Apr 2014 17:24:02 -0000 1.80 > @@ -1,13 +1,13 @@ > # Copyright 1999-2014 Gentoo Foundation > # Distributed under the terms of the GNU General Public License v2 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v 1.79 > 2014/03/11 18:40:17 mgorny Exp $ > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v 1.80 > 2014/04/01 17:24:02 mgorny Exp $ > > EAPI=5 > > PYTHON_COMPAT=( python{2_5,2_6,2_7} pypy{1_9,2_0} ) > > -inherit cmake-utils eutils flag-o-matic git-r3 multilib multilib-minimal \ > - python-r1 toolchain-funcs pax-utils check-reqs > +inherit cmake-utils eutils flag-o-matic git-r3 multibuild multilib \ > + multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs > > DESCRIPTION="Low Level Virtual Machine" > HOMEPAGE="http://llvm.org/" > @@ -65,6 +65,10 @@ > # so why did it call itself ninja in the first place? > CMAKE_MAKEFILE_GENERATOR=emake > > +MULTILIB_CHOST_TOOLS=( > + /usr/bin/llvm-config > +) > + > pkg_pretend() { > # in megs > # !clang !debug !multitarget -O2 400 > @@ -371,25 +375,15 @@ > local MAKEARGS > set_makeargs > > - emake "${MAKEARGS[@]}" DESTDIR="${D}" install > + local root=${D}/_${ABI} > > - # Preserve ABI-variant of llvm-config. > - dodir /tmp > - mv "${ED}"/usr/bin/llvm-config "${ED}"/tmp/"${CHOST}"-llvm-config || die > + emake "${MAKEARGS[@]}" DESTDIR="${root}" install > + multibuild_merge_root "${root}" "${D}" > > if ! multilib_build_binaries; then > - # Drop all the executables since LLVM doesn't like to > - # clobber when installing. > - rm -r "${ED}"/usr/bin || die > - > # Backwards compat, will be happily removed someday. > - dosym "${CHOST}"-llvm-config /tmp/llvm-config.${ABI} > + dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI} > else > - # Move files back. > - mv "${ED}"/tmp/*llvm-config* "${ED}"/usr/bin || die > - # Create a symlink for host's llvm-config. > - dosym "${CHOST}"-llvm-config /usr/bin/llvm-config > - > # Install docs. > doman "${S}"/docs/_build/man/*.1 > use clang && doman "${T}"/clang.1 > > > > 1.184 sys-devel/llvm/ChangeLog > > file : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.184&view=markup > plain: > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.184&content-type=text/plain > diff : > http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?r1=1.183&r2=1.184 > > Index: ChangeLog > =================================================================== > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v > retrieving revision 1.183 > retrieving revision 1.184 > diff -u -r1.183 -r1.184 > --- ChangeLog 31 Mar 2014 21:21:24 -0000 1.183 > +++ ChangeLog 1 Apr 2014 17:24:02 -0000 1.184 > @@ -1,6 +1,12 @@ > # ChangeLog for sys-devel/llvm > # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.183 > 2014/03/31 21:21:24 mgorny Exp $ > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.184 > 2014/04/01 17:24:02 mgorny Exp $ > + > + 01 Apr 2014; Michał Górny <[email protected]> llvm-3.4.ebuild, > + llvm-9999.ebuild: > + Use alternate root install instead of dumb removal to work-around > non-clobber > + install target. Use MULTILIB_CHOST_TOOLS rather than inline code to handle > + llvm-config, bug #506398. > > 31 Mar 2014; Michał Górny <[email protected]> llvm-3.3-r1.ebuild, > llvm-3.3-r3.ebuild, llvm-3.4.ebuild: > > > >
