commit: 0257fe53aebd6c2a5cd3a37e222222c25ad9fa52
Author: Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 7 15:15:34 2015 +0000
Commit: Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Mon Sep 7 15:18:20 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0257fe53
sys-devel/llvm: fix bugs #559588, #559828, #559850
Warn about needed library for OpenMP support in clang, thanks Jeremi Piotrowski
<jeremi.piotrowski <AT> gmail.com> in #559588
Install utilities like FileCheck, thanks William Throwe <wtt6 <AT> cornell.edu>
in #559828
Adjust multilib dependency on libxml2, thanks Alexander Stein <alexanders83
<AT> web.de> in #559850
Package-Manager: portage-2.2.20.1
.../{llvm-9999.ebuild => llvm-3.7.0-r1.ebuild} | 72 +++++++++++-----------
sys-devel/llvm/llvm-9999.ebuild | 10 ++-
2 files changed, 44 insertions(+), 38 deletions(-)
diff --git a/sys-devel/llvm/llvm-9999.ebuild
b/sys-devel/llvm/llvm-3.7.0-r1.ebuild
similarity index 88%
copy from sys-devel/llvm/llvm-9999.ebuild
copy to sys-devel/llvm/llvm-3.7.0-r1.ebuild
index 325a857..c1ef867 100644
--- a/sys-devel/llvm/llvm-9999.ebuild
+++ b/sys-devel/llvm/llvm-3.7.0-r1.ebuild
@@ -7,19 +7,22 @@ EAPI=5
: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs cmake-utils eutils flag-o-matic git-r3 multilib \
+inherit check-reqs cmake-utils eutils flag-o-matic multilib \
multilib-minimal python-r1 toolchain-funcs pax-utils
DESCRIPTION="Low Level Virtual Machine"
HOMEPAGE="http://llvm.org/"
-SRC_URI=""
-EGIT_REPO_URI="http://llvm.org/git/llvm.git
- https://github.com/llvm-mirror/llvm.git"
+SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
+ clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
+ http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
+
http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
+ lldb? ( http://llvm.org/releases/${PV}/lldb-${PV}.src.tar.xz )
+ !doc? ( http://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2
)"
LICENSE="UoI-NCSA"
SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="clang debug +doc gold libedit +libffi lldb multitarget ncurses ocaml
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd
~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos
~x86-macos"
+IUSE="clang debug doc gold libedit +libffi lldb multitarget ncurses ocaml
python +static-analyzer test xml video_cards_radeon kernel_Darwin"
COMMON_DEPEND="
@@ -30,7 +33,7 @@ COMMON_DEPEND="
dev-lang/perl:*
${PYTHON_DEPS}
)
- xml? ( dev-libs/libxml2:2= )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
)
gold? ( >=sys-devel/binutils-2.22:*[cxx] )
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
@@ -70,6 +73,8 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
lldb? ( clang )
test? ( || ( $(python_gen_useflags 'python*') ) )"
+S=${WORKDIR}/${P/_}.src
+
pkg_pretend() {
# in megs
# !clang !debug !multitarget -O2 400
@@ -123,40 +128,28 @@ pkg_setup() {
}
src_unpack() {
- if use clang; then
- git-r3_fetch "http://llvm.org/git/compiler-rt.git
- https://github.com/llvm-mirror/compiler-rt.git"
- git-r3_fetch "http://llvm.org/git/clang.git
- https://github.com/llvm-mirror/clang.git"
- git-r3_fetch "http://llvm.org/git/clang-tools-extra.git
- https://github.com/llvm-mirror/clang-tools-extra.git"
- fi
- if use lldb; then
- git-r3_fetch "http://llvm.org/git/lldb.git
- https://github.com/llvm-mirror/lldb.git"
- fi
- git-r3_fetch
+ default
if use clang; then
- git-r3_checkout http://llvm.org/git/compiler-rt.git \
- "${S}"/projects/compiler-rt
- git-r3_checkout http://llvm.org/git/clang.git \
- "${S}"/tools/clang
- git-r3_checkout http://llvm.org/git/clang-tools-extra.git \
- "${S}"/tools/clang/tools/extra
+ mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
+ || die "clang source directory move failed"
+ mv "${WORKDIR}"/compiler-rt-${PV/_}.src
"${S}"/projects/compiler-rt \
+ || die "compiler-rt source directory move failed"
+ mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src
"${S}"/tools/clang/tools/extra \
+ || die "clang-tools-extra source directory move failed"
fi
+
if use lldb; then
- git-r3_checkout http://llvm.org/git/lldb.git \
- "${S}"/tools/lldb
+ mv "${WORKDIR}"/lldb-${PV/_}.src "${S}"/tools/lldb \
+ || die "lldb source directory move failed"
fi
- git-r3_checkout
}
src_prepare() {
# Make ocaml warnings non-fatal, bug #537308
sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
# Fix libdir for ocaml bindings install, bug #559134
- epatch "${FILESDIR}"/cmake/${PN}-3.7.0-ocaml-multilib.patch
+ epatch "${FILESDIR}"/cmake/${P}-ocaml-multilib.patch
# Make it possible to override Sphinx HTML install dirs
# https://llvm.org/bugs/show_bug.cgi?id=23780
@@ -170,9 +163,6 @@ src_prepare() {
# https://llvm.org/bugs/show_bug.cgi?id=18341
epatch "${FILESDIR}"/cmake/0004-cmake-Do-not-install-libgtest.patch
- # Allow custom cmake build types (like 'Gentoo')
- epatch
"${FILESDIR}"/cmake/${PN}-3.8-allow_custom_cmake_build_types.patch
-
if use clang; then
# Automatically select active system GCC's libraries, bugs
#406163 and #417913
epatch
"${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
@@ -184,7 +174,7 @@ src_prepare() {
# Install clang runtime into /usr/lib/clang
# https://llvm.org/bugs/show_bug.cgi?id=23792
- epatch
"${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch
+ epatch
"${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix.patch
epatch
"${FILESDIR}"/cmake/compiler-rt-0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch
# Make it possible to override CLANG_LIBDIR_SUFFIX
@@ -285,6 +275,7 @@ multilib_src_configure() {
-DLLVM_ENABLE_SPHINX=$(usex doc)
-DLLVM_ENABLE_DOXYGEN=OFF
-DLLVM_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DLLVM_INSTALL_UTILS=ON
)
if use clang; then
@@ -379,7 +370,7 @@ src_install() {
if use clang; then
# note: magic applied in multilib_src_install()!
- CLANG_VERSION=3.8
+ CLANG_VERSION=${PV%.*}
MULTILIB_CHOST_TOOLS+=(
/usr/bin/clang
@@ -402,8 +393,8 @@ multilib_src_install() {
cmake-utils_src_install
if multilib_is_native_abi; then
- # Install docs.
- #use doc && dohtml -r "${S}"/docs/_build/html/
+ # Install man pages.
+ use doc || doman "${WORKDIR}"/${P}-manpages/*.1
# Symlink the gold plugin.
if use gold; then
@@ -500,3 +491,10 @@ multilib_src_install_all() {
popd >/dev/null || die
fi
}
+
+pkg_postinst() {
+ if use clang; then
+ elog "To enable OpenMP support in clang, install
sys-libs/libomp"
+ elog "and use the '-fopenmp=libomp' command line option"
+ fi
+}
diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-9999.ebuild
index 325a857..8776cf8 100644
--- a/sys-devel/llvm/llvm-9999.ebuild
+++ b/sys-devel/llvm/llvm-9999.ebuild
@@ -30,7 +30,7 @@ COMMON_DEPEND="
dev-lang/perl:*
${PYTHON_DEPS}
)
- xml? ( dev-libs/libxml2:2= )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
)
gold? ( >=sys-devel/binutils-2.22:*[cxx] )
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
@@ -285,6 +285,7 @@ multilib_src_configure() {
-DLLVM_ENABLE_SPHINX=$(usex doc)
-DLLVM_ENABLE_DOXYGEN=OFF
-DLLVM_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DLLVM_INSTALL_UTILS=ON
)
if use clang; then
@@ -500,3 +501,10 @@ multilib_src_install_all() {
popd >/dev/null || die
fi
}
+
+pkg_postinst() {
+ if use clang; then
+ elog "To enable OpenMP support in clang, install
sys-libs/libomp"
+ elog "and use the '-fopenmp=libomp' command line option"
+ fi
+}