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:
> 
> 
> 
> 


Reply via email to