Gentoo Archives: gentoo-commits

From: "Bernard Cafarelli (voyageur)" <voyageur@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-devel/llvm: metadata.xml ChangeLog llvm-2.6-r2.ebuild
Date: Mon, 26 Apr 2010 09:38:23
Message-Id: 20100426093819.D9DDF2C04C@corvid.gentoo.org
1 voyageur 10/04/26 09:38:19
2
3 Modified: metadata.xml ChangeLog
4 Added: llvm-2.6-r2.ebuild
5 Log:
6 Add udis86 support, thanks to chithanh in bug #317151
7 (Portage version: 2.2_rc67/cvs/Linux x86_64)
8
9 Revision Changes Path
10 1.3 sys-devel/llvm/metadata.xml
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/metadata.xml?rev=1.3&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/metadata.xml?rev=1.3&content-type=text/plain
14 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/metadata.xml?r1=1.2&r2=1.3
15
16 Index: metadata.xml
17 ===================================================================
18 RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/metadata.xml,v
19 retrieving revision 1.2
20 retrieving revision 1.3
21 diff -u -r1.2 -r1.3
22 --- metadata.xml 26 Oct 2009 09:58:41 -0000 1.2
23 +++ metadata.xml 26 Apr 2010 09:38:19 -0000 1.3
24 @@ -15,5 +15,6 @@
25 <flag name='alltargets'>Build all host targets (default: host only)</flag>
26 <flag name='libffi'>Add support to call arbitrary external (natively compiled) functions via <pkg>dev-libs/libffi</pkg></flag>
27 <flag name='llvm-gcc'>Build LLVM with <pkg>sys-devel/llvm-gcc</pkg></flag>
28 + <flag name='udis86'>Enable support for <pkg>dev-libs/udis86</pkg> disassembler library</flag>
29 </use>
30 </pkgmetadata>
31
32
33
34 1.10 sys-devel/llvm/ChangeLog
35
36 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.10&view=markup
37 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/ChangeLog?rev=1.10&content-type=text/plain
38 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/ChangeLog?r1=1.9&r2=1.10
39
40 Index: ChangeLog
41 ===================================================================
42 RCS file: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v
43 retrieving revision 1.9
44 retrieving revision 1.10
45 diff -u -r1.9 -r1.10
46 --- ChangeLog 18 Mar 2010 19:38:22 -0000 1.9
47 +++ ChangeLog 26 Apr 2010 09:38:19 -0000 1.10
48 @@ -1,6 +1,12 @@
49 # ChangeLog for sys-devel/llvm
50 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
51 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.9 2010/03/18 19:38:22 voyageur Exp $
52 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.10 2010/04/26 09:38:19 voyageur Exp $
53 +
54 +*llvm-2.6-r2 (26 Apr 2010)
55 +
56 + 26 Apr 2010; Bernard Cafarelli <voyageur@g.o> +llvm-2.6-r2.ebuild,
57 + metadata.xml:
58 + Add udis86 support, thanks to chithanh in bug #317151
59
60 *llvm-2.6-r1 (18 Mar 2010)
61
62
63
64
65 1.1 sys-devel/llvm/llvm-2.6-r2.ebuild
66
67 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/llvm-2.6-r2.ebuild?rev=1.1&view=markup
68 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/llvm/llvm-2.6-r2.ebuild?rev=1.1&content-type=text/plain
69
70 Index: llvm-2.6-r2.ebuild
71 ===================================================================
72 # Copyright 1999-2010 Gentoo Foundation
73 # Distributed under the terms of the GNU General Public License v2
74 # $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-2.6-r2.ebuild,v 1.1 2010/04/26 09:38:19 voyageur Exp $
75
76 EAPI="2"
77 inherit eutils multilib toolchain-funcs
78
79 DESCRIPTION="Low Level Virtual Machine"
80 HOMEPAGE="http://llvm.org/"
81 SRC_URI="http://llvm.org/releases/${PV}/${P}.tar.gz"
82
83 LICENSE="UoI-NCSA"
84 SLOT="0"
85 KEYWORDS="~amd64 ~ppc ~x86"
86 IUSE="alltargets debug +libffi llvm-gcc ocaml test udis86"
87
88 DEPEND="dev-lang/perl
89 >=sys-devel/make-3.79
90 >=sys-devel/flex-2.5.4
91 >=sys-devel/bison-1.28
92 !~sys-devel/bison-1.85
93 !~sys-devel/bison-1.875
94 >=sys-devel/gcc-3.0
95 >=sys-devel/binutils-2.18
96 libffi? ( virtual/libffi )
97 llvm-gcc? ( sys-devel/llvm-gcc )
98 ocaml? ( dev-lang/ocaml )
99 test? ( dev-util/dejagnu )
100 udis86? ( dev-libs/udis86 )"
101 RDEPEND="dev-lang/perl"
102
103 S=${WORKDIR}/${PN}-${PV/_pre*}
104
105 pkg_setup() {
106 # need to check if the active compiler is ok
107
108 broken_gcc=" 3.2.2 3.2.3 3.3.2 4.1.1 "
109 broken_gcc_x86=" 3.4.0 3.4.2 "
110 broken_gcc_amd64=" 3.4.6 "
111
112 gcc_vers=$(gcc-fullversion)
113
114 if [[ ${broken_gcc} == *" ${version} "* ]] ; then
115 elog "Your version of gcc is known to miscompile llvm."
116 elog "Check http://www.llvm.org/docs/GettingStarted.html for"
117 elog "possible solutions."
118 die "Your currently active version of gcc is known to miscompile llvm"
119 fi
120
121 if [[ ${CHOST} == i*86-* && ${broken_gcc_x86} == *" ${version} "* ]] ; then
122 elog "Your version of gcc is known to miscompile llvm on x86"
123 elog "architectures. Check"
124 elog "http://www.llvm.org/docs/GettingStarted.html for possible"
125 elog "solutions."
126 die "Your currently active version of gcc is known to miscompile llvm"
127 fi
128
129 if [[ ${CHOST} == x86_64-* && ${broken_gcc_amd64} == *" ${version} "* ]];
130 then
131 elog "Your version of gcc is known to miscompile llvm in amd64"
132 elog "architectures. Check"
133 elog "http://www.llvm.org/docs/GettingStarted.html for possible"
134 elog "solutions."
135 die "Your currently active version of gcc is known to miscompile llvm"
136 fi
137 }
138
139 src_prepare() {
140 # unfortunately ./configure won't listen to --mandir and the-like, so take
141 # care of this.
142 einfo "Fixing install dirs"
143 sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(DESTDIR)$(PROJ_prefix)/share/doc/'${PF}, \
144 -e 's,^PROJ_etcdir.*,PROJ_etcdir := $(DESTDIR)/etc/llvm,' \
145 -e 's,^PROJ_libdir.*,PROJ_libdir := $(DESTDIR)/usr/'$(get_libdir), \
146 -i Makefile.config.in || die "sed failed"
147
148 # this points by default to the build directory
149 einfo "Fixing gccld and gccas"
150 sed -e 's,^TOOLDIR.*,TOOLDIR=/usr/bin,' \
151 -i tools/gccld/gccld.sh tools/gccas/gccas.sh || die "sed failed"
152
153 einfo "Fixing rpath"
154 sed -e 's/\$(RPATH) -Wl,\$(\(ToolDir\|LibDir\))//g' -i Makefile.rules || die "sed failed"
155
156 # Fix docs installation
157 sed -e '/^NO_INSTALL_MANS/s/$/$(DST_MAN_DIR)tblgen.1 $(DST_MAN_DIR)llvmgcc.1 $(DST_MAN_DIR)llvmgxx.1/' \
158 -i docs/CommandGuide/Makefile || die "manpages sed failed"
159 epatch "${FILESDIR}"/${PN}-2.6-nodoctargz.patch
160 epatch "${FILESDIR}"/${PN}-2.6-commandguide-nops.patch
161
162 # Buggy test, http://llvm.org/bugs/show_bug.cgi?id=5047
163 rm test/DebugInfo/2009-01-15-dbg_declare.ll
164
165 # Do not force -O3 -fomit-frame-pointer on users
166 epatch "${FILESDIR}"/${PN}-2.6-cflags.patch
167 }
168
169 src_configure() {
170 local CONF_FLAGS=""
171
172 if use debug; then
173 CONF_FLAGS="${CONF_FLAGS} --disable-optimized"
174 einfo "Note: Compiling LLVM in debug mode will create huge and slow binaries"
175 # ...and you probably shouldn't use tmpfs, unless it can hold 900MB
176 else
177 CONF_FLAGS="${CONF_FLAGS} \
178 --enable-optimized \
179 --disable-assertions \
180 --disable-expensive-checks"
181 fi
182
183 if use alltargets; then
184 CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
185 else
186 CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
187 fi
188
189 if use amd64; then
190 CONF_FLAGS="${CONF_FLAGS} --enable-pic"
191 fi
192
193 # things would be built differently depending on whether llvm-gcc is
194 # used or not.
195 local LLVM_GCC_DIR=/dev/null
196 local LLVM_GCC_DRIVER=nope ; local LLVM_GPP_DRIVER=nope
197 if use llvm-gcc ; then
198 if has_version sys-devel/llvm-gcc; then
199 LLVM_GCC_DIR=$(ls -d ${ROOT}/usr/$(get_libdir)/llvm-gcc* 2> /dev/null)
200 LLVM_GCC_DRIVER=$(find ${LLVM_GCC_DIR} -name 'llvm*-gcc' 2> /dev/null)
201 if [[ -z ${LLVM_GCC_DRIVER} ]] ; then
202 die "failed to find installed llvm-gcc, LLVM_GCC_DIR=${LLVM_GCC_DIR}"
203 fi
204 einfo "Using $LLVM_GCC_DRIVER"
205 LLVM_GPP_DRIVER=${LLVM_GCC_DRIVER/%-gcc/-g++}
206 else
207 eerror "llvm-gcc USE flag enabled, but sys-devel/llvm-gcc was not found"
208 eerror "Building with standard gcc, re-merge this package after installing"
209 eerror "llvm-gcc to build with it"
210 eerror "This is normal behavior on first LLVM merge"
211 fi
212 fi
213
214 CONF_FLAGS="${CONF_FLAGS} \
215 --with-llvmgccdir=${LLVM_GCC_DIR} \
216 --with-llvmgcc=${LLVM_GCC_DRIVER} \
217 --with-llvmgxx=${LLVM_GPP_DRIVER}"
218
219 if use ocaml; then
220 CONF_FLAGS="${CONF_FLAGS} --enable-bindings=ocaml"
221 else
222 CONF_FLAGS="${CONF_FLAGS} --enable-bindings=none"
223 fi
224
225 CONF_FLAGS="${CONF_FLAGS} $(use_enable libffi)"
226 CONF_FLAGS="${CONF_FLAGS} $(use_with udis86)"
227 econf ${CONF_FLAGS} || die "econf failed"
228 }
229
230 src_compile() {
231 emake VERBOSE=1 KEEP_SYMBOLS=1 || die "emake failed"
232 }
233
234 src_install() {
235 emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
236 }