diff options
32 files changed, 1758 insertions, 11 deletions
diff --git a/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild new file mode 100644 index 000000000000..052fa649710d --- /dev/null +++ b/dev-ml/llvm-ocaml/llvm-ocaml-5.0.9999.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils git-r3 llvm python-any-r1 + +DESCRIPTION="OCaml bindings for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_50" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="0/${PV}" +KEYWORDS="" +IUSE="test ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + >=dev-lang/ocaml-4.00.0:0= + dev-ml/ocaml-ctypes:= + ~sys-devel/llvm-${PV}:=[${LLVM_TARGET_USEDEPS// /,}] + !sys-devel/llvm[ocaml(-)]" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + dev-ml/findlib + test? ( dev-ml/ounit + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + # Python is needed to run tests using lit + python_setup + + # User patches + eapply_user +} + +src_configure() { + local libdir=$(get_libdir) + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=ON + -DLLVM_OCAML_OUT_OF_TREE=ON + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + # disable various irrelevant deps and settings + -DLLVM_ENABLE_FFI=OFF + -DLLVM_ENABLE_TERMINFO=OFF + -DHAVE_HISTEDIT_H=NO + -DWITH_POLLY=OFF + -DLLVM_ENABLE_ASSERTIONS=OFF + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + -DLLVM_HOST_TRIPLE="${CHOST}" + + # disable go bindings + -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND + + # TODO: ocamldoc + ) + + use test && mycmakeargs+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + cmake-utils_src_configure + + local llvm_libdir=$(llvm-config --libdir) + # an ugly hack; TODO: figure out a way to pass -L to ocaml... + cd "${BUILD_DIR}/${libdir}" || die + ln -s "${llvm_libdir}"/*.so . || die + + if use test; then + local llvm_bindir=$(llvm-config --bindir) + # Force using system-installed tools. + sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \ + "${BUILD_DIR}"/test/lit.site.cfg || die + fi +} + +src_compile() { + cmake-utils_src_compile ocaml_all +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check-llvm-bindings-ocaml +} + +src_install() { + DESTDIR="${D}" \ + cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die + + dodoc bindings/ocaml/README.txt +} diff --git a/dev-python/clang-python/clang-python-4.0.0.ebuild b/dev-python/clang-python/clang-python-4.0.0.ebuild index dc7e4ee8aaab..c77ee951ec2f 100644 --- a/dev-python/clang-python/clang-python-4.0.0.ebuild +++ b/dev-python/clang-python/clang-python-4.0.0.ebuild @@ -29,7 +29,7 @@ DEPEND="${RDEPEND} S=${WORKDIR}/cfe-${PV/_/}.src/bindings/python src_test() { - python_foreach_impl nosetests -v + python_foreach_impl nosetests -v || die } src_install() { diff --git a/dev-python/clang-python/clang-python-4.0.1.ebuild b/dev-python/clang-python/clang-python-4.0.1.ebuild index dc7e4ee8aaab..c77ee951ec2f 100644 --- a/dev-python/clang-python/clang-python-4.0.1.ebuild +++ b/dev-python/clang-python/clang-python-4.0.1.ebuild @@ -29,7 +29,7 @@ DEPEND="${RDEPEND} S=${WORKDIR}/cfe-${PV/_/}.src/bindings/python src_test() { - python_foreach_impl nosetests -v + python_foreach_impl nosetests -v || die } src_install() { diff --git a/dev-python/clang-python/clang-python-5.0.9999.ebuild b/dev-python/clang-python/clang-python-5.0.9999.ebuild new file mode 100644 index 000000000000..c892681f3410 --- /dev/null +++ b/dev-python/clang-python/clang-python-5.0.9999.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +inherit git-r3 python-r1 + +DESCRIPTION="Python bindings for sys-devel/clang" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/clang.git + https://github.com/llvm-mirror/clang.git" +EGIT_BRANCH="release_50" + +LICENSE="UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# The module is opening libclang.so directly, and doing some blasphemy +# on top of it. +RDEPEND=" + >=sys-devel/clang-${PV} + !sys-devel/llvm:0[clang(-),python(-)] + !sys-devel/clang:0[python(-)] + ${PYTHON_DEPS}" +DEPEND="${RDEPEND} + test? ( dev-python/nose[${PYTHON_USEDEP}] )" + +S=${WORKDIR}/${P}/bindings/python + +src_test() { + python_foreach_impl nosetests -v || die +} + +src_install() { + python_foreach_impl python_domodule clang +} diff --git a/dev-python/clang-python/clang-python-9999.ebuild b/dev-python/clang-python/clang-python-9999.ebuild index be306e0a887a..6019ef499996 100644 --- a/dev-python/clang-python/clang-python-9999.ebuild +++ b/dev-python/clang-python/clang-python-9999.ebuild @@ -31,7 +31,7 @@ DEPEND="${RDEPEND} S=${WORKDIR}/${P}/bindings/python src_test() { - python_foreach_impl nosetests -v + python_foreach_impl nosetests -v || die } src_install() { diff --git a/dev-python/lit/lit-5.0.9999.ebuild b/dev-python/lit/lit-5.0.9999.ebuild new file mode 100644 index 000000000000..61b9ce3ec021 --- /dev/null +++ b/dev-python/lit/lit-5.0.9999.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) +inherit distutils-r1 git-r3 + +DESCRIPTION="A stand-alone install of the LLVM suite testing tool" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_50" + +LICENSE="UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="test" + +S=${WORKDIR}/${P}/utils/lit + +# Tests require 'FileCheck' and 'not' utilities (from llvm) +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + dev-python/psutil[${PYTHON_USEDEP}] + sys-devel/llvm )" + +# TODO: move the manpage generation here (from sys-devel/llvm) + +python_test() { + ./lit.py -sv tests || die +} diff --git a/dev-util/lldb/lldb-5.0.9999.ebuild b/dev-util/lldb/lldb-5.0.9999.ebuild new file mode 100644 index 000000000000..d1d0b573437b --- /dev/null +++ b/dev-util/lldb/lldb-5.0.9999.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils git-r3 llvm python-single-r1 toolchain-funcs + +DESCRIPTION="The LLVM debugger" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/lldb.git + https://github.com/llvm-mirror/lldb.git" +EGIT_BRANCH="release_50" + +LICENSE="UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="libedit ncurses python test" + +RDEPEND=" + libedit? ( dev-libs/libedit:0= ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0= ) + python? ( dev-python/six[${PYTHON_USEDEP}] + ${PYTHON_DEPS} ) + ~sys-devel/clang-${PV}[xml] + ~sys-devel/llvm-${PV} + !<sys-devel/llvm-4.0" +# swig-3.0.9+ generates invalid wrappers, #598708 +# upstream: https://github.com/swig/swig/issues/769 +DEPEND="${RDEPEND} + python? ( <dev-lang/swig-3.0.9 ) + test? ( ~dev-python/lit-${PV}[${PYTHON_USEDEP}] ) + ${PYTHON_DEPS}" + +REQUIRED_USE=${PYTHON_REQUIRED_USE} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +pkg_setup() { + LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + if use test; then + # needed for patched gtest + git-r3_fetch "https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" + fi + git-r3_fetch + + if use test; then + git-r3_checkout https://llvm.org/git/llvm.git \ + "${WORKDIR}"/llvm + fi + git-r3_checkout +} + +src_configure() { + local mycmakeargs=( + -DLLDB_DISABLE_CURSES=$(usex !ncurses) + -DLLDB_DISABLE_LIBEDIT=$(usex !libedit) + -DLLDB_DISABLE_PYTHON=$(usex !python) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + + -DLLVM_BUILD_TESTS=$(usex test) + # compilers for lit tests + -DLLDB_TEST_C_COMPILER="$(type -P clang)" + -DLLDB_TEST_CXX_COMPILER="$(type -P clang++)" + # compiler for ole' python tests + -DLLDB_TEST_COMPILER="$(type -P clang)" + + # TODO: fix upstream to detect this properly + -DHAVE_LIBDL=ON + -DHAVE_LIBPTHREAD=ON + + # normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO + # and TERMINFO_LIBS... so just force FindCurses.cmake to use + # ncurses with complete library set (including autodetection + # of -ltinfo) + -DCURSES_NEED_NCURSES=ON + ) + use test && mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + cmake-utils_src_configure +} + +src_test() { + cmake-utils_src_make check-lldb-lit + use python && cmake-utils_src_make check-lldb +} + +src_install() { + cmake-utils_src_install + + # oh my... + if use python; then + # remove bundled six module + rm "${D}$(python_get_sitedir)/six.py" || die + + # remove custom readline.so for now + # TODO: figure out how to deal with it + # upstream is basically building a custom readline.so with -ledit + # to avoid symbol collisions between readline and libedit... + rm "${D}$(python_get_sitedir)/readline.so" || die + + # byte-compile the modules + python_optimize + fi +} diff --git a/eclass/llvm.eclass b/eclass/llvm.eclass index 294e27b019b9..1128615cd35a 100644 --- a/eclass/llvm.eclass +++ b/eclass/llvm.eclass @@ -63,7 +63,7 @@ if [[ ! ${_LLVM_ECLASS} ]]; then # @INTERNAL # @DESCRIPTION: # Correct values of LLVM slots, newest first. -declare -g -r _LLVM_KNOWN_SLOTS=( 5 4 ) +declare -g -r _LLVM_KNOWN_SLOTS=( 6 5 4 ) # @FUNCTION: get_llvm_prefix # @USAGE: [<max_slot>] diff --git a/net-analyzer/tcpdump/Manifest b/net-analyzer/tcpdump/Manifest index 3c6cfe9dcf88..69b5f38afd70 100644 --- a/net-analyzer/tcpdump/Manifest +++ b/net-analyzer/tcpdump/Manifest @@ -1 +1,2 @@ DIST tcpdump-4.9.0.tar.gz 1260309 SHA256 eae98121cbb1c9adbedd9a777bf2eae9fa1c1c676424a54740311c8abcee5a5e SHA512 e98d73ae706d42e96b4069e196cf17af892eb97935664eebd08779b55b4da858bc1732d714efd16924f862aad0ba5550ceb2213c68414ed48907c46456c9fc82 WHIRLPOOL bd2284919bd3a2af166c6e05254e6fb7fa757b76f269d1a4951fe0ccfb6ad282a50f5670d3f8a38f6bffd1834bc809effd2e8575f9f0dd2fd7eaa4b4fdce5552 +DIST tcpdump-4.9.1.tar.gz 1192832 SHA256 4d1a69eab083d5df91effb805024abd4406e8a592e98558ed8722ef160c58119 SHA512 82ff20ece4c197f4b0142e45227310dc513facc9668c1423cb402eb2b62a18909a172c432ee6b20c012c172d47752ef65e2747f9d93d335073ea0ce3c007f5c9 WHIRLPOOL ed59af89e0c67477db3f10bd2d8c2b9b2dc2b3c7e3906abe37b0eba5024084e93afa98b39690c1c3af94cc6a0955023ee01ccfc5547a454dafe952957807295f diff --git a/net-analyzer/tcpdump/tcpdump-4.9.1.ebuild b/net-analyzer/tcpdump/tcpdump-4.9.1.ebuild new file mode 100644 index 000000000000..a3be92f321f9 --- /dev/null +++ b/net-analyzer/tcpdump/tcpdump-4.9.1.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit flag-o-matic toolchain-funcs user + +DESCRIPTION="A Tool for network monitoring and data acquisition" +HOMEPAGE=" + http://www.tcpdump.org/ + https://github.com/the-tcpdump-group/tcpdump +" +SRC_URI=" + https://github.com/the-${PN}-group/${PN}/archive/${P}.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux" +IUSE="+drop-root libressl smi ssl samba suid test" + +RDEPEND=" + drop-root? ( sys-libs/libcap-ng ) + net-libs/libpcap + smi? ( net-libs/libsmi ) + ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6m:0 ) + libressl? ( dev-libs/libressl ) + ) +" +DEPEND=" + ${RDEPEND} + drop-root? ( virtual/pkgconfig ) + test? ( + || ( app-arch/sharutils sys-freebsd/freebsd-ubin ) + dev-lang/perl + ) +" +S=${WORKDIR}/${PN}-${P} + +pkg_setup() { + if use drop-root || use suid; then + enewgroup tcpdump + enewuser tcpdump -1 -1 -1 tcpdump + fi +} + +src_configure() { + if use drop-root; then + append-cppflags -DHAVE_CAP_NG_H + export LIBS=$( $(tc-getPKG_CONFIG) --libs libcap-ng ) + fi + + econf \ + $(use_enable samba smb) \ + $(use_with drop-root chroot '') \ + $(use_with smi) \ + $(use_with ssl crypto "${EPREFIX}/usr") \ + $(usex drop-root "--with-user=tcpdump" "") +} + +src_test() { + if [[ ${EUID} -ne 0 ]] || ! use drop-root; then + sed -i -e '/^\(espudp1\|eapon1\)/d;' tests/TESTLIST || die + emake check + else + ewarn "If you want to run the test suite, make sure you either" + ewarn "set FEATURES=userpriv or set USE=-drop-root" + fi +} + +src_install() { + dosbin tcpdump + doman tcpdump.1 + dodoc *.awk + dodoc CHANGES CREDITS README.md + + if use suid; then + fowners root:tcpdump /usr/sbin/tcpdump + fperms 4110 /usr/sbin/tcpdump + fi +} + +pkg_preinst() { + if use drop-root || use suid; then + enewgroup tcpdump + enewuser tcpdump -1 -1 -1 tcpdump + fi +} + +pkg_postinst() { + use suid && elog "To let normal users run tcpdump add them into tcpdump group." +} diff --git a/net-misc/youtube-dl/Manifest b/net-misc/youtube-dl/Manifest index 7856b53d2dd0..2eb29c9fc31d 100644 --- a/net-misc/youtube-dl/Manifest +++ b/net-misc/youtube-dl/Manifest @@ -1,3 +1,3 @@ DIST youtube-dl-2017.03.16.tar.gz 2631620 SHA256 55df3cbda9cf86e49baf54040340ec74c692bb3d6da3d2f5a1bc1238017dd492 SHA512 f3b8942f6b2be3b1cfd4bddfb74c17bad48c8ef4bea34114970ecb9d65b5a3dcbe71beba6d7c2dbda168371bbb2e8bbaddce58039bd9d158bf23950a2a88123c WHIRLPOOL 8345da00074e62ec9a9c244cb9ef64930fbd0e5e9e5bc1709bfcf56517cc6312031a09523c3016db2a1542c16a0297bea9d6883a201ae94e347e358307e92422 -DIST youtube-dl-2017.07.02.tar.gz 2740061 SHA256 5b8b11c932ddbc346e2188f0e3a4c0ab8203b1b749f8ea9b212e10d34fa20168 SHA512 08cf4693450ad9ecdad653d4e5508c0899a54e3e16f49f5957ee1ff1486f55333860c3b8ea0d45a1ec12bf5cdc4ce3f57abf9f6c1eb73eca1dd41a38e86bbe68 WHIRLPOOL f28898208dfe3230284f7e6803cb4002a0bd7f493bbc5826ae0ad76ee4453cb5c7413cfc9609fa7bb1131754a07415318e1c380e04a07bba4ff9c88ba1517915 DIST youtube-dl-2017.07.15.tar.gz 2752839 SHA256 665905606b61cad2f4ac945823722c3bf951f3003f5a24506aea690f4189b5ca SHA512 372ac27be349fb10ce21249d7d455cec291c1691b78a67f20ae425cb5c146226ee278e97fc5903a5fd6df6dca8e0cd09da8377f606b93633161bc02ba239f573 WHIRLPOOL dc8db12f3d69ebe6bc1a8ed3fe3f7c53c2ab987ad56d683726c22eb03fe3f8829bc73a4986ef978c88252071d386fa0132d2d467c14215d5d395413411994f11 +DIST youtube-dl-2017.07.23.tar.gz 2758874 SHA256 950068234d9af63168bf1c53961638b78766d5f83f227d1e3f699d8e4f8d1241 SHA512 3e64db2b7aa3316ab4bd6745123b3411c9b3a6d06912d233254452ac47d5c4b7906b5b5d5afd7311fd0101ab7a43213dbd013c489d8c88dae4556a1fa2ce18ae WHIRLPOOL 117a5ebec345e2f4baef8f0fb410ba371d744d6657c1de02a02ff2b96affa33950e74cea334f0f664070857753c61ff770544ffd1704c6b38bc42d946b7613be diff --git a/net-misc/youtube-dl/youtube-dl-2017.07.02.ebuild b/net-misc/youtube-dl/youtube-dl-2017.07.23.ebuild index 867867e73614..867867e73614 100644 --- a/net-misc/youtube-dl/youtube-dl-2017.07.02.ebuild +++ b/net-misc/youtube-dl/youtube-dl-2017.07.23.ebuild diff --git a/sys-devel/clang-runtime/clang-runtime-5.0.9999.ebuild b/sys-devel/clang-runtime/clang-runtime-5.0.9999.ebuild new file mode 100644 index 000000000000..f95b5ba93135 --- /dev/null +++ b/sys-devel/clang-runtime/clang-runtime-5.0.9999.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib-build + +DESCRIPTION="Meta-ebuild for clang runtime libraries" +HOMEPAGE="https://clang.llvm.org/" +SRC_URI="" + +LICENSE="metapackage" +# Note: keep it matching clang-9999 version +SLOT="5.0.0" +KEYWORDS="" +IUSE="+compiler-rt libcxx openmp +sanitize" + +RDEPEND=" + compiler-rt? ( + ~sys-libs/compiler-rt-${PV}:${SLOT} + sanitize? ( ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT} ) + ) + libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] ) + openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )" + +REQUIRED_USE="sanitize? ( compiler-rt )" diff --git a/sys-devel/clang/clang-5.0.9999.ebuild b/sys-devel/clang/clang-5.0.9999.ebuild new file mode 100644 index 000000000000..df33aa3a8b7a --- /dev/null +++ b/sys-devel/clang/clang-5.0.9999.ebuild @@ -0,0 +1,277 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils flag-o-matic git-r3 llvm multilib-minimal \ + python-single-r1 toolchain-funcs pax-utils versionator + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/clang.git + https://github.com/llvm-mirror/clang.git" +EGIT_BRANCH="release_50" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} + +LICENSE="UoI-NCSA" +SLOT="$(get_major_version)" +KEYWORDS="" +IUSE="debug default-compiler-rt default-libcxx +doc multitarget + +static-analyzer test xml z3 elibc_musl kernel_FreeBSD + ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${LLVM_TARGET_USEDEPS// /,},${MULTILIB_USEDEP}] + static-analyzer? ( + dev-lang/perl:* + z3? ( sci-mathematics/z3:0= ) + ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + ${PYTHON_DEPS}" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + doc? ( dev-python/sphinx ) + test? ( ~dev-python/lit-${PV}[${PYTHON_USEDEP}] ) + xml? ( virtual/pkgconfig ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" +RDEPEND="${RDEPEND} + !<sys-devel/llvm-4.0.0_rc:0 + !sys-devel/clang:0" +PDEPEND=" + ~sys-devel/clang-runtime-${PV} + default-compiler-rt? ( =sys-libs/compiler-rt-${PV%_*}* ) + default-libcxx? ( sys-libs/libcxx )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} ) + multitarget? ( ${ALL_LLVM_TARGETS[*]} )" + +# We need extra level of indirection for CLANG_RESOURCE_DIR +S=${WORKDIR}/x/y/${P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +# Multilib notes: +# 1. ABI_* flags control ABIs libclang* is built for only. +# 2. clang is always capable of compiling code for all ABIs for enabled +# target. However, you will need appropriate crt* files (installed +# e.g. by sys-devel/gcc and sys-libs/glibc). +# 3. ${CHOST}-clang wrappers are always installed for all ABIs included +# in the current profile (i.e. alike supported by sys-devel/gcc). +# +# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need +# multilib clang* libraries (not runtime, not wrappers). + +pkg_setup() { + LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + # create extra parent dir for CLANG_RESOURCE_DIR + mkdir -p x/y || die + cd x/y || die + + git-r3_fetch "https://git.llvm.org/git/clang-tools-extra.git + https://github.com/llvm-mirror/clang-tools-extra.git" + if use test; then + # needed for patched gtest + git-r3_fetch "https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" + fi + git-r3_fetch + + git-r3_checkout https://llvm.org/git/clang-tools-extra.git \ + "${S}"/tools/extra + if use test; then + git-r3_checkout https://llvm.org/git/llvm.git \ + "${WORKDIR}"/llvm + fi + git-r3_checkout "${EGIT_REPO_URI}" "${S}" +} + +src_prepare() { + # fix finding compiler-rt libs + eapply "${FILESDIR}"/9999/0001-Driver-Use-arch-type-to-find-compiler-rt-libraries-o.patch + + # fix stand-alone doc build + eapply "${FILESDIR}"/9999/0007-cmake-Support-stand-alone-Sphinx-doxygen-doc-build.patch + + # User patches + eapply_user +} + +multilib_src_configure() { + local llvm_version=$(llvm-config --version) || die + local clang_version=$(get_version_component_range 1-3 "${llvm_version}") + + local mycmakeargs=( + # ensure that the correct llvm-config is used + -DLLVM_CONFIG="$(type -P "${CHOST}-llvm-config")" + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}" + + -DBUILD_SHARED_LIBS=ON + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # override default stdlib and rtlib + -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "") + -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "") + + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + # z3 is not multilib-friendly + -DCLANG_ANALYZER_BUILD_Z3=$(multilib_native_usex z3) + -DZ3_INCLUDE_DIR="${EPREFIX}/usr/include/z3" + ) + use test && mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + if multilib_is_native_abi; then + mycmakeargs+=( + -DLLVM_BUILD_DOCS=$(usex doc) + -DLLVM_ENABLE_SPHINX=$(usex doc) + -DLLVM_ENABLE_DOXYGEN=OFF + ) + use doc && mycmakeargs+=( + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if tc-is-cross-compiler; then + [[ -x "/usr/bin/clang-tblgen" ]] \ + || die "/usr/bin/clang-tblgen not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DCLANG_TABLEGEN=/usr/bin/clang-tblgen + ) + fi + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake-utils_src_configure +} + +multilib_src_compile() { + cmake-utils_src_compile + + # provide a symlink for tests + if [[ ! -L ${WORKDIR}/lib/clang ]]; then + mkdir -p "${WORKDIR}"/lib || die + ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check-clang + multilib_is_native_abi && cmake-utils_src_make check-clang-tools +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED%/}"/usr/include/clangrt "${ED%/}"/usr/lib/clang || die + # move (remaining) wrapped headers back + mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die + + # Apply CHOST and version suffix to clang tools + # note: we use two version components here (vs 3 in runtime path) + local llvm_version=$(llvm-config --version) || die + local clang_version=$(get_version_component_range 1-2 "${llvm_version}") + local clang_full_version=$(get_version_component_range 1-3 "${llvm_version}") + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X.Y + # - clang -> clang-X.Y + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X.Y + # - clang++-X.Y, clang-cl-X.Y, clang-cpp-X.Y -> clang-X.Y + # - clang, clang++, clang-cl, clang-cpp -> clang*-X.Y + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED%/}/usr/lib/llvm/${SLOT}/bin/${i}" || die + dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}" + dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${clang_version}" \ + "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}" + dosym "${abi_chost}-${i}-${clang_version}" \ + "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}" + done + done + + # Remove unnecessary headers on FreeBSD, bug #417171 + if use kernel_FreeBSD; then + rm "${ED}"usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die + fi +} + +multilib_src_install() { + cmake-utils_src_install + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED%/}"/usr/include || die + mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die + mv "${ED%/}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED%/}"/usr/include/clangrt || die +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"usr/lib/llvm/${SLOT}/share/scan-view + fi + + docompress "/usr/lib/llvm/${SLOT}/share/man" + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1" +} diff --git a/sys-devel/clang/clang-9999.ebuild b/sys-devel/clang/clang-9999.ebuild index 7fa988fd6b48..57378c25ed3f 100644 --- a/sys-devel/clang/clang-9999.ebuild +++ b/sys-devel/clang/clang-9999.ebuild @@ -24,7 +24,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} LICENSE="UoI-NCSA" -SLOT="5" +SLOT="6" KEYWORDS="" IUSE="debug default-compiler-rt default-libcxx +doc multitarget +static-analyzer test xml z3 elibc_musl kernel_FreeBSD diff --git a/sys-devel/lld/lld-5.0.9999.ebuild b/sys-devel/lld/lld-5.0.9999.ebuild new file mode 100644 index 000000000000..6c2601f5d423 --- /dev/null +++ b/sys-devel/lld/lld-5.0.9999.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils git-r3 llvm python-any-r1 + +DESCRIPTION="The LLVM linker (link editor)" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/lld.git + https://github.com/llvm-mirror/lld.git" +EGIT_BRANCH="release_50" + +LICENSE="UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="test" + +RDEPEND="~sys-devel/llvm-${PV}" +DEPEND="${RDEPEND} + test? ( $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + if use test; then + # needed for patched gtest + git-r3_fetch "https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" + fi + git-r3_fetch + + if use test; then + git-r3_checkout https://llvm.org/git/llvm.git \ + "${WORKDIR}"/llvm + fi + git-r3_checkout +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + + -DLLVM_INCLUDE_TESTS=$(usex test) + # TODO: fix detecting pthread upstream in stand-alone build + -DPTHREAD_LIB='-lpthread' + ) + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=ON + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + cmake-utils_src_configure +} + +src_test() { + cmake-utils_src_make check-lld +} diff --git a/sys-devel/llvm-common/llvm-common-5.0.9999.ebuild b/sys-devel/llvm-common/llvm-common-5.0.9999.ebuild new file mode 100644 index 000000000000..239d0e083cd5 --- /dev/null +++ b/sys-devel/llvm-common/llvm-common-5.0.9999.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit git-r3 + +DESCRIPTION="Common files shared between multiple slots of LLVM" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_50" + +LICENSE="UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="" + +RDEPEND="!sys-devel/llvm:0" + +src_configure() { :; } +src_compile() { :; } +src_test() { :; } + +src_install() { + insinto /usr/share/vim/vimfiles + doins -r utils/vim/*/ + # some users may find it useful + newdoc utils/vim/README README.vim + dodoc utils/vim/vimrc +} diff --git a/sys-devel/llvm/llvm-5.0.9999.ebuild b/sys-devel/llvm/llvm-5.0.9999.ebuild new file mode 100644 index 000000000000..66aa02b23cc3 --- /dev/null +++ b/sys-devel/llvm/llvm-5.0.9999.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils flag-o-matic git-r3 multilib-minimal pax-utils \ + python-any-r1 toolchain-funcs versionator + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_50" + +# Keep in sync with CMakeLists.txt +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. ARM backend: LLVM Software Grant by ARM. +# 3. MD5 code: public-domain. +# 4. Tests (not installed): +# a. gtest: BSD. +# b. YAML tests: MIT. + +LICENSE="UoI-NCSA rc BSD public-domain + llvm_targets_ARM? ( LLVM-Grant )" +SLOT="$(get_major_version)" +KEYWORDS="" +IUSE="debug +doc gold libedit +libffi ncurses test + elibc_musl kernel_Darwin ${ALL_LLVM_TARGETS[*]}" + +RDEPEND=" + sys-libs/zlib:0= + gold? ( >=sys-devel/binutils-2.22:*[cxx] ) + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) + libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + dev-lang/perl + || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 + ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) + ) + || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 ) + kernel_Darwin? ( <sys-libs/libcxx-$(get_version_component_range 1-3).9999 ) + doc? ( dev-python/sphinx ) + gold? ( sys-libs/binutils-libs ) + libffi? ( virtual/pkgconfig ) + test? ( $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) + !!<dev-python/configparser-3.3.0.2 + ${PYTHON_DEPS}" +# There are no file collisions between these versions but having :0 +# installed means llvm-config there will take precedence. +RDEPEND="${RDEPEND} + !sys-devel/llvm:0" +PDEPEND="sys-devel/llvm-common + gold? ( sys-devel/llvmgold )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + ! use test \ + || has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +src_prepare() { + # Fix llvm-config for shared linking and sane flags + # https://bugs.gentoo.org/show_bug.cgi?id=565358 + eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch + + # support building llvm against musl-libc + use elibc_musl && eapply "${FILESDIR}"/9999/musl-fixes.patch + + # disable use of SDK on OSX, bug #568758 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + + # User patches + eapply_user +} + +multilib_src_configure() { + local ffi_cflags ffi_ldflags + if use libffi; then + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + # disable appending VCS revision to the version to improve + # direct cache hit ratio + -DLLVM_APPEND_VC_REV=OFF + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=ON + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + -DLLVM_ENABLE_FFI=$(usex libffi) + -DLLVM_ENABLE_LIBEDIT=$(usex libedit) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + -DWITH_POLLY=OFF # TODO + + -DLLVM_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + +# Note: go bindings have no CMake rules at the moment +# but let's kill the check in case they are introduced +# if ! multilib_is_native_abi || ! use go; then + mycmakeargs+=( + -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND + ) +# fi + + use test && mycmakeargs+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + ) + + if multilib_is_native_abi; then + mycmakeargs+=( + -DLLVM_BUILD_DOCS=$(usex doc) + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=$(usex doc) + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use doc && mycmakeargs+=( + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + use gold && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + if tc-is-cross-compiler; then + local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen" + [[ -x "${tblgen}" ]] \ + || die "${tblgen} not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DLLVM_TABLEGEN="${tblgen}" + ) + fi + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake-utils_src_configure +} + +multilib_src_compile() { + cmake-utils_src_compile + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${SLOT}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die +} + +multilib_src_install() { + cmake-utils_src_install + + # move headers to /usr/include for wrapping + rm -rf "${ED%/}"/usr/include || die + mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${SLOT} )) + cat <<-_EOF_ > "${T}/10llvm-${revord}" || die + PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" +_EOF_ + doenvd "${T}/10llvm-${revord}" + + docompress "/usr/lib/llvm/${SLOT}/share/man" +} diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-9999.ebuild index adc0505a80ae..d5e7da2b5015 100644 --- a/sys-devel/llvm/llvm-9999.ebuild +++ b/sys-devel/llvm/llvm-9999.ebuild @@ -32,7 +32,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )" -SLOT="5" +SLOT="6" KEYWORDS="" IUSE="debug +doc gold libedit +libffi ncurses test elibc_musl kernel_Darwin ${ALL_LLVM_TARGETS[*]}" diff --git a/sys-devel/llvmgold/llvmgold-6.ebuild b/sys-devel/llvmgold/llvmgold-6.ebuild new file mode 100644 index 000000000000..6e0663ca9db8 --- /dev/null +++ b/sys-devel/llvmgold/llvmgold-6.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +DESCRIPTION="LLVMgold plugin symlink for autoloading" +HOMEPAGE="https://llvm.org/" +SRC_URI="" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="" +IUSE="" + +RDEPEND="sys-devel/llvm:${PV}[gold] + !sys-devel/llvm:0" + +S=${WORKDIR} + +src_install() { + dodir "/usr/${CHOST}/binutils-bin/lib/bfd-plugins" + dosym "../../../../lib/llvm/${PV}/$(get_libdir)/LLVMgold.so" \ + "/usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so" +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.9999.ebuild new file mode 100644 index 000000000000..d6070ffebfca --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.9999.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit check-reqs cmake-utils flag-o-matic git-r3 llvm python-any-r1 versionator + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git + https://github.com/llvm-mirror/compiler-rt.git" +EGIT_BRANCH="release_50" + +LICENSE="|| ( UoI-NCSA MIT )" +# Note: this needs to be updated to match version of clang-9999 +SLOT="5.0.0" +KEYWORDS="" +IUSE="test" + +LLVM_SLOT=${SLOT%%.*} +# llvm-4 needed for --cmakedir +DEPEND=" + >=sys-devel/llvm-4 + test? ( + app-portage/unsandbox + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${LLVM_SLOT} + sys-libs/compiler-rt:${SLOT} ) + ${PYTHON_DEPS}" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_unpack() { + if use test; then + # needed for patched gtest + git-r3_fetch "https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" + fi + git-r3_fetch + + if use test; then + git-r3_checkout https://llvm.org/git/llvm.git \ + "${WORKDIR}"/llvm + fi + git-r3_checkout +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # built-ins installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=ON + -DCOMPILER_RT_BUILD_XRAY=ON + ) + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLIT_COMMAND="${EPREFIX}/usr/bin/unsandbox;${EPREFIX}/usr/bin/lit" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + cmake-utils_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild index 78ba67169d42..1f3e2089454c 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild @@ -18,7 +18,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git LICENSE="|| ( UoI-NCSA MIT )" # Note: this needs to be updated to match version of clang-9999 -SLOT="5.0.0" +SLOT="6.0.0" KEYWORDS="" IUSE="test" diff --git a/sys-libs/compiler-rt/compiler-rt-5.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-5.0.9999.ebuild new file mode 100644 index 000000000000..cb93d7d503e9 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-5.0.9999.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils flag-o-matic git-r3 llvm python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git + https://github.com/llvm-mirror/compiler-rt.git" +EGIT_BRANCH="release_50" + +LICENSE="|| ( UoI-NCSA MIT )" +# Note: this needs to be updated to match version of clang-9999 +SLOT="5.0.0" +KEYWORDS="" +IUSE="+clang test" + +LLVM_SLOT=${SLOT%%.*} +# llvm-4 needed for --cmakedir +DEPEND=" + >=sys-devel/llvm-4 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${LLVM_SLOT} ) + ${PYTHON_DEPS}" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + llvm_pkg_setup + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + strip-unsupported-flags + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + ) + + if use test; then + mycmakeargs+=( + -DLIT_COMMAND="${EPREFIX}/usr/bin/lit" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++" + ) + fi + + cmake-utils_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-9999.ebuild b/sys-libs/compiler-rt/compiler-rt-9999.ebuild index 03c34d45531a..d9b46b7ebc1b 100644 --- a/sys-libs/compiler-rt/compiler-rt-9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-9999.ebuild @@ -18,7 +18,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git LICENSE="|| ( UoI-NCSA MIT )" # Note: this needs to be updated to match version of clang-9999 -SLOT="5.0.0" +SLOT="6.0.0" KEYWORDS="" IUSE="+clang test" diff --git a/sys-libs/libcxx/libcxx-5.0.9999.ebuild b/sys-libs/libcxx/libcxx-5.0.9999.ebuild new file mode 100644 index 000000000000..fde85c232023 --- /dev/null +++ b/sys-libs/libcxx/libcxx-5.0.9999.ebuild @@ -0,0 +1,211 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Ninja provides better scalability and cleaner verbose output, and is used +# throughout all LLVM projects. +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git + https://github.com/llvm-mirror/libcxx.git" +EGIT_BRANCH="release_50" +PYTHON_COMPAT=( python2_7 ) + +[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM="" + +inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" +if [[ ${PV} != *9999 ]] ; then + SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz" + S="${WORKDIR}/${P}.src" +else + SRC_URI="" +fi + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +if [[ ${PV} != *9999 ]] ; then + KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" +else + KEYWORDS="" +fi +IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" +REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) + ?? ( libcxxabi libcxxrt )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )" +# LLVM 4 required for llvm-config --cmakedir +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') ) + app-arch/xz-utils + >=sys-devel/llvm-4" + +DOCS=( CREDITS.TXT ) + +PATCHES=( + # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a + # out-of-tree build. + "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" +) + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi + if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later (or other" + eerror "conformant compilers). Please use gcc-config to switch to" + eerror "gcc-4.7 or later version." + die + fi +} + +multilib_src_configure() { + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + elif use libcxxrt; then + cxxabi=libcxxrt + cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + # get the full library list out of 'pretend mode' + # and grep it for libclang_rt references + local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) ) + local i + for i in "${args[@]}"; do + if [[ ${i} == *libclang_rt* ]]; then + want_gcc_s=OFF + extra_libs+=( "${i}" ) + fi + done + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + mycmakeargs+=( + # this can be any directory, it just needs to exist... + # FIXME: remove this once https://reviews.llvm.org/D25093 is merged + -DLLVM_MAIN_SRC_DIR="${T}" + -DLIT_COMMAND="${EPREFIX}"/usr/bin/lit + ) + fi + cmake-utils_src_configure +} + +multilib_src_test() { + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die + + cmake-utils_src_make check-libcxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake-utils_src_install + gen_shared_ldscript + use static-libs && gen_static_ldscript +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxxabi/libcxxabi-5.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-5.0.9999.ebuild new file mode 100644 index 000000000000..8a83444b8e8e --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-5.0.9999.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib git-r3 llvm python-any-r1 + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/libcxxabi.git + https://github.com/llvm-mirror/libcxxabi.git" +EGIT_BRANCH="release_50" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+libunwind +static-libs test" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# LLVM 4 required for llvm-config --cmakedir +DEPEND="${RDEPEND} + >=sys-devel/llvm-4 + test? ( >=sys-devel/clang-3.9.0 + ~sys-libs/libcxx-${PV}[libcxxabi(-)] + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + # we need the headers + git-r3_fetch "https://git.llvm.org/git/libcxx.git + https://github.com/llvm-mirror/libcxx.git" + git-r3_fetch + + git-r3_checkout https://llvm.org/git/libcxx.git \ + "${WORKDIR}"/libcxx + git-r3_checkout +} + +multilib_src_configure() { + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + # this only needs to exist, it does not have to make sense + # FIXME: remove this once https://reviews.llvm.org/D25314 is merged + -DLIBCXXABI_LIBUNWIND_SOURCES="${T}" + ) + if use test; then + mycmakeargs+=( + -DLIT_COMMAND="${EPREFIX}"/usr/bin/lit + ) + fi + cmake-utils_src_configure +} + +multilib_src_test() { + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die + + cmake-utils_src_make check-libcxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libomp/libomp-5.0.9999.ebuild b/sys-libs/libomp/libomp-5.0.9999.ebuild new file mode 100644 index 000000000000..086e4db0217d --- /dev/null +++ b/sys-libs/libomp/libomp-5.0.9999.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib git-r3 python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/openmp.git + https://github.com/llvm-mirror/openmp.git" +EGIT_BRANCH="release_50" + +# Additional licenses: +# - MIT-licensed Intel code, +# - LLVM Software Grant from Intel. + +LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" +SLOT="0" +KEYWORDS="" +IUSE="hwloc ompt test" + +RDEPEND="hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND} + dev-lang/perl + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + sys-devel/llvm + >=sys-devel/clang-3.9.0 + )" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local libdir="$(get_libdir)" + local mycmakeargs=( + -DLIBOMP_LIBDIR_SUFFIX="${libdir#lib}" + -DLIBOMPTARGET_LIBDIR_SUFFIX="${libdir#lib}" + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + -DLIBOMP_TEST_COMPILER="$(type -P "${CHOST}-clang")" + ) + cmake-utils_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-libomp +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-5.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-5.0.9999.ebuild new file mode 100644 index 000000000000..fc8c13fc44bf --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-5.0.9999.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +inherit cmake-multilib git-r3 llvm + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/libunwind.git + https://github.com/llvm-mirror/libunwind.git" +EGIT_BRANCH="release_50" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="debug +static-libs" + +RDEPEND="!sys-libs/libunwind" +# LLVM 4 required for llvm-config --cmakedir +DEPEND=">=sys-devel/llvm-4" + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +multilib_src_configure() { + local libdir=$(get_libdir) + + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + ) + + cmake-utils_src_configure +} + +multilib_src_install() { + cmake-utils_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/www-client/opera-developer/Manifest b/www-client/opera-developer/Manifest index 2c1ecfc79296..7bc601daf0c3 100644 --- a/www-client/opera-developer/Manifest +++ b/www-client/opera-developer/Manifest @@ -1,2 +1,2 @@ -DIST opera-developer_48.0.2643.0_amd64.deb 50688714 SHA256 77a5bf0737c6128adf8d21b9a8bef58b70c7692cbc3345d1df88e260f1e084ac SHA512 3af2fc00cc9bc1e1c11765134a73018e0ce9f56b99ade1f77328ca41b624a2ac6bed43024564127c369522618797c4a198ac8d88391b2a71fbbc0d163b99b38c WHIRLPOOL cb5cce2d7498ec6706a0adfdaa3318e21bf1c28e93d9a720b9df724fb52ef8e0d327bf08f8d8785225d1ade34e71bd27586cdd21659eb6307354dc53448150be DIST opera-developer_48.0.2657.0_amd64.deb 50831978 SHA256 d3ec7488322e529e77d4090b3ad9e23f62ac4e3faa32bea4477ea9d5fd7c3959 SHA512 29222384fb20eda2791314dbe68aff76d3d4ca33291daeca0436920a70c749a39d7f01aa89064da338e37c0ca8a20223476c04a1bed5c0a8a23da3bfb63a3c1a WHIRLPOOL 3bfab75d4cf249007c08ea54bd6594b3005104e7c9a0cef4bc1aa414f7961ef28099e219b7b3588c919cf8a27113a8f76f2762feba90ea3b17444f8e4c165b5c +DIST opera-developer_48.0.2664.0_amd64.deb 50521996 SHA256 f41f9fbfa69e36bcb78d5bff6f13fc4c4bbb38bf18fc73bade95d88f782fa2f7 SHA512 932e53e019f4588a8c4cac34c7c6dc0f4c692d2b206f6d5eae09eb3cedb8c0e9971d075d5096dc291fc616d3b4984eb8ff59da8e136ba7d8b2c13295931e662a WHIRLPOOL 39a95de2e31c32f4ee7f9f9cd4f10e10fa76605ae871428da0ae98c4e3b99117421900d4c21f18a0cd3cb6fdd0bf4b33b57ab19e565ae8ec2aabb95e23da5817 diff --git a/www-client/opera-developer/opera-developer-48.0.2643.0.ebuild b/www-client/opera-developer/opera-developer-48.0.2664.0.ebuild index 75d0b9628bcf..75d0b9628bcf 100644 --- a/www-client/opera-developer/opera-developer-48.0.2643.0.ebuild +++ b/www-client/opera-developer/opera-developer-48.0.2664.0.ebuild diff --git a/xfce-base/xfconf/Manifest b/xfce-base/xfconf/Manifest index 8afd9d1823c7..4abb2153699e 100644 --- a/xfce-base/xfconf/Manifest +++ b/xfce-base/xfconf/Manifest @@ -1,3 +1,3 @@ DIST xfconf-4.12.0.tar.bz2 542544 SHA256 9910eaea8405336415d4d7f3056403f8c67bc23ba0dce251eac35205c603b156 SHA512 60cc37a7207b0486f7f2de665870facf8e339241df344d7540082f3db447b3ac88bddd306d6a09a3868878cb477d1696491c71470052ef56cb649d773bd55b56 WHIRLPOOL 73241764a03c865c3bcda97a481e4ed9c6bfd8a3fdfd1a614291abad32f11157ba50a14d0ef918ad3c397fdd015d3dcf0cd07e24e43fbdd5125d5c273d536c16 DIST xfconf-4.12.1.tar.bz2 564131 SHA256 35f48564e5694faa54fdc180cd3268e16fc2352946a89a3c2fc12cbe400ada36 SHA512 114dba6a78d43b25eebfd9ef78beec75391b0c77e736e66ae2b04fe97dc281f93d05467ddfdd63a5067f44de135347564fe55928ae7de72f0984339db411d77f WHIRLPOOL 17ccadbf9759cf2c84f09f58f0f3c65a49a4dab3965a1deb7a42d5635075b4d60dc96556d0cc80d8b8df8c91bae51d9e3864409020b32058694d15f340d3f9c1 -DIST xfconf-4.13.2.tar.bz2 591620 SHA256 52d700908365d7c1a15d4fdb9d09b6502c4819ffb034536722cce1e15e1818da SHA512 a30f70a6442a51f6ae305cebb4863db833c752c93ba4091ec8a5fd3f66f4eead2bc460df4c6c5275f3d1610f80fd1f6b57c33e0ac59adc94d21096fd83b82c4a WHIRLPOOL b2f62847373c4c16fec578214d1b60151413e3c30cb6a8c2c956e89d0608520db7e54da05c4593eca1041ba13b0717aa5c80c70c5f6d665e343e2183e8b8bb54 +DIST xfconf-4.13.3.tar.bz2 597311 SHA256 842416258d87f24b8e2b72ddf3cb1385d0c73c982e66b18d2b2e7cb8123f98c8 SHA512 d8b53f1785947c4c47de65fe7e43062a771b6a256e598eb09fee4be975c6ccf70446d922e2d50b52c68747603012b41ef69428f286ae8d2c0768f9e6ff8aee55 WHIRLPOOL 199af60c94a44b8350f922b2fb5e3325cf718d09ad80cd882e13b6879c673876a2b3b7d2ca860f28a8007255f042b4bb6a7d4559ea6df98e7b0e1fc348bdbf43 diff --git a/xfce-base/xfconf/xfconf-4.13.2.ebuild b/xfce-base/xfconf/xfconf-4.13.3.ebuild index 3e2ada0e1a3c..3e2ada0e1a3c 100644 --- a/xfce-base/xfconf/xfconf-4.13.2.ebuild +++ b/xfce-base/xfconf/xfconf-4.13.3.ebuild |