Gentoo Archives: gentoo-dev

From: hasufell <hasufell@g.o>
To: gentoo-dev@l.g.o
Cc: mgorny@g.o, clang@g.o, multilib@g.o
Subject: [gentoo-dev] Re: [gentoo-commits] gentoo-x86 commit in sys-devel/llvm: llvm-3.4.ebuild llvm-9999.ebuild ChangeLog
Date: Wed, 02 Apr 2014 23:33:21
Message-Id: 533C9E2C.4060001@gentoo.org
1 Maybe it is just me, but I take the chance and responsibility.
2
3 This commit caused /usr/bin/clang being 32bit on my amd64 system. I
4 compiled it 3 times.
5
6 I have reverted the commit for the live ebuild, reverted it for 3.4-r1
7 and hardmasked 3.4 to ensure that people who unmasked 3.4 on stable arch
8 will get the fix as well.
9
10 The breakage is not immediate, depending on what you compiled. I noticed
11 it only after a chain of 3-4 packages that failed to link at some point.
12
13
14
15 Michal Gorny (mgorny):
16 > mgorny 14/04/01 17:24:02
17 >
18 > Modified: llvm-3.4.ebuild llvm-9999.ebuild ChangeLog
19 > Log:
20 > 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.
21 >
22 > (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key EFB4464E!)
23 >
24 > Revision Changes Path
25 > 1.10 sys-devel/llvm/llvm-3.4.ebuild
26 >
27 > file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?rev=1.10&view=markup
28 > plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?rev=1.10&content-type=text/plain
29 > diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild?r1=1.9&r2=1.10
30 >
31 > Index: llvm-3.4.ebuild
32 > ===================================================================
33 > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v
34 > retrieving revision 1.9
35 > retrieving revision 1.10
36 > diff -u -r1.9 -r1.10
37 > --- llvm-3.4.ebuild 31 Mar 2014 21:21:24 -0000 1.9
38 > +++ llvm-3.4.ebuild 1 Apr 2014 17:24:02 -0000 1.10
39 > @@ -1,13 +1,13 @@
40 > # Copyright 1999-2014 Gentoo Foundation
41 > # Distributed under the terms of the GNU General Public License v2
42 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v 1.9 2014/03/31 21:21:24 mgorny Exp $
43 > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.4.ebuild,v 1.10 2014/04/01 17:24:02 mgorny Exp $
44 >
45 > EAPI=5
46 >
47 > PYTHON_COMPAT=( python{2_6,2_7} pypy pypy2_0 )
48 >
49 > -inherit cmake-utils eutils flag-o-matic multilib multilib-minimal \
50 > - python-r1 toolchain-funcs pax-utils check-reqs
51 > +inherit cmake-utils eutils flag-o-matic multibuild multilib \
52 > + multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs
53 >
54 > DESCRIPTION="Low Level Virtual Machine"
55 > HOMEPAGE="http://llvm.org/"
56 > @@ -69,6 +69,10 @@
57 > # so why did it call itself ninja in the first place?
58 > CMAKE_MAKEFILE_GENERATOR=emake
59 >
60 > +MULTILIB_CHOST_TOOLS=(
61 > + /usr/bin/llvm-config
62 > +)
63 > +
64 > pkg_pretend() {
65 > # in megs
66 > # !clang !debug !multitarget -O2 400
67 > @@ -387,25 +391,15 @@
68 > local MAKEARGS
69 > set_makeargs
70 >
71 > - emake "${MAKEARGS[@]}" DESTDIR="${D}" install
72 > + local root=${D}/_${ABI}
73 >
74 > - # Preserve ABI-variant of llvm-config.
75 > - dodir /tmp
76 > - mv "${ED}"/usr/bin/llvm-config "${ED}"/tmp/"${CHOST}"-llvm-config || die
77 > + emake "${MAKEARGS[@]}" DESTDIR="${root}" install
78 > + multibuild_merge_root "${root}" "${D}"
79 >
80 > if ! multilib_build_binaries; then
81 > - # Drop all the executables since LLVM doesn't like to
82 > - # clobber when installing.
83 > - rm -r "${ED}"/usr/bin || die
84 > -
85 > # Backwards compat, will be happily removed someday.
86 > - dosym "${CHOST}"-llvm-config /tmp/llvm-config.${ABI}
87 > + dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI}
88 > else
89 > - # Move files back.
90 > - mv "${ED}"/tmp/*llvm-config* "${ED}"/usr/bin || die
91 > - # Create a symlink for host's llvm-config.
92 > - dosym "${CHOST}"-llvm-config /usr/bin/llvm-config
93 > -
94 > # Install docs.
95 > if use doc; then
96 > doman "${S}"/docs/_build/man/*.1
97 >
98 >
99 >
100 > 1.80 sys-devel/llvm/llvm-9999.ebuild
101 >
102 > file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?rev=1.80&view=markup
103 > plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?rev=1.80&content-type=text/plain
104 > diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild?r1=1.79&r2=1.80
105 >
106 > Index: llvm-9999.ebuild
107 > ===================================================================
108 > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v
109 > retrieving revision 1.79
110 > retrieving revision 1.80
111 > diff -u -r1.79 -r1.80
112 > --- llvm-9999.ebuild 11 Mar 2014 18:40:17 -0000 1.79
113 > +++ llvm-9999.ebuild 1 Apr 2014 17:24:02 -0000 1.80
114 > @@ -1,13 +1,13 @@
115 > # Copyright 1999-2014 Gentoo Foundation
116 > # Distributed under the terms of the GNU General Public License v2
117 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v 1.79 2014/03/11 18:40:17 mgorny Exp $
118 > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-9999.ebuild,v 1.80 2014/04/01 17:24:02 mgorny Exp $
119 >
120 > EAPI=5
121 >
122 > PYTHON_COMPAT=( python{2_5,2_6,2_7} pypy{1_9,2_0} )
123 >
124 > -inherit cmake-utils eutils flag-o-matic git-r3 multilib multilib-minimal \
125 > - python-r1 toolchain-funcs pax-utils check-reqs
126 > +inherit cmake-utils eutils flag-o-matic git-r3 multibuild multilib \
127 > + multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs
128 >
129 > DESCRIPTION="Low Level Virtual Machine"
130 > HOMEPAGE="http://llvm.org/"
131 > @@ -65,6 +65,10 @@
132 > # so why did it call itself ninja in the first place?
133 > CMAKE_MAKEFILE_GENERATOR=emake
134 >
135 > +MULTILIB_CHOST_TOOLS=(
136 > + /usr/bin/llvm-config
137 > +)
138 > +
139 > pkg_pretend() {
140 > # in megs
141 > # !clang !debug !multitarget -O2 400
142 > @@ -371,25 +375,15 @@
143 > local MAKEARGS
144 > set_makeargs
145 >
146 > - emake "${MAKEARGS[@]}" DESTDIR="${D}" install
147 > + local root=${D}/_${ABI}
148 >
149 > - # Preserve ABI-variant of llvm-config.
150 > - dodir /tmp
151 > - mv "${ED}"/usr/bin/llvm-config "${ED}"/tmp/"${CHOST}"-llvm-config || die
152 > + emake "${MAKEARGS[@]}" DESTDIR="${root}" install
153 > + multibuild_merge_root "${root}" "${D}"
154 >
155 > if ! multilib_build_binaries; then
156 > - # Drop all the executables since LLVM doesn't like to
157 > - # clobber when installing.
158 > - rm -r "${ED}"/usr/bin || die
159 > -
160 > # Backwards compat, will be happily removed someday.
161 > - dosym "${CHOST}"-llvm-config /tmp/llvm-config.${ABI}
162 > + dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI}
163 > else
164 > - # Move files back.
165 > - mv "${ED}"/tmp/*llvm-config* "${ED}"/usr/bin || die
166 > - # Create a symlink for host's llvm-config.
167 > - dosym "${CHOST}"-llvm-config /usr/bin/llvm-config
168 > -
169 > # Install docs.
170 > doman "${S}"/docs/_build/man/*.1
171 > use clang && doman "${T}"/clang.1
172 >
173 >
174 >
175 > 1.184 sys-devel/llvm/ChangeLog
176 >
177 > file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.184&view=markup
178 > plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.184&content-type=text/plain
179 > diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-devel/llvm/ChangeLog?r1=1.183&r2=1.184
180 >
181 > Index: ChangeLog
182 > ===================================================================
183 > RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v
184 > retrieving revision 1.183
185 > retrieving revision 1.184
186 > diff -u -r1.183 -r1.184
187 > --- ChangeLog 31 Mar 2014 21:21:24 -0000 1.183
188 > +++ ChangeLog 1 Apr 2014 17:24:02 -0000 1.184
189 > @@ -1,6 +1,12 @@
190 > # ChangeLog for sys-devel/llvm
191 > # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
192 > -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.183 2014/03/31 21:21:24 mgorny Exp $
193 > +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.184 2014/04/01 17:24:02 mgorny Exp $
194 > +
195 > + 01 Apr 2014; Michał Górny <mgorny@g.o> llvm-3.4.ebuild,
196 > + llvm-9999.ebuild:
197 > + Use alternate root install instead of dumb removal to work-around non-clobber
198 > + install target. Use MULTILIB_CHOST_TOOLS rather than inline code to handle
199 > + llvm-config, bug #506398.
200 >
201 > 31 Mar 2014; Michał Górny <mgorny@g.o> llvm-3.3-r1.ebuild,
202 > llvm-3.3-r3.ebuild, llvm-3.4.ebuild:
203 >
204 >
205 >
206 >