mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 14:49:30 -07:00
Merge updates from master
This commit is contained in:
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
107
dev-ml/llvm/llvm-23.1.0_rc3.ebuild
Normal file
107
dev-ml/llvm/llvm-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,107 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake llvm.org llvm-utils python-any-r1
|
||||
|
||||
DESCRIPTION="OCaml bindings for LLVM"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0/${PV}"
|
||||
IUSE="+debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-lang/ocaml-4.00.0:0=
|
||||
dev-ml/ocaml-ctypes:=
|
||||
~llvm-core/llvm-${PV}:=[debug?]
|
||||
!llvm-core/llvm[ocaml(-)]
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/perl
|
||||
dev-ml/findlib
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm cmake libc third-party )
|
||||
LLVM_USE_TARGETS=llvm
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
local libdir=$(get_libdir)
|
||||
local mycmakeargs=(
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON
|
||||
-DLLVM_OCAML_OUT_OF_TREE=ON
|
||||
|
||||
# cheap hack: LLVM combines both anyway, and the only difference
|
||||
# is that the former list is explicitly verified at cmake time
|
||||
-DLLVM_TARGETS_TO_BUILD=""
|
||||
-DLLVM_EXPERIMENTAL_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
|
||||
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
|
||||
-DLLVM_HOST_TRIPLE="${CHOST}"
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
|
||||
# TODO: ocamldoc
|
||||
)
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
# also: custom rules for OCaml do not work for CPPFLAGS
|
||||
use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
|
||||
cmake_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.py || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_build ocaml_all
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-llvm-bindings-ocaml
|
||||
}
|
||||
|
||||
src_install() {
|
||||
DESTDIR="${D}" \
|
||||
cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
|
||||
|
||||
dodoc bindings/ocaml/README.txt
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
49
dev-python/clang/clang-23.1.0_rc3.ebuild
Normal file
49
dev-python/clang/clang-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,49 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=hatchling
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit distutils-r1 llvm.org
|
||||
|
||||
DESCRIPTION="Python bindings for llvm-core/clang"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
# The module is opening libclang.so directly, and doing some blasphemy
|
||||
# on top of it.
|
||||
DEPEND="
|
||||
>=llvm-core/clang-${PV}:*
|
||||
!llvm-core/llvm:0[clang(-),python(-)]
|
||||
!llvm-core/clang:0[python(-)]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-python/hatch-vcs[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( clang/{bindings/python,include} )
|
||||
llvm.org_set_globals
|
||||
|
||||
distutils_enable_tests unittest
|
||||
|
||||
python_test() {
|
||||
# tests rely on results from a specific clang version, so override
|
||||
# the search path
|
||||
local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
|
||||
local -x CLANG_NO_DEFAULT_CONFIG=1
|
||||
eunittest
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
41
dev-python/lit/lit-23.1.0_rc3.ebuild
Normal file
41
dev-python/lit/lit-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit distutils-r1 llvm.org
|
||||
|
||||
DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Tests require 'FileCheck' and 'not' utilities (from llvm)
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
llvm-core/llvm
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm/utils/lit )
|
||||
llvm.org_set_globals
|
||||
|
||||
# TODO: move the manpage generation here (from llvm-core/llvm)
|
||||
|
||||
src_prepare() {
|
||||
cd "${WORKDIR}" || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
local litflags=$(get_lit_flags)
|
||||
./lit.py ${litflags//;/ } tests || die
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
DIST pythran-0.18.1.gh.tar.gz 3714257 BLAKE2B 711f271297a6012a88a696df749efda8ca4c53e236a646bf2285ba80d0151b1117492c024eb8ab2e5f7337b1f9838332dba480a00a9c2a9216cbbeda78f971a8 SHA512 15650627b9396b49401067c3a7c161d1569f89f29a08243aa85659023e42ce028633915c51c8c5188a5599c201eb30aa2721d64ba766b2a252203469bc6e2ab1
|
||||
DIST pythran-0.19.0.rc1.gh.tar.gz 3781467 BLAKE2B d33b42a9c0aaed95ddc6598b3b745d0a1bae4d96314491c39c83a15fb5677751abb40e17de36beacc4935fec2591862140ea88071ca2520c24f819fbcbafebc9 SHA512 2e865446cf2799db0ac56ac6b91dc23827432ad1af0d012c86bf26225683dc6e3bbe90c3d1dec775d1aaacb3f7f63afc99a1474972df3fcccd5085ec34d27611
|
||||
|
||||
118
dev-python/pythran/pythran-0.19.0_rc1.ebuild
Normal file
118
dev-python/pythran/pythran-0.19.0_rc1.ebuild
Normal file
@@ -0,0 +1,118 @@
|
||||
# Copyright 2021-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{12..15} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_P=${P/_/.}
|
||||
DESCRIPTION="Ahead of Time compiler for numeric kernels"
|
||||
HOMEPAGE="
|
||||
https://pypi.org/project/pythran/
|
||||
https://github.com/serge-sans-paille/pythran/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/serge-sans-paille/pythran/archive/${PV/_/.}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
if [[ ${PV} != *_rc* ]]; then
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
fi
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/boost
|
||||
dev-cpp/xsimd
|
||||
>=dev-python/beniget-0.5[${PYTHON_USEDEP}]
|
||||
>=dev-python/gast-0.7[${PYTHON_USEDEP}]
|
||||
dev-python/numpy:=[${PYTHON_USEDEP}]
|
||||
>=dev-python/ply-3.4[${PYTHON_USEDEP}]
|
||||
>=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="
|
||||
test? (
|
||||
dev-libs/boost
|
||||
dev-cpp/xsimd
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/pip[${PYTHON_USEDEP}]
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/scipy[${PYTHON_USEDEP}]
|
||||
dev-python/wheel[${PYTHON_USEDEP}]
|
||||
virtual/cblas
|
||||
!!dev-python/setuptools-declarative-requirements
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_PLUGINS=()
|
||||
EPYTEST_XDIST=1
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
distutils-r1_src_prepare
|
||||
|
||||
# vendored C++ headers -- use system copies
|
||||
rm -r pythran/{boost,xsimd} || die
|
||||
|
||||
# https://bugs.gentoo.org/916461
|
||||
sed -i \
|
||||
-e 's|blas=blas|blas=cblas|' \
|
||||
-e 's|libs=|libs=cblas|' \
|
||||
pythran/pythran-*.cfg || die
|
||||
|
||||
# unpin dependencies
|
||||
sed -i -e 's:~=:>=:' requirements.txt || die
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# multiple extra deps (meson, openblas)
|
||||
# also broken on pypy3*
|
||||
pythran/tests/test_distutils.py::TestMeson::test_meson_build
|
||||
# numpy.distutils is dead and broken
|
||||
pythran/tests/test_distutils.py::TestDistutils
|
||||
# numpy changes
|
||||
pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_cross1
|
||||
pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_cross4
|
||||
)
|
||||
local EPYTEST_IGNORE=(
|
||||
pythran/benchmarks
|
||||
)
|
||||
|
||||
if ! has_version "dev-python/ipython[${PYTHON_USEDEP}]"; then
|
||||
EPYTEST_IGNORE+=(
|
||||
pythran/tests/test_ipython.py
|
||||
)
|
||||
fi
|
||||
|
||||
case ${ARCH} in
|
||||
arm)
|
||||
EPYTEST_DESELECT+=(
|
||||
# TODO
|
||||
pythran/tests/test_numpy_fft.py::TestNumpyFFT::test_fft_3d_axis
|
||||
pythran/tests/test_numpy_fft.py::TestNumpyFFTN
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
case ${EPYTHON} in
|
||||
python3.15*)
|
||||
EPYTEST_DESELECT+=(
|
||||
pythran/tests/test_array.py::TestArray::test_typecodes
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
# can easily fill up ccache with no real benefit
|
||||
local -x CCACHE_DISABLE=1
|
||||
local -x COLUMNS=80
|
||||
epytest
|
||||
}
|
||||
@@ -16,7 +16,7 @@ HOMEPAGE="
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
|
||||
|
||||
BDEPEND="
|
||||
test? (
|
||||
|
||||
@@ -4,6 +4,7 @@ DIST cpp-ipc-ce0773b3e6d5abaa8d104100c5704321113853ca.tar.gz 663617 BLAKE2B 33db
|
||||
DIST cpp-optparse-2265d647232249a53a03b411099863ceca35f0d3.tar.gz 13010 BLAKE2B 5a23625b98bb45c6e32174de47eb793ab9627e97df4935cdf0d3bfe43fe328488d2db0fa7987030778e03f17b9220a7990a5193e3728f1df4e9923173025979c SHA512 6b99478738980df3186b8487a33c96ee80107ed35fdd36cf615a53f58e9b1e72ab6099c2081e3622fa374f338609e747a1aa0c6c1295f2f71dea1ed17dbc6cf2
|
||||
DIST dolphin-2603.tar.gz 17523891 BLAKE2B c88fa6b3e0a98127cfeb2daf23a5357c3052651fb0fa109b5f56c9df72e62ac9e03ecdcc1702a93c989f8031dff13918e1a85f082a14b8ed000eec8bf9c0d880 SHA512 b6398da1c8e469bed3bc8aa784f6b8fd7cacce639ac97f827f3bd6cd037160f581a2eb126fc2e7af5f5b0c8c6c287721c7bb87bdc2c0b6a04484b0ce89018521
|
||||
DIST dolphin-2606.tar.gz 17593311 BLAKE2B 9c627b8acd6e00b824c65e4f5ce0e2c0db36142c902b7ccb7f7f3b333dc9f15f05c06022b2b0767cb59630dabd85ab4eec3c81c46cea0affe2f5d502324421e4 SHA512 b0711a34a28bac747fba549b47838ae85daf99f5a924c15baa36182a97c274c811d1cd230bf860563464cff3f834f711a943615c245b8353c5f35bf5d86950c9
|
||||
DIST dolphin-2606a.tar.gz 17594928 BLAKE2B 9b063fd5466bf27bd5ef16cfecba72629aed73631533cd00f38ad579ac9548d016460bcf626d5d02337e3274364dc0c3b5af0a6e1c642e268d65dd26d7bb393e SHA512 8fbfd0449a1925e5553bd41ee8332d78111fcb08046c6288558a51500d67537cec3538ea80bab9aa817129a0ac966094a311550b9b385cdc4d37c67a1172181d
|
||||
DIST imgui-45acd5e0e82f4c954432533ae9985ff0e1aad6d5.tar.gz 1934859 BLAKE2B bbd1824f98716ef7ae09811817e014882a194cbf3cdf5e9efe924c8b722920493ca9776771880310e73740ab88b1498e10ca84bdfad6fc3e47e3fd7041ed01ac SHA512 76fd04305cb48cf6bfa5c5dc884738137bd5c08f2ce12dfd77c1fc9b9294e6c592739d3ec4ceab7d65226775c3be5076710b58bcc40b8abed7da3620db3be511
|
||||
DIST implot-3da8bd34299965d3b0ab124df743fe3e076fa222.tar.gz 141430 BLAKE2B 5fde32ccb24a8ceaa125e188fce9faf087fa5d2294379fc6bb31071878c4b63adb998aa0100dc48ed7a379d2b1cd49e109a150bec5ebf521f70d661673b4e4a8 SHA512 8a95f76ae4a14adf6f3bcd798d2334d8282ff7b50fc7def6308c0556adcc1dbd151c0a36aa676a82e10e1ae80d1ecc1ac54e705180650eed46d0a609611c73c5
|
||||
DIST rcheevos-926e4608f8dca7989267c787bbefb3ab1c835ac5.tar.gz 434643 BLAKE2B f54caf0b0506eb4c4d0e2c12c0ab4389fb4b25b1b920dc84eabdf0ecec33e4015ea47309adbee746aec41f752c64dc0a71153479f837ae1ffeeea737a52644df SHA512 a60ca1e5b02230fee20a3cd46f71f121a9cb24d2b6434644e8cc1c922e156dec572a56b46b36724a506735375959c34b1588ef44b7c6deae5fa30e9f35ed07b8
|
||||
|
||||
314
games-emulation/dolphin/dolphin-2606a.ebuild
Normal file
314
games-emulation/dolphin/dolphin-2606a.ebuild
Normal file
@@ -0,0 +1,314 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Bumping notes:
|
||||
# * Update DOLPHIN_TAG_COMMIT to match commit used in tag.
|
||||
# * Update *_COMMIT for the vendored packages based on their submodules in Externals/.
|
||||
|
||||
LLVM_COMPAT=( {18..22} )
|
||||
LLVM_OPTIONAL=1
|
||||
|
||||
inherit branding cmake llvm-r2 pax-utils xdg
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/dolphin-emu/dolphin"
|
||||
EGIT_SUBMODULES=(
|
||||
Externals/cpp-ipc/cpp-ipc
|
||||
Externals/cpp-optparse/cpp-optparse
|
||||
Externals/imgui/imgui
|
||||
Externals/implot/implot
|
||||
Externals/rcheevos/rcheevos
|
||||
Externals/tinygltf/tinygltf
|
||||
Externals/Vulkan-Headers
|
||||
Externals/VulkanMemoryAllocator
|
||||
Externals/watcher/watcher
|
||||
)
|
||||
else
|
||||
# bug #979791
|
||||
DOLPHIN_TAG_COMMIT=c77bbaa0f372c3f72281602a8b087206706542cb
|
||||
|
||||
CPPIPC_COMMIT=ce0773b3e6d5abaa8d104100c5704321113853ca
|
||||
CPPOPTPARSE_COMMIT=2265d647232249a53a03b411099863ceca35f0d3
|
||||
IMGUI_COMMIT=45acd5e0e82f4c954432533ae9985ff0e1aad6d5
|
||||
IMPLOT_COMMIT=3da8bd34299965d3b0ab124df743fe3e076fa222
|
||||
RCHEEVOS_COMMIT=926e4608f8dca7989267c787bbefb3ab1c835ac5
|
||||
TINYGLTF_COMMIT=c5641f2c22d117da7971504591a8f6a41ece488b
|
||||
VULKAN_HEADERS_COMMIT=39f924b810e561fd86b2558b6711ca68d4363f68
|
||||
VULKANMEMORYALLOCATOR_COMMIT=3bab6924988e5f19bf36586a496156cf72f70d9f
|
||||
WATCHER_COMMIT=b03bdcfc11549df595b77239cefe2643943a3e2f
|
||||
SRC_URI="
|
||||
https://github.com/dolphin-emu/dolphin/archive/${PV}.tar.gz
|
||||
-> ${P}.tar.gz
|
||||
https://github.com/mutouyun/cpp-ipc/archive/${CPPIPC_COMMIT}.tar.gz
|
||||
-> cpp-ipc-${CPPIPC_COMMIT}.tar.gz
|
||||
https://github.com/weisslj/cpp-optparse/archive/${CPPOPTPARSE_COMMIT}.tar.gz
|
||||
-> cpp-optparse-${CPPOPTPARSE_COMMIT}.tar.gz
|
||||
https://github.com/ocornut/imgui/archive/${IMGUI_COMMIT}.tar.gz
|
||||
-> imgui-${IMGUI_COMMIT}.tar.gz
|
||||
https://github.com/epezent/implot/archive/${IMPLOT_COMMIT}.tar.gz
|
||||
-> implot-${IMPLOT_COMMIT}.tar.gz
|
||||
https://github.com/syoyo/tinygltf/archive/${TINYGLTF_COMMIT}.tar.gz
|
||||
-> tinygltf-${TINYGLTF_COMMIT}.tar.gz
|
||||
https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HEADERS_COMMIT}.tar.gz
|
||||
-> Vulkan-Headers-${VULKAN_HEADERS_COMMIT}.tar.gz
|
||||
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
|
||||
-> VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}.tar.gz
|
||||
https://github.com/e-dant/watcher/archive/${WATCHER_COMMIT}.tar.gz
|
||||
-> watcher-${WATCHER_COMMIT}.tar.gz
|
||||
retro-achievements? (
|
||||
https://github.com/RetroAchievements/rcheevos/archive/${RCHEEVOS_COMMIT}.tar.gz
|
||||
-> rcheevos-${RCHEEVOS_COMMIT}.tar.gz
|
||||
)
|
||||
"
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Gamecube and Wii game emulator"
|
||||
HOMEPAGE="https://dolphin-emu.org/"
|
||||
|
||||
LICENSE="GPL-2+ BSD BSD-2 LGPL-2.1+ MIT ZLIB"
|
||||
SLOT="0"
|
||||
IUSE="
|
||||
alsa bluetooth discord doc egl +evdev ffmpeg +gui llvm log mgba
|
||||
pulseaudio retro-achievements sdl systemd telemetry test upnp vulkan
|
||||
"
|
||||
REQUIRED_USE="
|
||||
mgba? ( gui )
|
||||
llvm? ( ${LLVM_REQUIRED_USE} )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# slot op: Uses Qt::GuiPrivate for qplatformnativeinterface.h
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
>=app-arch/lz4-1.8:=
|
||||
app-arch/xz-utils
|
||||
>=app-arch/zstd-1.4.0:=
|
||||
dev-libs/hidapi
|
||||
>=dev-libs/libfmt-10.1:=
|
||||
>=dev-util/glslang-1.4.321.0:=
|
||||
dev-libs/lzo:2
|
||||
dev-libs/pugixml
|
||||
dev-libs/xxhash
|
||||
media-libs/cubeb
|
||||
>=media-libs/libsfml-3.0:=
|
||||
media-libs/libspng
|
||||
>=net-libs/enet-1.3.18:1.3=
|
||||
net-libs/mbedtls:0=
|
||||
net-misc/curl
|
||||
>=sys-libs/minizip-ng-4.0.4:=
|
||||
x11-libs/libX11
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrandr
|
||||
virtual/libusb:1
|
||||
virtual/opengl
|
||||
>=virtual/zlib-1.3.1:=
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
bluetooth? ( net-wireless/bluez:= )
|
||||
evdev? (
|
||||
dev-libs/libevdev
|
||||
virtual/libudev
|
||||
)
|
||||
ffmpeg? ( media-video/ffmpeg:= )
|
||||
gui? (
|
||||
dev-qt/qtbase:6=[X,gui,widgets]
|
||||
dev-qt/qtsvg:6
|
||||
)
|
||||
llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}=') )
|
||||
mgba? ( >=games-emulation/mgba-0.11:= )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
sdl? ( >=media-libs/libsdl3-3.2.20 )
|
||||
systemd? ( sys-apps/systemd:0= )
|
||||
upnp? ( net-libs/miniupnpc:= )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
egl? ( media-libs/libglvnd )
|
||||
test? ( dev-cpp/gtest )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/gettext
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# vulkan-loader required for vulkan backend which can be selected
|
||||
# at runtime.
|
||||
RDEPEND+="
|
||||
vulkan? ( media-libs/vulkan-loader )
|
||||
"
|
||||
|
||||
# [directory]=license
|
||||
declare -A KEEP_BUNDLED=(
|
||||
# please keep this list in CMakeLists.txt order
|
||||
|
||||
[Bochs_disasm]=LGPL-2.1+
|
||||
[cpp-optparse]=MIT
|
||||
[imgui]=MIT
|
||||
[implot]=MIT
|
||||
|
||||
[tinygltf]=MIT
|
||||
|
||||
[FreeSurround]=GPL-2+
|
||||
[soundtouch]=LGPL-2.1+
|
||||
|
||||
# FIXME: discord-rpc not packaged
|
||||
[discord-rpc]=MIT
|
||||
|
||||
[picojson]=BSD-2
|
||||
[expr]=MIT
|
||||
[rangeset]=ZLIB
|
||||
[FatFs]=FatFs
|
||||
[rcheevos]=MIT
|
||||
[Vulkan-Headers]="|| ( Apache-2.0 MIT )"
|
||||
[VulkanMemoryAllocator]=MIT
|
||||
[watcher]=MIT
|
||||
[cpp-ipc]=MIT
|
||||
)
|
||||
|
||||
add_bundled_licenses() {
|
||||
for license in ${KEEP_BUNDLED[@]}; do
|
||||
LICENSE+=" ${license}"
|
||||
done
|
||||
}
|
||||
add_bundled_licenses
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/dolphin-2603-mbgba-definitions.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use llvm && llvm-r2_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
# Set tag commit to fix netplay against builds on other platforms, bug #979791
|
||||
eapply "${FILESDIR}"/dolphin-2606-git-rev.patch
|
||||
sed -e "s|@@GENTOO_DOLPHIN_COMMIT@@|${DOLPHIN_TAG_COMMIT}|" \
|
||||
-i CMake/ScmRevGen.cmake || die
|
||||
|
||||
mv -T "${WORKDIR}/cpp-ipc-${CPPIPC_COMMIT}" Externals/cpp-ipc/cpp-ipc || die
|
||||
mv -T "${WORKDIR}/cpp-optparse-${CPPOPTPARSE_COMMIT}" Externals/cpp-optparse/cpp-optparse || die
|
||||
mv -T "${WORKDIR}/imgui-${IMGUI_COMMIT}" Externals/imgui/imgui || die
|
||||
mv -T "${WORKDIR}/implot-${IMPLOT_COMMIT}" Externals/implot/implot || die
|
||||
mv -T "${WORKDIR}/tinygltf-${TINYGLTF_COMMIT}" Externals/tinygltf/tinygltf || die
|
||||
mv -T "${WORKDIR}/Vulkan-Headers-${VULKAN_HEADERS_COMMIT}" Externals/Vulkan-Headers || die
|
||||
mv -T "${WORKDIR}/VulkanMemoryAllocator-${VULKANMEMORYALLOCATOR_COMMIT}" Externals/VulkanMemoryAllocator || die
|
||||
mv -T "${WORKDIR}/watcher-${WATCHER_COMMIT}" Externals/watcher/watcher || die
|
||||
if use retro-achievements; then
|
||||
mv -T "${WORKDIR}/rcheevos-${RCHEEVOS_COMMIT}" Externals/rcheevos/rcheevos || die
|
||||
fi
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
|
||||
local s remove=()
|
||||
for s in Externals/*; do
|
||||
[[ -f ${s} ]] && continue
|
||||
if ! has "${s#Externals/}" "${!KEEP_BUNDLED[@]}"; then
|
||||
remove+=( "${s}" )
|
||||
fi
|
||||
done
|
||||
|
||||
einfo "removing sources: ${remove[*]}"
|
||||
rm -r "${remove[@]}" || die
|
||||
|
||||
# Use ccache only when user did set FEATURES=ccache (or similar)
|
||||
# # not when ccache binary is present in system (automagic).
|
||||
sed -e '/include(CCache)/d' -i CMakeLists.txt || die
|
||||
|
||||
# Remove dirty suffix: needed for netplay
|
||||
sed -i -e 's/--dirty/&=""/' CMake/ScmRevGen.cmake || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DDSPTOOL=ON
|
||||
-DENABLE_ALSA=$(usex alsa)
|
||||
-DENABLE_ANALYTICS=$(usex telemetry)
|
||||
-DENABLE_AUTOUPDATE=OFF
|
||||
-DENABLE_BLUEZ=$(usex bluetooth)
|
||||
-DENABLE_CLI_TOOL=ON
|
||||
-DENABLE_CUBEB=ON
|
||||
-DENABLE_EGL=$(usex egl)
|
||||
-DENABLE_EVDEV=$(usex evdev)
|
||||
-DENABLE_HWDB=$(usex evdev)
|
||||
-DENABLE_LLVM=$(usex llvm)
|
||||
-DENABLE_LTO=OFF # just adds -flto, user can do that via flags
|
||||
-DENABLE_NOGUI=$(usex !gui)
|
||||
-DENABLE_PULSEAUDIO=$(usex pulseaudio)
|
||||
-DENABLE_QT=$(usex gui)
|
||||
-DENABLE_SDL=$(usex sdl)
|
||||
-DENABLE_TESTS=$(usex test)
|
||||
-DENABLE_VULKAN=$(usex vulkan)
|
||||
-DENCODE_FRAMEDUMPS=$(usex ffmpeg)
|
||||
-DFASTLOG=$(usex log)
|
||||
-DUSE_DISCORD_PRESENCE=$(usex discord)
|
||||
-DUSE_MGBA=$(usex mgba)
|
||||
-DUSE_RETRO_ACHIEVEMENTS=$(usex retro-achievements)
|
||||
-DUSE_UPNP=$(usex upnp)
|
||||
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_SYSTEMD=$(usex !systemd)
|
||||
|
||||
# Use system libraries
|
||||
-DUSE_SYSTEM_FMT=ON
|
||||
-DUSE_SYSTEM_GLSLANG=ON
|
||||
-DUSE_SYSTEM_PUGIXML=ON
|
||||
-DUSE_SYSTEM_ENET=ON
|
||||
-DUSE_SYSTEM_XXHASH=ON
|
||||
-DUSE_SYSTEM_BZIP2=ON
|
||||
-DUSE_SYSTEM_LIBLZMA=ON
|
||||
-DUSE_SYSTEM_ZSTD=ON
|
||||
-DUSE_SYSTEM_ZLIB=ON
|
||||
-DUSE_SYSTEM_MINIZIP-NG=ON
|
||||
-DUSE_SYSTEM_LZO=ON
|
||||
-DUSE_SYSTEM_LZ4=ON
|
||||
-DUSE_SYSTEM_SPNG=ON
|
||||
-DUSE_SYSTEM_CUBEB=ON
|
||||
-DUSE_SYSTEM_LIBUSB=ON
|
||||
-DUSE_SYSTEM_SFML=ON
|
||||
-DUSE_SYSTEM_MBEDTLS=ON
|
||||
-DUSE_SYSTEM_CURL=ON
|
||||
-DUSE_SYSTEM_ICONV=ON
|
||||
-DUSE_SYSTEM_HIDAPI=ON
|
||||
|
||||
-DDISTRIBUTOR="${BRANDING_OS_NAME}"
|
||||
|
||||
# Undo cmake.eclass's defaults.
|
||||
# All dolphin's libraries are private
|
||||
# and rely on circular dependency resolution.
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
|
||||
# Avoid warning spam around unset variables.
|
||||
-Wno-dev
|
||||
)
|
||||
|
||||
# System installed git shouldnt affect non live builds
|
||||
[[ ${PV} != *9999 ]] && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
|
||||
|
||||
use test && mycmakeargs+=( -DUSE_SYSTEM_GTEST=ON )
|
||||
use mgba && mycmakeargs+=( -DUSE_SYSTEM_LIBMGBA=ON )
|
||||
use sdl && mycmakeargs+=( -DUSE_SYSTEM_SDL3=ON )
|
||||
use upnp && mycmakeargs+=( -DUSE_SYSTEM_MINIUPNPC=ON )
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cmake_build unittests
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
dodoc Readme.md
|
||||
if use doc; then
|
||||
dodoc -r docs/ActionReplay docs/DSP docs/WiiMote
|
||||
fi
|
||||
|
||||
# Add pax markings for hardened systems
|
||||
pax-mark -m "${ED}"/usr/bin/"${PN}"{-emu{,-nogui},-tool}
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
339
llvm-core/clang-common/clang-common-23.1.0_rc3.ebuild
Normal file
339
llvm-core/clang-common/clang-common-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,339 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit bash-completion-r1 elisp-common llvm.org multilib
|
||||
|
||||
DESCRIPTION="Common files shared between multiple slots of clang"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
IUSE="
|
||||
default-compiler-rt default-libcxx default-lld
|
||||
bootstrap-prefix cet emacs hardened llvm-libunwind
|
||||
"
|
||||
|
||||
PDEPEND="
|
||||
default-compiler-rt? (
|
||||
llvm-runtimes/clang-runtime:${LLVM_MAJOR}[compiler-rt]
|
||||
llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind[static-libs] )
|
||||
)
|
||||
!default-compiler-rt? ( sys-devel/gcc )
|
||||
default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
|
||||
!default-libcxx? ( sys-devel/gcc )
|
||||
default-lld? ( >=llvm-core/lld-${PV} )
|
||||
!default-lld? ( sys-devel/binutils )
|
||||
"
|
||||
# enforce flags on clang-runtime as well to aid transition
|
||||
PDEPEND+="
|
||||
llvm-runtimes/clang-runtime[default-compiler-rt(-)?,default-libcxx(-)?,default-lld(-)?,llvm-libunwind(-)?]
|
||||
emacs? ( >=app-editors/emacs-26.3:* )
|
||||
"
|
||||
IDEPEND="
|
||||
!default-compiler-rt? ( sys-devel/gcc-config )
|
||||
!default-libcxx? ( sys-devel/gcc-config )
|
||||
"
|
||||
BDEPEND="
|
||||
emacs? ( >=app-editors/emacs-26.3:* )
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( clang/utils clang/tools/clang-format )
|
||||
llvm.org_set_globals
|
||||
|
||||
SITEFILE="50clang-gentoo.el"
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
|
||||
|
||||
local flag missing_flags=()
|
||||
for flag in default-{compiler-rt,libcxx,lld}; do
|
||||
if ! use "${flag}" && has_version "llvm-core/clang[${flag}]"; then
|
||||
missing_flags+=( "${flag}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${missing_flags[@]} ]]; then
|
||||
eerror "It seems that you have the following flags set on llvm-core/clang:"
|
||||
eerror
|
||||
eerror " ${missing_flags[*]}"
|
||||
eerror
|
||||
eerror "The default runtimes are now set via flags on llvm-core/clang-common."
|
||||
eerror "The build is being aborted to prevent breakage. Please either set"
|
||||
eerror "the respective flags on this ebuild, e.g.:"
|
||||
eerror
|
||||
eerror " llvm-core/clang-common ${missing_flags[*]}"
|
||||
eerror
|
||||
eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
|
||||
die "Mismatched defaults detected between llvm-core/clang and llvm-core/clang-common"
|
||||
fi
|
||||
}
|
||||
|
||||
_doclang_cfg() {
|
||||
local triple="${1}"
|
||||
|
||||
local tool
|
||||
for tool in ${triple}-clang{,++}; do
|
||||
newins - "${tool}.cfg" <<-EOF
|
||||
# This configuration file is used by ${tool} driver.
|
||||
@gentoo-common.cfg
|
||||
@gentoo-common-ld.cfg
|
||||
EOF
|
||||
if [[ ${triple} == x86_64* ]]; then
|
||||
cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
|
||||
@gentoo-cet.cfg
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
|
||||
if use kernel_Darwin; then
|
||||
cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
|
||||
-lc++abi
|
||||
EOF
|
||||
fi
|
||||
|
||||
newins - "${triple}-clang-cpp.cfg" <<-EOF
|
||||
# This configuration file is used by the ${triple}-clang-cpp driver.
|
||||
@gentoo-common.cfg
|
||||
EOF
|
||||
if [[ ${triple} == x86_64* ]]; then
|
||||
cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
|
||||
@gentoo-cet.cfg
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Install symlinks for triples with other vendor strings since some
|
||||
# programs insist on mangling the triple.
|
||||
local vendor
|
||||
for vendor in gentoo pc unknown; do
|
||||
local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
|
||||
for tool in clang{,++,-cpp}; do
|
||||
if [[ ! -f "${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then
|
||||
dosym "${triple}-${tool}.cfg" "/etc/clang/${vendor_triple}-${tool}.cfg"
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
doclang_cfg() {
|
||||
local triple="${1}"
|
||||
|
||||
_doclang_cfg ${triple}
|
||||
|
||||
# LLVM may have different arch names in some cases. For example in x86
|
||||
# profiles the triple uses i686, but llvm will prefer i386 if invoked
|
||||
# with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
|
||||
# be used if invoked through ${CHOST}-clang{,++,-cpp} though.
|
||||
#
|
||||
# To make sure the correct triples are installed,
|
||||
# see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
|
||||
# and compare with CHOST values in profiles.
|
||||
|
||||
local abi=${triple%%-*}
|
||||
case ${abi} in
|
||||
armv4l|armv4t|armv5tel|armv6j|armv7a)
|
||||
_doclang_cfg ${triple/${abi}/arm}
|
||||
;;
|
||||
i686)
|
||||
_doclang_cfg ${triple/${abi}/i386}
|
||||
;;
|
||||
sparc)
|
||||
_doclang_cfg ${triple/${abi}/sparcel}
|
||||
;;
|
||||
sparc64)
|
||||
_doclang_cfg ${triple/${abi}/sparcv9}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
default
|
||||
use emacs && elisp-compile ../tools/clang-format/clang-format.el
|
||||
}
|
||||
|
||||
src_install() {
|
||||
newbashcomp bash-autocomplete.sh clang
|
||||
|
||||
insinto /etc/clang
|
||||
newins - gentoo-runtimes.cfg <<-EOF
|
||||
# This file is initially generated by llvm-runtimes/clang-runtime.
|
||||
# It is used to control the default runtimes using by clang.
|
||||
|
||||
--rtlib=$(usex default-compiler-rt compiler-rt libgcc)
|
||||
--unwindlib=$(usex default-compiler-rt libunwind libgcc)
|
||||
--stdlib=$(usex default-libcxx libc++ libstdc++)
|
||||
-fuse-ld=$(usex default-lld lld bfd)
|
||||
EOF
|
||||
|
||||
newins - gentoo-gcc-install.cfg <<-EOF
|
||||
# This file is maintained by gcc-config.
|
||||
# It is used to specify the selected GCC installation.
|
||||
EOF
|
||||
|
||||
newins - gentoo-common.cfg <<-EOF
|
||||
# This file contains flags common to clang, clang++ and clang-cpp.
|
||||
@gentoo-runtimes.cfg
|
||||
@gentoo-gcc-install.cfg
|
||||
@gentoo-hardened.cfg
|
||||
# bug #870001
|
||||
-include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
|
||||
EOF
|
||||
|
||||
# clang-cpp does not like link args being passed to it when directly
|
||||
# invoked, so use a separate configuration file.
|
||||
newins - gentoo-common-ld.cfg <<-EOF
|
||||
# This file contains flags common to clang and clang++
|
||||
@gentoo-hardened-ld.cfg
|
||||
EOF
|
||||
|
||||
# Baseline hardening (bug #851111)
|
||||
newins - gentoo-hardened.cfg <<-EOF
|
||||
# Some of these options are added unconditionally, regardless of
|
||||
# USE=hardened, for parity with sys-devel/gcc.
|
||||
-Xarch_host -fstack-clash-protection
|
||||
-Xarch_host -fstack-protector-strong
|
||||
-fPIE
|
||||
-include "${EPREFIX}/usr/include/gentoo/fortify.h"
|
||||
EOF
|
||||
|
||||
newins - gentoo-cet.cfg <<-EOF
|
||||
-Xarch_host -fcf-protection=$(usex cet full none)
|
||||
EOF
|
||||
|
||||
if use kernel_Darwin; then
|
||||
newins - gentoo-hardened-ld.cfg <<-EOF
|
||||
# There was -Wl,-z,relro here, but it's not supported on Mac
|
||||
# TODO: investigate whether -bind_at_load or -read_only_stubs will do the job
|
||||
EOF
|
||||
else
|
||||
newins - gentoo-hardened-ld.cfg <<-EOF
|
||||
# Some of these options are added unconditionally, regardless of
|
||||
# USE=hardened, for parity with sys-devel/gcc.
|
||||
-Wl,-z,relro
|
||||
-Wl,-z,now
|
||||
EOF
|
||||
fi
|
||||
|
||||
dodir /usr/include/gentoo
|
||||
|
||||
cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
|
||||
/* __has_include is an extension, but it's fine, because this is only
|
||||
for Clang anyway. */
|
||||
#if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__)
|
||||
# include <stdc-predef.h>
|
||||
#endif
|
||||
EOF
|
||||
|
||||
local fortify_level=$(usex hardened 3 2)
|
||||
# We have to do this because glibc's headers warn if F_S is set
|
||||
# without optimization and that would at the very least be very noisy
|
||||
# during builds and at worst trigger many -Werror builds.
|
||||
cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
|
||||
#ifdef __clang__
|
||||
# pragma clang system_header
|
||||
#endif
|
||||
#ifndef _FORTIFY_SOURCE
|
||||
# if defined(__has_feature)
|
||||
# define __GENTOO_HAS_FEATURE(x) __has_feature(x)
|
||||
# else
|
||||
# define __GENTOO_HAS_FEATURE(x) 0
|
||||
# endif
|
||||
#
|
||||
# if !defined(__OPTIMIZE__) || __OPTIMIZE__ == 0
|
||||
# elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
|
||||
# elif defined(__SANITIZE_ADDRESS__)
|
||||
# elif __GENTOO_HAS_FEATURE(address_sanitizer)
|
||||
# elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
|
||||
# elif __GENTOO_HAS_FEATURE(memory_sanitizer)
|
||||
# elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
|
||||
# elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
|
||||
# elif __GENTOO_HAS_FEATURE(thread_sanitizer)
|
||||
# elif defined(_GENTOO_NO_FORTIFY_SOURCE)
|
||||
# else
|
||||
# define _FORTIFY_SOURCE ${fortify_level}
|
||||
# endif
|
||||
#
|
||||
# undef __GENTOO_HAS_FEATURE
|
||||
#endif
|
||||
EOF
|
||||
|
||||
# TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
|
||||
# non-hardened?
|
||||
if use hardened ; then
|
||||
cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
|
||||
# Options below are conditional on USE=hardened.
|
||||
-Xarch_host -D_GLIBCXX_ASSERTIONS
|
||||
|
||||
# Analogue to GLIBCXX_ASSERTIONS
|
||||
# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
|
||||
# https://libcxx.llvm.org/Hardening.html#using-hardened-mode
|
||||
-Xarch_host -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
|
||||
EOF
|
||||
|
||||
cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
|
||||
# Options below are conditional on USE=hardened.
|
||||
EOF
|
||||
fi
|
||||
|
||||
# We only install config files for supported ABIs because unprefixed tools
|
||||
# might be used for crosscompilation where e.g. PIE may not be supported.
|
||||
# See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug #912685.
|
||||
local abi
|
||||
for abi in $(get_all_abis); do
|
||||
local abi_chost=$(get_abi_CHOST "${abi}")
|
||||
doclang_cfg "${abi_chost}"
|
||||
done
|
||||
|
||||
if use kernel_Darwin; then
|
||||
cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
|
||||
# Gentoo Prefix on Darwin
|
||||
-Wl,-search_paths_first
|
||||
EOF
|
||||
if use bootstrap-prefix ; then
|
||||
# bootstrap-prefix is only set during stage2 of bootstrapping
|
||||
# Prefix, where EPREFIX is set to EPREFIX/tmp.
|
||||
# Here we need to point it at the future lib dir of the stage3's
|
||||
# EPREFIX.
|
||||
cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
|
||||
-Wl,-rpath,${EPREFIX}/../usr/lib
|
||||
-Wl,-L,${EPREFIX}/../usr/lib
|
||||
-isystem ${EPREFIX}/../usr/include
|
||||
EOF
|
||||
fi
|
||||
# Using -Wl,-L instead of -L to trick compiler driver to put it
|
||||
# after -isysroot's internal -L
|
||||
cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
|
||||
-Wl,-rpath,${EPREFIX}/usr/lib
|
||||
-Wl,-L,${EPREFIX}/usr/lib
|
||||
-isystem ${EPREFIX}/usr/include
|
||||
-isysroot ${EPREFIX}/MacOSX.sdk
|
||||
EOF
|
||||
fi
|
||||
|
||||
if use emacs ; then
|
||||
elisp-install clang ../tools/clang-format/clang-format.{el,elc}
|
||||
elisp-make-site-file "${SITEFILE}" clang
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
|
||||
then
|
||||
local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
|
||||
if [[ -n ${gcc_path} ]]; then
|
||||
cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
|
||||
--gcc-install-dir="${gcc_path%%:*}"
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
@@ -21,4 +21,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
467
llvm-core/clang/clang-23.1.0_rc3.ebuild
Normal file
467
llvm-core/clang/clang-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,467 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit cmake llvm.org multilib multilib-minimal
|
||||
inherit prefix python-single-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="C language family frontend for LLVM"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
# MSVCSetupApi.h: MIT
|
||||
# sorttable.js: MIT
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
|
||||
static-analyzer? ( dev-lang/perl:* )
|
||||
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
${DEPEND}
|
||||
>=llvm-core/clang-common-${PV}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
test? ( ~llvm-core/lld-${PV} )
|
||||
xml? ( virtual/pkgconfig )
|
||||
"
|
||||
PDEPEND="
|
||||
llvm-runtimes/clang-runtime:${LLVM_MAJOR}
|
||||
llvm-core/clang-toolchain-symlinks:${LLVM_MAJOR}
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( clang clang-tools-extra cmake mlir/utils/pygments utils/docs )
|
||||
LLVM_TEST_COMPONENTS=( llvm/utils )
|
||||
LLVM_MANPAGES=1
|
||||
LLVM_USE_TARGETS=llvm+eq
|
||||
llvm.org_set_globals
|
||||
|
||||
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
|
||||
BDEPEND+="
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/myst-parser[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
|
||||
|
||||
# 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 llvm-core/clang[${MULTILIB_USEDEP}] only if you need
|
||||
# multilib clang* libraries (not runtime, not wrappers).
|
||||
|
||||
src_prepare() {
|
||||
# create extra parent dir for relative CLANG_RESOURCE_DIR access
|
||||
mkdir -p x/y || die
|
||||
BUILD_DIR=${WORKDIR}/x/y/clang
|
||||
|
||||
llvm.org_src_prepare
|
||||
|
||||
# add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
|
||||
eprefixify \
|
||||
lib/Lex/InitHeaderSearch.cpp \
|
||||
lib/Driver/ToolChains/Darwin.cpp || die
|
||||
|
||||
if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
|
||||
sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
|
||||
fi
|
||||
}
|
||||
|
||||
check_distribution_components() {
|
||||
if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
|
||||
local all_targets=() my_targets=() l
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
while read -r l; do
|
||||
if [[ ${l} == install-*-stripped:* ]]; then
|
||||
l=${l#install-}
|
||||
l=${l%%-stripped*}
|
||||
|
||||
case ${l} in
|
||||
# meta-targets
|
||||
clang-libraries|distribution)
|
||||
continue
|
||||
;;
|
||||
# tools
|
||||
clang|clangd|clang-*)
|
||||
;;
|
||||
# static libraries
|
||||
clang*|findAllSymbols)
|
||||
continue
|
||||
;;
|
||||
# conditional to USE=doc
|
||||
docs-clang-html|docs-clang-tools-html)
|
||||
use doc || continue
|
||||
;;
|
||||
# built only with tests
|
||||
c-index-test)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
all_targets+=( "${l}" )
|
||||
fi
|
||||
done < <(${NINJA} -t targets all)
|
||||
|
||||
while read -r l; do
|
||||
my_targets+=( "${l}" )
|
||||
done < <(get_distribution_components $"\n")
|
||||
|
||||
local add=() remove=()
|
||||
for l in "${all_targets[@]}"; do
|
||||
if ! has "${l}" "${my_targets[@]}"; then
|
||||
add+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
for l in "${my_targets[@]}"; do
|
||||
if ! has "${l}" "${all_targets[@]}"; then
|
||||
remove+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
|
||||
eerror "get_distribution_components() is outdated!"
|
||||
eerror " Add: ${add[*]}"
|
||||
eerror "Remove: ${remove[*]}"
|
||||
die "Update get_distribution_components()!"
|
||||
fi
|
||||
cd - >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
get_distribution_components() {
|
||||
local sep=${1-;}
|
||||
|
||||
local out=(
|
||||
# common stuff
|
||||
clang-cmake-exports
|
||||
clang-headers
|
||||
clang-resource-headers
|
||||
libclang-headers
|
||||
|
||||
aarch64-resource-headers
|
||||
arm-common-resource-headers
|
||||
arm-resource-headers
|
||||
core-resource-headers
|
||||
cuda-resource-headers
|
||||
hexagon-resource-headers
|
||||
hip-resource-headers
|
||||
hlsl-resource-headers
|
||||
mips-resource-headers
|
||||
opencl-resource-headers
|
||||
openmp-resource-headers
|
||||
ppc-htm-resource-headers
|
||||
ppc-resource-headers
|
||||
riscv-resource-headers
|
||||
spirv-resource-headers
|
||||
systemz-resource-headers
|
||||
utility-resource-headers
|
||||
ve-resource-headers
|
||||
webassembly-resource-headers
|
||||
windows-resource-headers
|
||||
x86-resource-headers
|
||||
|
||||
# libs
|
||||
clang-cpp
|
||||
libclang
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
out+=(
|
||||
# common stuff
|
||||
bash-autocomplete
|
||||
libclang-python-bindings
|
||||
|
||||
# tools
|
||||
clang
|
||||
clang-format
|
||||
clang-installapi
|
||||
clang-linker-wrapper
|
||||
clang-nvlink-wrapper
|
||||
clang-offload-bundler
|
||||
clang-refactor
|
||||
clang-repl
|
||||
clang-scan-deps
|
||||
clang-ssaf-analyzer
|
||||
clang-ssaf-format
|
||||
clang-ssaf-linker
|
||||
clang-sycl-linker
|
||||
diagtool
|
||||
hmaptool
|
||||
offload-arch
|
||||
|
||||
# needed for cross-compiling Clang
|
||||
clang-tblgen
|
||||
)
|
||||
|
||||
if use extra; then
|
||||
out+=(
|
||||
# extra tools
|
||||
clang-apply-replacements
|
||||
clang-change-namespace
|
||||
clang-doc
|
||||
clang-include-cleaner
|
||||
clang-include-fixer
|
||||
clang-move
|
||||
clang-query
|
||||
clang-reorder-fields
|
||||
clang-tidy
|
||||
clang-tidy-headers
|
||||
clangd
|
||||
find-all-symbols
|
||||
modularize
|
||||
pp-trace
|
||||
)
|
||||
|
||||
use kernel_Darwin && out+=( ClangdXPCLib )
|
||||
fi
|
||||
|
||||
if llvm_are_manpages_built; then
|
||||
out+=( docs-clang-man )
|
||||
use extra && out+=( docs-clang-tools-man )
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
out+=( docs-clang-html )
|
||||
use extra && out+=( docs-clang-tools-html )
|
||||
fi
|
||||
|
||||
use static-analyzer && out+=(
|
||||
clang-check
|
||||
clang-extdef-mapping
|
||||
scan-build
|
||||
scan-build-py
|
||||
scan-view
|
||||
)
|
||||
fi
|
||||
|
||||
printf "%s${sep}" "${out[@]}"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
|
||||
-DLLVM_ROOT="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/${LLVM_MAJOR}"
|
||||
-DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
|
||||
# relative to bindir
|
||||
-DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DCLANG_LINK_CLANG_DYLIB=ON
|
||||
-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
|
||||
-DCLANG_INCLUDE_TESTS=$(usex test)
|
||||
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
|
||||
# these are not propagated reliably, so redefine them
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
|
||||
# libgomp support fails to find headers without explicit -I
|
||||
# furthermore, it provides only syntax checking
|
||||
-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
|
||||
|
||||
-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
|
||||
|
||||
-DCLANG_ENABLE_LIBXML2=$(usex xml)
|
||||
-DCLANG_ENABLE_OBJC_REWRITER=ON
|
||||
-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
|
||||
# TODO: CLANG_ENABLE_HLSL?
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
|
||||
if ! use elibc_musl; then
|
||||
mycmakeargs+=(
|
||||
-DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
|
||||
)
|
||||
fi
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_BUILD_TESTS=ON
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
local build_docs=OFF
|
||||
if llvm_are_manpages_built; then
|
||||
build_docs=ON
|
||||
mycmakeargs+=(
|
||||
-DLLVM_BUILD_DOCS=ON
|
||||
-DLLVM_ENABLE_SPHINX=ON
|
||||
-DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
|
||||
-DSPHINX_WARNINGS_AS_ERRORS=OFF
|
||||
)
|
||||
if use extra; then
|
||||
mycmakeargs+=(
|
||||
-DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
|
||||
)
|
||||
fi
|
||||
fi
|
||||
mycmakeargs+=(
|
||||
-DCLANG_INCLUDE_DOCS=${build_docs}
|
||||
)
|
||||
fi
|
||||
if multilib_native_use extra; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
|
||||
-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
|
||||
)
|
||||
else
|
||||
mycmakeargs+=(
|
||||
-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
has_version -b llvm-core/clang:${LLVM_MAJOR} ||
|
||||
die "llvm-core/clang:${LLVM_MAJOR} is required on the build host."
|
||||
local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
|
||||
mycmakeargs+=(
|
||||
-DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
|
||||
-DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
|
||||
)
|
||||
fi
|
||||
|
||||
# LLVM can have very high memory consumption while linking,
|
||||
# exhausting the limit on 32-bit linker executable
|
||||
use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
|
||||
multilib_is_native_abi && check_distribution_components
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
cmake_build distribution
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
local test_targets=( check-clang )
|
||||
if multilib_native_use extra; then
|
||||
test_targets+=(
|
||||
check-clang-tools
|
||||
check-clangd
|
||||
)
|
||||
fi
|
||||
cmake_build "${test_targets[@]}"
|
||||
}
|
||||
|
||||
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
|
||||
if use extra; then
|
||||
mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
|
||||
fi
|
||||
mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
|
||||
|
||||
# Apply CHOST and version suffix to clang tools
|
||||
local clang_tools=( clang clang++ clang-cl clang-cpp )
|
||||
local abi i
|
||||
|
||||
# cmake gives us:
|
||||
# - clang-X
|
||||
# - clang -> clang-X
|
||||
# - clang++, clang-cl, clang-cpp -> clang
|
||||
# we want to have:
|
||||
# - clang-X
|
||||
# - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
|
||||
# - clang, clang++, clang-cl, clang-cpp -> clang*-X
|
||||
# also in CHOST variant
|
||||
for i in "${clang_tools[@]:1}"; do
|
||||
rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
|
||||
dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
|
||||
dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/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}-${LLVM_MAJOR}" \
|
||||
"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
|
||||
dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
|
||||
"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
DESTDIR=${D} cmake_build install-distribution
|
||||
|
||||
# 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/${LLVM_MAJOR}/include "${ED}"/usr/include || die
|
||||
mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
|
||||
if multilib_native_use extra; then
|
||||
# don't wrap clang-tidy headers, the list is too long
|
||||
# (they're fine for non-native ABI but enabling the targets is problematic)
|
||||
mv "${ED}"/usr/include/clang-tidy "${T}/" || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
python_fix_shebang "${ED}"
|
||||
if use static-analyzer; then
|
||||
python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
|
||||
fi
|
||||
|
||||
docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
|
||||
llvm_install_manpages
|
||||
# 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/${LLVM_MAJOR}/share/man/man1/scan-build.1"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
|
||||
eselect compiler-shadow update all
|
||||
fi
|
||||
|
||||
elog "You can find additional utility scripts in:"
|
||||
elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
|
||||
if use extra; then
|
||||
elog "Some of them are vim integration scripts (with instructions inside)."
|
||||
elog "The run-clang-tidy.py script requires the following additional package:"
|
||||
elog " dev-python/pyyaml"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
|
||||
eselect compiler-shadow clean all
|
||||
fi
|
||||
}
|
||||
@@ -5,4 +5,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
101
llvm-core/flang/flang-23.1.0_rc3.ebuild
Normal file
101
llvm-core/flang/flang-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,101 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="LLVM's Fortran frontend"
|
||||
HOMEPAGE="https://flang.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="+clang +debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~llvm-core/clang-${PV}[debug=]
|
||||
~llvm-core/llvm-${PV}[debug=]
|
||||
~llvm-core/mlir-${PV}[debug=]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
PDEPEND="
|
||||
>=llvm-runtimes/flang-rt-${PV}:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
clang? ( llvm-core/clang )
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( flang cmake )
|
||||
LLVM_TEST_COMPONENTS=( clang/test/Driver mlir/test/lib )
|
||||
LLVM_USE_TARGETS=llvm+eq
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if ! use clang && tc-is-gcc; then
|
||||
ewarn "Building using GCC requires lots of memory (up to 10 GiB per process)."
|
||||
ewarn "Consider enabling USE=clang."
|
||||
ewarn "See https://gcc.gnu.org/PR119705"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use clang; then
|
||||
# Only do this conditionally to allow overriding with
|
||||
# e.g. CC=clang-13 in case of breakage
|
||||
if ! tc-is-clang ; then
|
||||
local -x CC=${CHOST}-clang
|
||||
local -x CXX=${CHOST}-clang++
|
||||
fi
|
||||
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DMLIR_LINK_MLIR_DYLIB=ON
|
||||
# flang does not feature a dylib, so do not install libraries
|
||||
# or headers
|
||||
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
|
||||
# installed by llvm-runtimes/flang-rt
|
||||
-DFLANG_INCLUDE_RUNTIME=OFF
|
||||
|
||||
# TODO: always enable to obtain reproducible tools
|
||||
-DFLANG_INCLUDE_TESTS=$(usex test)
|
||||
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-flang
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
95
llvm-core/lld/lld-23.1.0_rc3.ebuild
Normal file
95
llvm-core/lld/lld-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,95 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="The LLVM linker (link editor)"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="+debug test zstd"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~llvm-core/llvm-${PV}[debug=,zstd=]
|
||||
virtual/zlib:=
|
||||
zstd? ( app-arch/zstd:= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
!llvm-core/lld:0
|
||||
"
|
||||
BDEPEND="
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
PDEPEND="
|
||||
>=llvm-core/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
|
||||
LLVM_TEST_COMPONENTS=( llvm/utils/dtlto )
|
||||
LLVM_USE_TARGETS=llvm+eq
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
llvm.org_src_unpack
|
||||
|
||||
# Directory ${WORKDIR}/llvm does not exist with USE="-test",
|
||||
# but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
|
||||
# and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
|
||||
# (lld/MachO/CMakeLists.txt) and is expected to be resolvable
|
||||
# to existent directory ${WORKDIR}/libunwind/include.
|
||||
mkdir -p "${WORKDIR}/llvm" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
# https://gcc.gnu.org/PR121495 (bug #958469)
|
||||
use arm64 && tc-is-gcc && [[ $(gcc-major-version) -ge 14 ]] && append-flags -mearly-ra=none
|
||||
|
||||
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DLLVM_INCLUDE_TESTS=$(usex test)
|
||||
-DLLVM_ENABLE_ZLIB=FORCE_ON
|
||||
-DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
)
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
|
||||
tc-is-cross-compiler && mycmakeargs+=(
|
||||
-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-lld
|
||||
}
|
||||
@@ -14,4 +14,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
116
llvm-core/lldb/lldb-23.1.0_rc3.ebuild
Normal file
116
llvm-core/lldb/lldb-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,116 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org python-single-r1
|
||||
|
||||
DESCRIPTION="The LLVM debugger"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
IUSE="+debug debuginfod +libedit lzma ncurses +python test +tree-sitter +xml"
|
||||
RESTRICT="test"
|
||||
REQUIRED_USE=${PYTHON_REQUIRED_USE}
|
||||
|
||||
DEPEND="
|
||||
debuginfod? (
|
||||
net-misc/curl:=
|
||||
dev-cpp/cpp-httplib:=
|
||||
)
|
||||
libedit? ( dev-libs/libedit:0= )
|
||||
lzma? ( app-arch/xz-utils:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
|
||||
tree-sitter? ( dev-libs/tree-sitter:= )
|
||||
xml? ( dev-libs/libxml2:= )
|
||||
~llvm-core/clang-${PV}
|
||||
~llvm-core/llvm-${PV}[debuginfod=]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
python? (
|
||||
>=dev-lang/swig-3.0.11
|
||||
)
|
||||
test? (
|
||||
$(python_gen_cond_dep "
|
||||
~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
|
||||
dev-python/psutil[\${PYTHON_USEDEP}]
|
||||
")
|
||||
llvm-core/lld
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( lldb cmake llvm/utils )
|
||||
LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
|
||||
LLVM_USE_TARGETS=llvm+eq
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
# bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
|
||||
filter-lto
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DClang_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DLLDB_ENABLE_CURSES=$(usex ncurses)
|
||||
-DLLDB_ENABLE_LIBEDIT=$(usex libedit)
|
||||
-DLLDB_ENABLE_PYTHON=$(usex python)
|
||||
-DLLDB_ENABLE_LUA=OFF
|
||||
-DLLDB_ENABLE_LZMA=$(usex lzma)
|
||||
-DLLDB_ENABLE_LIBXML2=$(usex xml)
|
||||
-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
|
||||
-DLLVM_ENABLE_TREESITTER=$(usex tree-sitter)
|
||||
|
||||
-DLLDB_INCLUDE_TESTS=$(usex test)
|
||||
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
|
||||
-DCLANG_LINK_CLANG_DYLIB=ON
|
||||
# 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
|
||||
|
||||
-DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
|
||||
|
||||
-DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-lldb-{shell,unit}
|
||||
# failures + hangs
|
||||
#use python && cmake_build check-lldb-api
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
find "${D}" -name '*.a' -delete || die
|
||||
|
||||
use python && python_optimize
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
53
llvm-core/llvm-common/llvm-common-23.1.0_rc3.ebuild
Normal file
53
llvm-core/llvm-common/llvm-common-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,53 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp-common llvm.org
|
||||
|
||||
DESCRIPTION="Common files shared between multiple slots of LLVM"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
IUSE="emacs"
|
||||
|
||||
RDEPEND="
|
||||
!llvm-core/llvm:0
|
||||
"
|
||||
BDEPEND="
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm/utils )
|
||||
llvm.org_set_globals
|
||||
|
||||
SITEFILE="50llvm-gentoo.el"
|
||||
BYTECOMPFLAGS="-L emacs"
|
||||
|
||||
src_compile() {
|
||||
default
|
||||
|
||||
use emacs && elisp-compile emacs/*.el
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /usr/share/vim/vimfiles
|
||||
doins -r vim/*/
|
||||
# some users may find it useful
|
||||
newdoc vim/README README.vim
|
||||
dodoc vim/vimrc
|
||||
|
||||
if use emacs ; then
|
||||
elisp-install llvm emacs/*.{el,elc}
|
||||
elisp-make-site-file "${SITEFILE}" llvm
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
@@ -21,4 +21,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
572
llvm-core/llvm/llvm-23.1.0_rc3.ebuild
Normal file
572
llvm-core/llvm/llvm-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,572 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Low Level Virtual Machine"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
# Additional licenses:
|
||||
# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
|
||||
# 2. xxhash: BSD.
|
||||
# 3. MD5 code: public-domain.
|
||||
# 4. ConvertUTF.h: TODO.
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="
|
||||
+binutils-plugin +debug debuginfod doc exegesis libedit +libffi
|
||||
test xml z3 zstd
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
virtual/zlib:=[${MULTILIB_USEDEP}]
|
||||
debuginfod? (
|
||||
net-misc/curl:=
|
||||
dev-cpp/cpp-httplib:=
|
||||
)
|
||||
exegesis? ( dev-libs/libpfm:= )
|
||||
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
|
||||
libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
|
||||
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
|
||||
z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
binutils-plugin? ( sys-libs/binutils-libs )
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/perl
|
||||
sys-devel/gnuconfig
|
||||
kernel_Darwin? (
|
||||
<llvm-runtimes/libcxx-${LLVM_VERSION}.9999
|
||||
)
|
||||
libffi? ( virtual/pkgconfig )
|
||||
"
|
||||
# There are no file collisions between these versions but having :0
|
||||
# installed means llvm-config there will take precedence.
|
||||
RDEPEND="
|
||||
${RDEPEND}
|
||||
!llvm-core/llvm:0
|
||||
"
|
||||
PDEPEND="
|
||||
llvm-core/llvm-common
|
||||
llvm-core/llvm-toolchain-symlinks:${LLVM_MAJOR}
|
||||
binutils-plugin? ( >=llvm-core/llvmgold-${LLVM_MAJOR} )
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm cmake libc mlir/utils/pygments third-party utils/docs )
|
||||
LLVM_MANPAGES=1
|
||||
LLVM_USE_TARGETS=provide
|
||||
llvm.org_set_globals
|
||||
|
||||
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
|
||||
BDEPEND+="
|
||||
$(python_gen_any_dep '
|
||||
dev-python/myst-parser[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
|
||||
|
||||
python_check_deps() {
|
||||
llvm_are_manpages_built || return 0
|
||||
|
||||
python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" &&
|
||||
python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
check_uptodate() {
|
||||
local prod_targets=(
|
||||
$(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
|
||||
| tail -n +2 | head -n -1)
|
||||
)
|
||||
local all_targets=(
|
||||
lib/Target/*/
|
||||
)
|
||||
all_targets=( "${all_targets[@]#lib/Target/}" )
|
||||
all_targets=( "${all_targets[@]%/}" )
|
||||
|
||||
local exp_targets=() i
|
||||
for i in "${all_targets[@]}"; do
|
||||
has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
|
||||
done
|
||||
|
||||
local outdated
|
||||
if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
|
||||
eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
|
||||
eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
|
||||
eerror "Expected: ${exp_targets[*]}"
|
||||
eerror
|
||||
outdated=1
|
||||
fi
|
||||
|
||||
if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
|
||||
eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
|
||||
eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
|
||||
eerror "Expected: ${prod_targets[*]}"
|
||||
outdated=1
|
||||
fi
|
||||
|
||||
[[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
|
||||
}
|
||||
|
||||
check_distribution_components() {
|
||||
if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
|
||||
local all_targets=() my_targets=() l
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
while read -r l; do
|
||||
if [[ ${l} == install-*-stripped:* ]]; then
|
||||
l=${l#install-}
|
||||
l=${l%%-stripped*}
|
||||
|
||||
case ${l} in
|
||||
# shared libs
|
||||
LLVM|LLVMgold)
|
||||
;;
|
||||
# TableGen lib + deps
|
||||
LLVMDemangle|LLVMSupport|LLVMSupportLSP|LLVMTableGen)
|
||||
;;
|
||||
# for mlir-tblgen
|
||||
LLVMCodeGenTypes)
|
||||
;;
|
||||
# used by lldb
|
||||
LLVMDebuginfod|LLVMHTTP)
|
||||
;;
|
||||
# testing libraries
|
||||
LLVMTestingAnnotations|LLVMTestingSupport)
|
||||
;;
|
||||
# static libs
|
||||
LLVM*)
|
||||
continue
|
||||
;;
|
||||
# meta-targets
|
||||
distribution|llvm-libraries)
|
||||
continue
|
||||
;;
|
||||
# used only w/ USE=doc
|
||||
docs-llvm-html)
|
||||
use doc || continue
|
||||
;;
|
||||
# used only w/ USE=debuginfd
|
||||
llvm-debuginfod)
|
||||
use debuginfod || continue
|
||||
;;
|
||||
# used only w/ USE=xml
|
||||
llvm-mt)
|
||||
use xml || continue
|
||||
;;
|
||||
esac
|
||||
|
||||
all_targets+=( "${l}" )
|
||||
fi
|
||||
done < <(${NINJA} -t targets all)
|
||||
|
||||
while read -r l; do
|
||||
my_targets+=( "${l}" )
|
||||
done < <(get_distribution_components $"\n")
|
||||
|
||||
local add=() remove=()
|
||||
for l in "${all_targets[@]}"; do
|
||||
if ! has "${l}" "${my_targets[@]}"; then
|
||||
add+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
for l in "${my_targets[@]}"; do
|
||||
if ! has "${l}" "${all_targets[@]}"; then
|
||||
remove+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
|
||||
eerror "get_distribution_components() is outdated!"
|
||||
eerror " Add: ${add[*]}"
|
||||
eerror "Remove: ${remove[*]}"
|
||||
die "Update get_distribution_components()!"
|
||||
fi
|
||||
cd - >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# disable use of SDK on OSX, bug #568758
|
||||
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
|
||||
|
||||
# Update config.guess to support more systems
|
||||
cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
|
||||
|
||||
# Disable lit tests (we run them in dev-python/lit).
|
||||
> utils/lit/CMakeLists.txt || die
|
||||
|
||||
# Verify that the ebuild is up-to-date
|
||||
check_uptodate
|
||||
|
||||
llvm.org_src_prepare
|
||||
}
|
||||
|
||||
get_distribution_components() {
|
||||
local sep=${1-;}
|
||||
|
||||
local out=(
|
||||
# shared libs
|
||||
LLVM
|
||||
LTO
|
||||
Remarks
|
||||
|
||||
# tools
|
||||
llvm-config
|
||||
|
||||
# common stuff
|
||||
cmake-exports
|
||||
llvm-headers
|
||||
|
||||
# libraries needed for clang-tblgen
|
||||
LLVMDemangle
|
||||
LLVMSupport
|
||||
LLVMTableGen
|
||||
# mlir-tblgen
|
||||
LLVMCodeGenTypes
|
||||
LLVMSupportLSP
|
||||
|
||||
# testing libraries
|
||||
llvm_gtest
|
||||
llvm_gtest_main
|
||||
LLVMTestingAnnotations
|
||||
LLVMTestingSupport
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
out+=(
|
||||
# library used by lldb
|
||||
LLVMDebuginfod
|
||||
LLVMHTTP
|
||||
|
||||
# utilities
|
||||
llvm-tblgen
|
||||
llvm-test-mustache-spec
|
||||
FileCheck
|
||||
llvm-PerfectShuffle
|
||||
count
|
||||
not
|
||||
yaml-bench
|
||||
UnicodeNameMappingGenerator
|
||||
|
||||
# tools
|
||||
clang-offload-packager
|
||||
dsymutil
|
||||
llc
|
||||
lli
|
||||
lli-child-target
|
||||
llubi
|
||||
llvm-addr2line
|
||||
llvm-ar
|
||||
llvm-as
|
||||
llvm-bcanalyzer
|
||||
llvm-bitcode-strip
|
||||
llvm-c-test
|
||||
llvm-cas
|
||||
llvm-cat
|
||||
llvm-cfi-verify
|
||||
llvm-cgdata
|
||||
llvm-config
|
||||
llvm-cov
|
||||
llvm-ctxprof-util
|
||||
llvm-cvtres
|
||||
llvm-cxxdump
|
||||
llvm-cxxfilt
|
||||
llvm-cxxmap
|
||||
llvm-debuginfo-analyzer
|
||||
llvm-debuginfod-find
|
||||
llvm-diff
|
||||
llvm-dis
|
||||
llvm-dlltool
|
||||
llvm-dwarfdump
|
||||
llvm-dwarfutil
|
||||
llvm-dwp
|
||||
llvm-exegesis
|
||||
llvm-extract
|
||||
llvm-extract-bundle-entry
|
||||
llvm-gpu-loader
|
||||
llvm-gsymutil
|
||||
llvm-ifs
|
||||
llvm-install-name-tool
|
||||
llvm-ir2vec
|
||||
llvm-jitlink
|
||||
llvm-jitlink-executor
|
||||
llvm-lib
|
||||
llvm-libtool-darwin
|
||||
llvm-link
|
||||
llvm-lipo
|
||||
llvm-lto
|
||||
llvm-lto2
|
||||
llvm-mc
|
||||
llvm-mca
|
||||
llvm-ml
|
||||
llvm-ml64
|
||||
llvm-modextract
|
||||
llvm-nm
|
||||
llvm-objcopy
|
||||
llvm-objdump
|
||||
llvm-offload-binary
|
||||
llvm-offload-wrapper
|
||||
llvm-opt-report
|
||||
llvm-otool
|
||||
llvm-pdbutil
|
||||
llvm-profdata
|
||||
llvm-profgen
|
||||
llvm-ranlib
|
||||
llvm-rc
|
||||
llvm-readelf
|
||||
llvm-readobj
|
||||
llvm-readtapi
|
||||
llvm-reduce
|
||||
llvm-remarkutil
|
||||
llvm-rtdyld
|
||||
llvm-sim
|
||||
llvm-size
|
||||
llvm-split
|
||||
llvm-stress
|
||||
llvm-strings
|
||||
llvm-strip
|
||||
llvm-symbolizer
|
||||
llvm-tli-checker
|
||||
llvm-undname
|
||||
llvm-windres
|
||||
llvm-xray
|
||||
obj2yaml
|
||||
opt
|
||||
reduce-chunk-list
|
||||
sancov
|
||||
sanstats
|
||||
split-file
|
||||
verify-uselistorder
|
||||
yaml2obj
|
||||
|
||||
# python modules
|
||||
opt-viewer
|
||||
)
|
||||
|
||||
if llvm_are_manpages_built; then
|
||||
out+=(
|
||||
# manpages
|
||||
docs-dsymutil-man
|
||||
docs-llvm-dwarfdump-man
|
||||
docs-llvm-man
|
||||
)
|
||||
fi
|
||||
use doc && out+=(
|
||||
docs-llvm-html
|
||||
)
|
||||
|
||||
use binutils-plugin && out+=(
|
||||
LLVMgold
|
||||
)
|
||||
use debuginfod && out+=(
|
||||
llvm-debuginfod
|
||||
)
|
||||
use xml && out+=(
|
||||
llvm-mt
|
||||
)
|
||||
fi
|
||||
|
||||
printf "%s${sep}" "${out[@]}"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# ODR violations (bug #917536, bug #926529). Just do it for GCC for now
|
||||
# to avoid people grumbling. GCC is, anecdotally, more likely to miscompile
|
||||
# LLVM with LTO anyway (which is not necessarily its fault).
|
||||
tc-is-gcc && filter-lto
|
||||
|
||||
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/${LLVM_MAJOR}"
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON
|
||||
-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
|
||||
|
||||
# cheap hack: LLVM combines both anyway, and the only difference
|
||||
# is that the former list is explicitly verified at cmake time
|
||||
-DLLVM_TARGETS_TO_BUILD=""
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
-DLLVM_INCLUDE_BENCHMARKS=OFF
|
||||
-DLLVM_INCLUDE_TESTS=ON
|
||||
-DLLVM_BUILD_TESTS=$(usex test)
|
||||
-DLLVM_INSTALL_GTEST=ON
|
||||
|
||||
-DLLVM_ENABLE_FFI=$(usex libffi)
|
||||
-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
|
||||
-DLLVM_ENABLE_LIBXML2=$(usex xml)
|
||||
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
|
||||
-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
-DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
|
||||
-DLLVM_ENABLE_ZLIB=FORCE_ON
|
||||
-DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
|
||||
-DLLVM_ENABLE_CURL=$(usex debuginfod)
|
||||
-DLLVM_ENABLE_HTTPLIB=$(usex debuginfod)
|
||||
-DLLVM_UNREACHABLE_OPTIMIZE=OFF
|
||||
|
||||
-DLLVM_HOST_TRIPLE="${CHOST}"
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
|
||||
# disable OCaml bindings (now in dev-ml/llvm)
|
||||
-DOCAMLFIND=NO
|
||||
)
|
||||
|
||||
local suffix=
|
||||
if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
|
||||
# the ABI of the main branch is not stable, so let's include
|
||||
# the commit id in the SOVERSION to contain the breakage
|
||||
suffix+="git${EGIT_VERSION::8}"
|
||||
fi
|
||||
if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
|
||||
# Smart hack: alter version suffix -> SOVERSION when linking
|
||||
# against libc++. This way we won't end up mixing LLVM libc++
|
||||
# libraries with libstdc++ clang, and the other way around.
|
||||
suffix+="+libcxx"
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ENABLE_LIBCXX=ON
|
||||
)
|
||||
fi
|
||||
mycmakeargs+=(
|
||||
-DLLVM_VERSION_SUFFIX="${suffix}"
|
||||
)
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
local build_docs=OFF
|
||||
if llvm_are_manpages_built; then
|
||||
build_docs=ON
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
|
||||
-DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
|
||||
-DSPHINX_WARNINGS_AS_ERRORS=OFF
|
||||
)
|
||||
fi
|
||||
|
||||
mycmakeargs+=(
|
||||
-DLLVM_BUILD_DOCS=${build_docs}
|
||||
-DLLVM_ENABLE_OCAMLDOC=OFF
|
||||
-DLLVM_ENABLE_SPHINX=${build_docs}
|
||||
-DLLVM_ENABLE_DOXYGEN=OFF
|
||||
-DLLVM_INSTALL_UTILS=ON
|
||||
)
|
||||
use binutils-plugin && mycmakeargs+=(
|
||||
-DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
|
||||
)
|
||||
fi
|
||||
|
||||
use kernel_Darwin && mycmakeargs+=(
|
||||
# Use our libtool instead of looking it up with xcrun
|
||||
-DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
|
||||
)
|
||||
|
||||
# LLVM can have very high memory consumption while linking,
|
||||
# exhausting the limit on 32-bit linker executable
|
||||
use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
|
||||
grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
|
||||
CMakeCache.txt ||
|
||||
die "Incorrect version, did you update _LLVM_MAIN_MAJOR?"
|
||||
multilib_is_native_abi && check_distribution_components
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
tc-env_build cmake_build distribution
|
||||
|
||||
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_build check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local MULTILIB_CHOST_TOOLS=(
|
||||
/usr/lib/llvm/${LLVM_MAJOR}/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/${LLVM_MAJOR}/include || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
DESTDIR=${D} cmake_build install-distribution
|
||||
|
||||
# move headers to /usr/include for wrapping
|
||||
rm -rf "${ED}"/usr/include || die
|
||||
mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
|
||||
|
||||
LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local revord=$(( 9999 - ${LLVM_MAJOR} ))
|
||||
newenvd - "60llvm-${revord}" <<-_EOF_
|
||||
PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
|
||||
# we need to duplicate it in ROOTPATH for Portage to respect...
|
||||
ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
|
||||
MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
|
||||
LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
|
||||
_EOF_
|
||||
|
||||
docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
|
||||
llvm_install_manpages
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "You can find additional opt-viewer utility scripts in:"
|
||||
elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
|
||||
elog "To use these scripts, you will need Python along with the following"
|
||||
elog "packages:"
|
||||
elog " dev-python/pygments (for opt-viewer)"
|
||||
elog " dev-python/pyyaml (for all of them)"
|
||||
}
|
||||
@@ -5,4 +5,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
232
llvm-core/mlir/mlir-23.1.0_rc3.ebuild
Normal file
232
llvm-core/mlir/mlir-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,232 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake llvm.org multilib-minimal python-any-r1
|
||||
|
||||
DESCRIPTION="Multi-Level Intermediate Representation (library only)"
|
||||
HOMEPAGE="https://mlir.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="+debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( mlir cmake )
|
||||
# tablegen tests use *.td files there
|
||||
LLVM_TEST_COMPONENTS=( llvm/include )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
if use test; then
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
llvm.org_src_prepare
|
||||
|
||||
# https://github.com/llvm/llvm-project/issues/120902
|
||||
sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \
|
||||
lib/ExecutionEngine/CMakeLists.txt || die
|
||||
|
||||
# this test is completely unpredictable, no clue why
|
||||
rm test/mlir-pdll-lsp-server/view-output.test || die
|
||||
}
|
||||
|
||||
check_distribution_components() {
|
||||
if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
|
||||
local all_targets=() my_targets=() l
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
while read -r l; do
|
||||
if [[ ${l} == install-*-stripped:* ]]; then
|
||||
l=${l#install-}
|
||||
l=${l%%-stripped*}
|
||||
|
||||
case ${l} in
|
||||
# meta-targets
|
||||
mlir-libraries|distribution)
|
||||
continue
|
||||
;;
|
||||
# dylib
|
||||
MLIR)
|
||||
;;
|
||||
# installed test libraries
|
||||
MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR)
|
||||
;;
|
||||
MLIROpenACCTestPasses)
|
||||
;;
|
||||
# static libraries
|
||||
MLIR*)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
all_targets+=( "${l}" )
|
||||
fi
|
||||
done < <(${NINJA} -t targets all)
|
||||
|
||||
while read -r l; do
|
||||
my_targets+=( "${l}" )
|
||||
done < <(get_distribution_components $"\n")
|
||||
|
||||
local add=() remove=()
|
||||
for l in "${all_targets[@]}"; do
|
||||
if ! has "${l}" "${my_targets[@]}"; then
|
||||
add+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
for l in "${my_targets[@]}"; do
|
||||
if ! has "${l}" "${all_targets[@]}"; then
|
||||
remove+=( "${l}" )
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
|
||||
eqawarn "get_distribution_components() is outdated!"
|
||||
eqawarn " Add: ${add[*]}"
|
||||
eqawarn "Remove: ${remove[*]}"
|
||||
fi
|
||||
cd - >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
get_distribution_components() {
|
||||
local sep=${1-;}
|
||||
|
||||
local out=(
|
||||
mlir-cmake-exports
|
||||
mlir-headers
|
||||
|
||||
# the dylib
|
||||
MLIR
|
||||
|
||||
# shared libraries
|
||||
mlir_apfloat_wrappers
|
||||
mlir_arm_runner_utils
|
||||
mlir_arm_sme_abi_stubs
|
||||
mlir_async_runtime
|
||||
mlir_c_runner_utils
|
||||
mlir_float16_utils
|
||||
mlir_runner_utils
|
||||
|
||||
# test libraries required by flang
|
||||
MLIROpenACCTestPasses
|
||||
MLIRTestAnalysis
|
||||
MLIRTestDialect
|
||||
MLIRTestIR
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
out+=(
|
||||
# tools
|
||||
mlir-linalg-ods-yaml-gen
|
||||
mlir-lsp-server
|
||||
mlir-opt
|
||||
mlir-pdll
|
||||
mlir-pdll-lsp-server
|
||||
mlir-query
|
||||
mlir-reduce
|
||||
mlir-rewrite
|
||||
mlir-runner
|
||||
mlir-tblgen
|
||||
mlir-translate
|
||||
tblgen-lsp-server
|
||||
tblgen-to-irdl
|
||||
)
|
||||
fi
|
||||
|
||||
printf "%s${sep}" "${out[@]}"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
# this controls building libMLIR.so
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON
|
||||
-DMLIR_BUILD_MLIR_C_DYLIB=OFF
|
||||
-DMLIR_LINK_MLIR_DYLIB=ON
|
||||
-DMLIR_INCLUDE_TESTS=ON
|
||||
-DMLIR_INCLUDE_INTEGRATION_TESTS=OFF
|
||||
-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
|
||||
# this enables installing mlir-tblgen and mlir-pdll
|
||||
-DLLVM_BUILD_UTILS=ON
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
|
||||
-DLLVM_BUILD_TOOLS=ON
|
||||
# TODO
|
||||
-DMLIR_ENABLE_CUDA_RUNNER=0
|
||||
-DMLIR_ENABLE_ROCM_RUNNER=0
|
||||
-DMLIR_ENABLE_SYCL_RUNNER=0
|
||||
-DMLIR_ENABLE_SPIRV_CPU_RUNNER=0
|
||||
-DMLIR_ENABLE_VULKAN_RUNNER=0
|
||||
-DMLIR_ENABLE_BINDINGS_PYTHON=0
|
||||
-DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
|
||||
multilib_is_native_abi && check_distribution_components
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
cmake_build distribution
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local known_xfail=()
|
||||
|
||||
case ${ABI} in
|
||||
arm|ppc|x86)
|
||||
known_xfail+=(
|
||||
# MLIR is full of 64-bit assumptions, sigh
|
||||
# https://github.com/llvm/llvm-project/issues/124541
|
||||
Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir
|
||||
Dialect/LLVMIR/sroa-statistics.mlir
|
||||
Dialect/Linalg/vectorize-tensor-extract.mlir
|
||||
Dialect/MemRef/mem2reg-statistics.mlir
|
||||
Dialect/Tensor/fold-tensor-subset-ops.mlir
|
||||
Dialect/Tensor/tracking-listener.mlir
|
||||
Pass/pipeline-stats-nested.mlir
|
||||
Pass/pipeline-stats.mlir
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
local -x LIT_XFAIL="${known_xfail[*]}"
|
||||
LIT_XFAIL=${LIT_XFAIL// /;}
|
||||
cmake_build check-mlir
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
DESTDIR=${D} cmake_build install-distribution
|
||||
}
|
||||
@@ -7,4 +7,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
59
llvm-core/polly/polly-23.1.0_rc3.ebuild
Normal file
59
llvm-core/polly/polly-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,59 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit cmake llvm.org python-any-r1
|
||||
|
||||
DESCRIPTION="Polyhedral optimizations for LLVM"
|
||||
HOMEPAGE="https://polly.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
# vendored isl (fork?)
|
||||
LICENSE+=" MIT"
|
||||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
|
||||
IUSE="+debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( polly cmake )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-polly
|
||||
}
|
||||
@@ -19,4 +19,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
@@ -0,0 +1,237 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
|
||||
|
||||
DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="${LLVM_MAJOR}"
|
||||
IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
|
||||
# base targets
|
||||
IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
|
||||
# sanitizer targets, keep in sync with config-ix.cmake
|
||||
# NB: ubsan, scudo deliberately match two entries
|
||||
SANITIZER_FLAGS=(
|
||||
asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo
|
||||
shadowcallstack gwp-asan nsan rtsan
|
||||
)
|
||||
IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
|
||||
REQUIRED_USE="
|
||||
|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
|
||||
test? (
|
||||
cfi? ( ubsan )
|
||||
gwp-asan? ( scudo )
|
||||
)
|
||||
"
|
||||
RESTRICT="
|
||||
!clang? ( test )
|
||||
!test? ( test )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
|
||||
"
|
||||
BDEPEND="
|
||||
clang? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/clang-linker-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/compiler-rt:${LLVM_MAJOR}
|
||||
)
|
||||
elibc_glibc? ( net-libs/libtirpc )
|
||||
test? (
|
||||
$(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
|
||||
=llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
|
||||
LLVM_TEST_COMPONENTS=(
|
||||
llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
check_space() {
|
||||
if use test; then
|
||||
local CHECKREQS_DISK_BUILD=11G
|
||||
check-reqs_pkg_pretend
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
check_space
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
check_space
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
|
||||
|
||||
# builds freestanding code
|
||||
filter-flags -fstack-protector*
|
||||
|
||||
local flag
|
||||
for flag in "${SANITIZER_FLAGS[@]}"; do
|
||||
if ! use "${flag}"; then
|
||||
local cmake_flag=${flag/-/_}
|
||||
sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \
|
||||
cmake/config-ix.cmake || die
|
||||
fi
|
||||
done
|
||||
|
||||
# TODO: fix these tests to be skipped upstream
|
||||
if use asan && ! use profile; then
|
||||
rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die
|
||||
fi
|
||||
if use ubsan && ! use cfi; then
|
||||
> test/cfi/CMakeLists.txt || die
|
||||
fi
|
||||
|
||||
llvm.org_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
# pre-set since we need to pass it to cmake
|
||||
BUILD_DIR=${WORKDIR}/compiler-rt_build
|
||||
|
||||
if use clang; then
|
||||
local -x CC=${CHOST}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
|
||||
strip-unsupported-flags
|
||||
|
||||
# The full clang configuration might not be ready yet. Use the partial
|
||||
# configuration files that are guaranteed to exist even during initial
|
||||
# installations and upgrades.
|
||||
local flags=(
|
||||
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
|
||||
)
|
||||
local -x CFLAGS="${CFLAGS} ${flags[@]}"
|
||||
local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
|
||||
local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
|
||||
fi
|
||||
|
||||
local flag want_sanitizer=OFF
|
||||
for flag in "${SANITIZER_FLAGS[@]}"; do
|
||||
if use "${flag}"; then
|
||||
want_sanitizer=ON
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
|
||||
# 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/${LLVM_MAJOR}"
|
||||
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
|
||||
# builtins & crt installed by llvm-runtimes/compiler-rt
|
||||
-DCOMPILER_RT_BUILD_BUILTINS=OFF
|
||||
-DCOMPILER_RT_BUILD_CRT=OFF
|
||||
-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
|
||||
-DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
|
||||
-DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
|
||||
-DCOMPILER_RT_BUILD_ORC=$(usex orc)
|
||||
-DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
|
||||
-DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
|
||||
-DCOMPILER_RT_BUILD_XRAY=$(usex xray)
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
|
||||
if use amd64; then
|
||||
mycmakeargs+=(
|
||||
-DCAN_TARGET_i386=$(usex abi_x86_32)
|
||||
-DCAN_TARGET_x86_64=$(usex abi_x86_64)
|
||||
)
|
||||
fi
|
||||
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
|
||||
# they are created during src_test()
|
||||
-DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang"
|
||||
-DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/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_MAJOR}/bin/clang \
|
||||
CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++ \
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
|
||||
mycmakeargs+=(
|
||||
# setting -isysroot is disabled with compiler-rt-prefix-paths.patch
|
||||
# this allows adding arm64 support using SDK in EPREFIX
|
||||
-DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
|
||||
# Set version based on the SDK in EPREFIX
|
||||
# This disables i386 for SDK >= 10.15
|
||||
# Will error if has_use tsan and SDK < 10.12
|
||||
-DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
|
||||
# Use our libtool instead of looking it up with xcrun
|
||||
-DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
|
||||
if use test; then
|
||||
local sys_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
|
||||
[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
|
||||
[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
|
||||
local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
|
||||
[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
|
||||
|
||||
# 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_MAJOR}/{bin,$(get_libdir)},clang/${LLVM_MAJOR}/include} || die
|
||||
cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/bin/clang{,++} \
|
||||
"${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
|
||||
cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
|
||||
"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
|
||||
cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || die
|
||||
# we also need LLVMgold.so for gold-based tests
|
||||
if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so ]]; then
|
||||
ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so \
|
||||
"${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/ || die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
# disable sandbox to have it stop clobbering LD_PRELOAD
|
||||
local -x SANDBOX_ON=0
|
||||
# wipe LD_PRELOAD to make ASAN happy
|
||||
local -x LD_PRELOAD=
|
||||
|
||||
cmake_build check-all
|
||||
}
|
||||
@@ -14,4 +14,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
190
llvm-runtimes/compiler-rt/compiler-rt-23.1.0_rc3.ebuild
Normal file
190
llvm-runtimes/compiler-rt/compiler-rt-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,190 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Compiler runtime library for clang (built-in part)"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="${LLVM_MAJOR}"
|
||||
IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang +debug test"
|
||||
REQUIRED_USE="atomic-builtins? ( clang )"
|
||||
RESTRICT="!test? ( test ) !clang? ( test )"
|
||||
|
||||
DEPEND="
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
clang? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/clang-linker-config:${LLVM_MAJOR}
|
||||
)
|
||||
test? (
|
||||
$(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
|
||||
=llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash )
|
||||
LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
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() {
|
||||
if target_is_not_host || tc-is-cross-compiler ; then
|
||||
# strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
|
||||
CHOST=${CTARGET} strip-unsupported-flags
|
||||
# overrides host docs otherwise
|
||||
DOCS=()
|
||||
fi
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
test_compiler() {
|
||||
target_is_not_host && return
|
||||
$(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
|
||||
<<<'int main() { return 0; }' &>/dev/null
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use clang || use test; then
|
||||
llvm_prepend_path -b "${LLVM_MAJOR}"
|
||||
fi
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
# pre-set since we need to pass it to cmake
|
||||
BUILD_DIR=${WORKDIR}/${P}_build
|
||||
|
||||
if use clang && ! is_crosspkg; then
|
||||
# Only do this conditionally to allow overriding with
|
||||
# e.g. CC=clang-13 in case of breakage
|
||||
if ! tc-is-clang ; then
|
||||
local -x CC=${CHOST}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
|
||||
fi
|
||||
|
||||
strip-unsupported-flags
|
||||
|
||||
# The full clang configuration might not be ready yet. Given that compiler-rt
|
||||
# require runtime, use only the linker configuration.
|
||||
local flags=(
|
||||
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-linker.cfg
|
||||
)
|
||||
local -x CFLAGS="${CFLAGS} ${flags[@]}"
|
||||
local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
|
||||
local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
|
||||
fi
|
||||
|
||||
if ! is_crosspkg && ! test_compiler ; then
|
||||
local nolib_flags=( -nodefaultlibs -lc )
|
||||
|
||||
if test_compiler "${nolib_flags[@]}"; then
|
||||
local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
|
||||
ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
|
||||
elif test_compiler "${nolib_flags[@]}" -nostartfiles; then
|
||||
# Avoiding -nostartfiles earlier on for bug #862540,
|
||||
# and set available entry symbol for bug #862798.
|
||||
nolib_flags+=( -nostartfiles -e main )
|
||||
|
||||
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/${LLVM_MAJOR}"
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins)
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
|
||||
-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
|
||||
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
|
||||
-DCOMPILER_RT_BUILD_MEMPROF=OFF
|
||||
-DCOMPILER_RT_BUILD_ORC=OFF
|
||||
-DCOMPILER_RT_BUILD_PROFILE=OFF
|
||||
-DCOMPILER_RT_BUILD_SANITIZERS=OFF
|
||||
-DCOMPILER_RT_BUILD_XRAY=OFF
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
|
||||
if use amd64 && ! target_is_not_host; then
|
||||
mycmakeargs+=(
|
||||
-DCAN_TARGET_i386=$(usex abi_x86_32)
|
||||
-DCAN_TARGET_x86_64=$(usex abi_x86_64)
|
||||
)
|
||||
fi
|
||||
|
||||
if is_crosspkg; then
|
||||
# Needed to target built libc headers
|
||||
export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include"
|
||||
mycmakeargs+=(
|
||||
# Without this, the compiler will compile a test program
|
||||
# and fail due to no builtins.
|
||||
-DCMAKE_C_COMPILER_WORKS=1
|
||||
-DCMAKE_CXX_COMPILER_WORKS=1
|
||||
|
||||
# Without this, compiler-rt install location is not unique
|
||||
# to target triples, only to architecture.
|
||||
# Needed if you want to target multiple libcs for one arch.
|
||||
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
|
||||
|
||||
-DCMAKE_ASM_COMPILER_TARGET="${CTARGET}"
|
||||
-DCMAKE_C_COMPILER_TARGET="${CTARGET}"
|
||||
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
)
|
||||
fi
|
||||
|
||||
if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
|
||||
mycmakeargs+=(
|
||||
# setting -isysroot is disabled with compiler-rt-prefix-paths.patch
|
||||
# this allows adding arm64 support using SDK in EPREFIX
|
||||
-DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
|
||||
# Set version based on the SDK in EPREFIX.
|
||||
# This disables i386 for SDK >= 10.15
|
||||
-DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
|
||||
# Use our libtool instead of looking it up with xcrun
|
||||
-DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
|
||||
)
|
||||
fi
|
||||
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
|
||||
-DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
|
||||
-DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
|
||||
cmake_build check-builtins
|
||||
}
|
||||
@@ -5,4 +5,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
74
llvm-runtimes/flang-rt/flang-rt-23.1.0_rc3.ebuild
Normal file
74
llvm-runtimes/flang-rt/flang-rt-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,74 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org python-any-r1
|
||||
|
||||
DESCRIPTION="LLVM's Fortran runtime"
|
||||
HOMEPAGE="https://flang.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions"
|
||||
SLOT="${LLVM_MAJOR}"
|
||||
IUSE="+debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
!<llvm-core/flang-21.0.0_pre20250221-r1
|
||||
"
|
||||
BDEPEND="
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
llvm-core/flang
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes flang-rt cmake flang libc/shared llvm/{cmake,utils}
|
||||
)
|
||||
LLVM_TEST_COMPONENTS=( third-party/unittest )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# the code is not portable
|
||||
local -x FC=flang F77=flang
|
||||
strip-unsupported-flags
|
||||
|
||||
local mycmakeargs=(
|
||||
# we may not have a runtime yet
|
||||
-DCMAKE_Fortran_COMPILER_WORKS=TRUE
|
||||
|
||||
-DLLVM_ENABLE_RUNTIMES="flang-rt"
|
||||
# this package forces NO_DEFAULT_PATHS
|
||||
-DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
# set correct install paths
|
||||
-DRUNTIMES_INSTALL_RESOURCE_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="${CHOST}"
|
||||
|
||||
-DFLANG_RT_INCLUDE_TESTS=$(usex test)
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-flang-rt
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
80
llvm-runtimes/libclc/libclc-23.1.0_rc3.ebuild
Normal file
80
llvm-runtimes/libclc/libclc-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,80 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake llvm.org multibuild python-any-r1
|
||||
|
||||
DESCRIPTION="OpenCL C library"
|
||||
HOMEPAGE="https://libclc.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
|
||||
SLOT="0"
|
||||
IUSE="+spirv test video_cards_nvidia video_cards_radeonsi"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
spirv? (
|
||||
>=dev-util/spirv-llvm-translator-23:*
|
||||
)
|
||||
test? (
|
||||
$(python_gen_any_dep '
|
||||
dev-python/lit[${PYTHON_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( libclc )
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
MULTIBUILD_VARIANTS=()
|
||||
|
||||
use spirv && MULTIBUILD_VARIANTS+=(
|
||||
"spirv32-unknown-unknown"
|
||||
"spirv64-unknown-unknown"
|
||||
"spirv64-unknown-vulkan" # formerly clspv
|
||||
)
|
||||
use video_cards_nvidia && MULTIBUILD_VARIANTS+=(
|
||||
"nvptx64-nvidia-cuda"
|
||||
)
|
||||
use video_cards_radeonsi && MULTIBUILD_VARIANTS+=(
|
||||
"amdgcn-amd-amdhsa-llvm"
|
||||
)
|
||||
|
||||
multibuild_foreach_variant my_configure
|
||||
}
|
||||
|
||||
my_configure() {
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCMAKE_CLC_COMPILER="$(type -P clang-${LLVM_MAJOR})"
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="${MULTIBUILD_VARIANT}"
|
||||
-DLLVM_INCLUDE_TESTS="$(usex test)"
|
||||
)
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multibuild_foreach_variant cmake_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
multibuild_foreach_variant cmake_build check-libclc
|
||||
}
|
||||
|
||||
src_install() {
|
||||
multibuild_foreach_variant cmake_src_install
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
258
llvm-runtimes/libcxx/libcxx-23.1.0_rc3.ebuild
Normal file
258
llvm-runtimes/libcxx/libcxx-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,258 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
|
||||
inherit python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
|
||||
HOMEPAGE="https://libcxx.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0"
|
||||
IUSE="+clang +libcxxabi +static-libs test"
|
||||
REQUIRED_USE="test? ( clang )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
libcxxabi? (
|
||||
~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
|
||||
)
|
||||
!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
clang? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/clang-linker-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
test? (
|
||||
dev-debug/gdb[python]
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes libcxx{,abi} libc llvm/{cmake,utils} cmake
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
if ! use libcxxabi && ! 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
|
||||
}
|
||||
|
||||
test_compiler() {
|
||||
$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
|
||||
<<<'int main() { return 0; }' &>/dev/null
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local install_prefix=${EPREFIX}
|
||||
is_crosspkg && install_prefix+=/usr/${CTARGET}
|
||||
|
||||
# note: we need to do this before multilib kicks in since it will
|
||||
# alter the CHOST
|
||||
local cxxabi cxxabi_incs
|
||||
if use libcxxabi; then
|
||||
cxxabi=system-libcxxabi
|
||||
cxxabi_incs="${install_prefix}/usr/include/c++/v1"
|
||||
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
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Workaround for bgo #961153.
|
||||
# TODO: Fix the multilib.eclass, so it sets CTARGET properly.
|
||||
if ! is_crosspkg; then
|
||||
export CTARGET=${CHOST}
|
||||
fi
|
||||
|
||||
if use clang; then
|
||||
llvm_prepend_path -b "${LLVM_MAJOR}"
|
||||
local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
|
||||
strip-unsupported-flags
|
||||
|
||||
# The full clang configuration might not be ready yet. Use the partial
|
||||
# configuration of components that libunwind depends on.
|
||||
local flags=(
|
||||
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
|
||||
)
|
||||
local -x CFLAGS="${CFLAGS} ${flags[@]}"
|
||||
local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
|
||||
local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
|
||||
fi
|
||||
|
||||
# link to compiler-rt
|
||||
local use_compiler_rt=OFF
|
||||
[[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
|
||||
|
||||
local nostdlib_flags=( -nostdlib++ )
|
||||
if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
|
||||
local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
|
||||
ewarn "${CXX} seems to lack runtime, trying with ${nostdlib_flags[*]}"
|
||||
fi
|
||||
|
||||
local libdir=$(get_libdir)
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
-DLLVM_ENABLE_RUNTIMES=libcxx
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_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=$(llvm_cmake_use_musl)
|
||||
-DLIBCXX_INCLUDE_BENCHMARKS=OFF
|
||||
-DLIBCXX_INCLUDE_TESTS=$(usex test)
|
||||
-DLIBCXX_INSTALL_MODULES=ON
|
||||
-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
|
||||
# this is broken with standalone builds, and also meaningless
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF
|
||||
)
|
||||
if is_crosspkg; then
|
||||
# Needed to target built libc headers
|
||||
local -x CFLAGS="${CFLAGS} -isystem ${ESYSROOT}/usr/${CTARGET}/usr/include"
|
||||
mycmakeargs+=(
|
||||
# Without this, the compiler will compile a test program
|
||||
# and fail due to no builtins.
|
||||
-DCMAKE_C_COMPILER_WORKS=1
|
||||
-DCMAKE_CXX_COMPILER_WORKS=1
|
||||
# Install inside the cross sysroot.
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
|
||||
)
|
||||
fi
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
cmake_src_compile
|
||||
if [[ ${CHOST} != *-darwin* ]] ; then
|
||||
local libdir=$(get_libdir)
|
||||
gen_shared_ldscript
|
||||
use static-libs && gen_static_ldscript
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build libcxx-test-suite-install-cxx
|
||||
if [[ ${CHOST} != *-darwin* ]] ; then
|
||||
local libdir=$(get_libdir)
|
||||
cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_shared.so || die
|
||||
if use static-libs; then
|
||||
cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_static.a || die
|
||||
fi
|
||||
fi
|
||||
cmake_build check-cxx
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
cmake_src_install
|
||||
# since we've replaced libc++.{a,so} with ldscripts, now we have to
|
||||
# install the extra symlinks
|
||||
if [[ ${CHOST} != *-darwin* ]] ; then
|
||||
local libdir=$(get_libdir)
|
||||
is_crosspkg && into /usr/${CTARGET}/usr
|
||||
dolib.so "${libdir}"/libc++_shared.so
|
||||
use static-libs && dolib.a "${libdir}"/libc++_static.a
|
||||
fi
|
||||
|
||||
local install_prefix=
|
||||
is_crosspkg && install_prefix=/usr/${CTARGET}
|
||||
insinto "${install_prefix}/usr/share/libc++/gdb"
|
||||
doins ../libcxx/utils/gdb/libcxx/printers.py
|
||||
|
||||
local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p' CMakeCache.txt || die)
|
||||
[[ -n ${lib_version} ]] || die "Could not determine LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
|
||||
|
||||
insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
|
||||
newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
|
||||
__import__("sys").path.insert(0, "${EPREFIX}/usr/share/libc++/gdb")
|
||||
__import__("printers").register_libcxx_printer_loader()
|
||||
EOF
|
||||
}
|
||||
|
||||
# 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() {
|
||||
# Move it first.
|
||||
mv "${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
|
||||
$(usex libcxxabi libc++abi.a libsupc++.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[*]}" > "${libdir}"/libc++.a || die
|
||||
}
|
||||
|
||||
gen_shared_ldscript() {
|
||||
# Move it first.
|
||||
mv "${libdir}"/libc++{,_shared}.so || die
|
||||
local deps=(
|
||||
libc++_shared.so
|
||||
# libsupc++ doesn't have a shared version
|
||||
$(usex libcxxabi libc++abi.so libsupc++.a)
|
||||
)
|
||||
|
||||
gen_ldscript "${deps[*]}" > "${libdir}"/libc++.so || die
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
146
llvm-runtimes/libcxxabi/libcxxabi-23.1.0_rc3.ebuild
Normal file
146
llvm-runtimes/libcxxabi/libcxxabi-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,146 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
|
||||
inherit python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="Low level support for a standard C++ library"
|
||||
HOMEPAGE="https://libcxxabi.llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0"
|
||||
IUSE="+clang +static-libs test"
|
||||
REQUIRED_USE="test? ( clang )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
clang? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/clang-linker-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/{cmake,utils} cmake )
|
||||
LLVM_TEST_COMPONENTS=( libc llvm/include/llvm/{Demangle,Testing} )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
test_compiler() {
|
||||
target_is_not_host && return
|
||||
$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
|
||||
<<<'int main() { return 0; }' &>/dev/null
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Workaround for bgo #961153.
|
||||
# TODO: Fix the multilib.eclass, so it sets CTARGET properly.
|
||||
if ! is_crosspkg; then
|
||||
export CTARGET=${CHOST}
|
||||
fi
|
||||
|
||||
if use clang; then
|
||||
llvm_prepend_path -b "${LLVM_MAJOR}"
|
||||
local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
|
||||
strip-unsupported-flags
|
||||
|
||||
# The full clang configuration might not be ready yet. Use the partial
|
||||
# configuration of components that libunwind depends on.
|
||||
local flags=(
|
||||
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
|
||||
)
|
||||
local -x CFLAGS="${CFLAGS} ${flags[@]}"
|
||||
local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
|
||||
local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
|
||||
fi
|
||||
|
||||
local nostdlib_flags=( -nostdlib++ )
|
||||
if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
|
||||
local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
|
||||
ewarn "${CXX} seems to lack stdlib, trying with ${nostdlib_flags[*]}"
|
||||
fi
|
||||
|
||||
# link to compiler-rt
|
||||
local use_compiler_rt=OFF
|
||||
[[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
|
||||
|
||||
local libdir=$(get_libdir)
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
-DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
-DLIBCXXABI_ENABLE_SHARED=ON
|
||||
-DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
|
||||
-DLIBCXXABI_INCLUDE_TESTS=$(usex test)
|
||||
-DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt}
|
||||
|
||||
# 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 is broken with standalone builds, and also meaningless
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF
|
||||
|
||||
-DLIBCXX_ENABLE_SHARED=ON
|
||||
-DLIBCXX_ENABLE_STATIC=OFF
|
||||
-DLIBCXX_CXX_ABI=libcxxabi
|
||||
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
|
||||
-DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
|
||||
-DLIBCXX_HAS_GCC_S_LIB=OFF
|
||||
-DLIBCXX_INCLUDE_BENCHMARKS=OFF
|
||||
-DLIBCXX_INCLUDE_TESTS=OFF
|
||||
)
|
||||
if is_crosspkg; then
|
||||
mycmakeargs+=(
|
||||
# Without this, the compiler will compile a test program
|
||||
# and fail due to no builtins.
|
||||
-DCMAKE_C_COMPILER_WORKS=1
|
||||
-DCMAKE_CXX_COMPILER_WORKS=1
|
||||
# Install inside the cross sysroot.
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
|
||||
)
|
||||
fi
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
cmake_build cxxabi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-cxxabi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
DESTDIR="${D}" cmake_build install-cxxabi
|
||||
}
|
||||
@@ -9,4 +9,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
173
llvm-runtimes/libgcc/libgcc-23.1.0_rc3.ebuild
Normal file
173
llvm-runtimes/libgcc/libgcc-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,173 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
|
||||
inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Compiler runtime library for clang, compatible with libgcc_s"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0"
|
||||
IUSE="debug test"
|
||||
|
||||
DEPEND="
|
||||
~llvm-runtimes/libunwind-${PV}[static-libs]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
!sys-devel/gcc
|
||||
"
|
||||
BDEPEND="
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
test? (
|
||||
$(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
|
||||
=llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake llvm-libgcc third-party/siphash )
|
||||
LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if target_is_not_host || tc-is-cross-compiler ; then
|
||||
# strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
|
||||
CHOST=${CTARGET} strip-unsupported-flags
|
||||
# overrides host docs otherwise
|
||||
DOCS=()
|
||||
fi
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# We need to build a separate copy of compiler-rt, because we need to disable the
|
||||
# COMPILER_RT_BUILTINS_HIDE_SYMBOLS option - compatibility with libgcc requires
|
||||
# visibility of all symbols.
|
||||
|
||||
llvm_prepend_path -b "${LLVM_MAJOR}"
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
export CC=${CTARGET}-clang CXX=${CTARGET}-clang++
|
||||
strip-unsupported-flags
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
|
||||
-DCOMPILER_RT_BUILD_CRT=OFF
|
||||
-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
|
||||
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
|
||||
-DCOMPILER_RT_BUILD_MEMPROF=OFF
|
||||
-DCOMPILER_RT_BUILD_ORC=OFF
|
||||
-DCOMPILER_RT_BUILD_PROFILE=OFF
|
||||
-DCOMPILER_RT_BUILD_SANITIZERS=OFF
|
||||
-DCOMPILER_RT_BUILD_XRAY=OFF
|
||||
|
||||
-DCOMPILER_RT_BUILTINS_HIDE_SYMBOLS=OFF
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
|
||||
# disable building non-native runtimes since we don't do multilib
|
||||
if use amd64; then
|
||||
mycmakeargs+=(
|
||||
-DCAN_TARGET_i386=OFF
|
||||
)
|
||||
fi
|
||||
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
|
||||
-DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
|
||||
-DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
|
||||
local rtlib=$(
|
||||
"${CC}" -rtlib=compiler-rt -resource-dir="${BUILD_DIR}" \
|
||||
-print-libgcc-file-name || die
|
||||
)
|
||||
|
||||
# Use the llvm-libgcc's version script to produce libgcc.{a,so}, which
|
||||
# combines compiler-rt and libunwind into a libgcc replacement.
|
||||
#
|
||||
# What we do here is similar to what upstream does[0], with the following
|
||||
# differences:
|
||||
#
|
||||
# * We build the local copy of compiler-rt manually, to have a full control
|
||||
# over CMake options.
|
||||
# * Upstream links the locally built copy of libunwind statically. We link the
|
||||
# system-wide libunwind dynamically.
|
||||
#
|
||||
# [0] https://github.com/llvm/llvm-project/blob/llvmorg-19.1.7/llvm-libgcc/CMakeLists.txt#L102-L120
|
||||
"${CC}" -E -xc \
|
||||
"${WORKDIR}/llvm-libgcc/gcc_s.ver.in" \
|
||||
-o gcc_s.ver || die
|
||||
"${CC}" -nostdlib \
|
||||
${LDFLAGS} \
|
||||
-Wl,--version-script,gcc_s.ver \
|
||||
-Wl,--undefined-version \
|
||||
-Wl,--whole-archive \
|
||||
"${rtlib}" \
|
||||
-Wl,-soname,libgcc_s.so.1.0 \
|
||||
-lc -lunwind -shared \
|
||||
-o libgcc_s.so.1.0 || die
|
||||
# Generate libgcc_s.so ldscript for inclusion of libunwind as a
|
||||
# dependency so that `clang -lgcc_s` works out of the box.
|
||||
gen_ldscript libgcc_s.so.1.0 libunwind.so.1.0 > libgcc_s.so || die
|
||||
cp "${rtlib}" libgcc.a || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
|
||||
cmake_build check-builtins
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=$(get_libdir)
|
||||
dolib.so libgcc_s.so.1.0 libgcc_s.so
|
||||
dolib.a libgcc.a
|
||||
dosym libgcc_s.so.1.0 "/usr/${libdir}/libgcc_s.so.1"
|
||||
dosym libunwind.a "/usr/${libdir}/libgcc_eh.a"
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
193
llvm-runtimes/libunwind/libunwind-23.1.0_rc3.ebuild
Normal file
193
llvm-runtimes/libunwind/libunwind-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,193 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
|
||||
inherit python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="C++ runtime stack unwinder from LLVM"
|
||||
HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0"
|
||||
IUSE="+clang +debug static-libs test"
|
||||
REQUIRED_USE="test? ( clang )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
!sys-libs/libunwind
|
||||
"
|
||||
DEPEND="
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
clang? (
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/clang-linker-config:${LLVM_MAJOR}
|
||||
llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
|
||||
)
|
||||
!test? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/{cmake,utils} cmake )
|
||||
LLVM_TEST_COMPONENTS=( libc libcxxabi )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_check_deps() {
|
||||
use test || return 0
|
||||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
test_compiler() {
|
||||
target_is_not_host && return
|
||||
local compiler=${1}
|
||||
shift
|
||||
${compiler} ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
|
||||
<<<'int main() { return 0; }' &>/dev/null
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
if use clang; then
|
||||
llvm_prepend_path -b "${LLVM_MAJOR}"
|
||||
fi
|
||||
|
||||
local libdir=$(get_libdir)
|
||||
|
||||
# https://github.com/llvm/llvm-project/issues/56825
|
||||
# also separately bug #863917
|
||||
filter-lto
|
||||
|
||||
# Workaround for bgo #961153.
|
||||
# TODO: Fix the multilib.eclass, so it sets CTARGET properly.
|
||||
if ! is_crosspkg; then
|
||||
export CTARGET=${CHOST}
|
||||
fi
|
||||
|
||||
if use clang; then
|
||||
local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
|
||||
strip-unsupported-flags
|
||||
|
||||
# The full clang configuration might not be ready yet. Use the partial
|
||||
# configuration files that are guaranteed to exist even during initial
|
||||
# installations and upgrades.
|
||||
local flags=(
|
||||
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,linker}.cfg
|
||||
)
|
||||
local -x CFLAGS="${CFLAGS} ${flags[@]}"
|
||||
local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
|
||||
local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
|
||||
fi
|
||||
|
||||
# Check whether C compiler runtime is available.
|
||||
if ! test_compiler "$(tc-getCC)"; then
|
||||
local nolib_flags=( -nodefaultlibs -lc )
|
||||
if test_compiler "$(tc-getCC)" "${nolib_flags[@]}"; then
|
||||
local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
|
||||
ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
|
||||
elif test_compiler "$(tc-getCC)" "${nolib_flags[@]}" -nostartfiles; then
|
||||
# Avoiding -nostartfiles earlier on for bug #862540,
|
||||
# and set available entry symbol for bug #862798.
|
||||
nolib_flags+=( -nostartfiles -e main )
|
||||
local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
|
||||
ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
|
||||
fi
|
||||
fi
|
||||
# Check whether C++ standard library is available,
|
||||
local nostdlib_flags=( -nostdlib++ )
|
||||
if ! test_compiler "$(tc-getCXX)" &&
|
||||
test_compiler "$(tc-getCXX)" "${nostdlib_flags[@]}"
|
||||
then
|
||||
local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
|
||||
ewarn "${CXX} seems to lack runtime, trying with ${nostdlib_flags[*]}"
|
||||
fi
|
||||
|
||||
# link to compiler-rt
|
||||
# https://github.com/gentoo/gentoo/pull/21516
|
||||
local use_compiler_rt=OFF
|
||||
[[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
|
||||
|
||||
# Respect upstream build type assumptions (bug #910436) where they do:
|
||||
# -DLIBUNWIND_ENABLE_ASSERTIONS=ON =>
|
||||
# -DCMAKE_BUILD_TYPE=DEBUG => -UNDEBUG
|
||||
# -DCMAKE_BUILD_TYPE!=debug => -DNDEBUG
|
||||
# -DLIBUNWIND_ENABLE_ASSERTIONS=OFF =>
|
||||
# -UNDEBUG
|
||||
# See also https://github.com/llvm/llvm-project/issues/86#issuecomment-1649668826.
|
||||
use debug || append-cppflags -DNDEBUG
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DCMAKE_C_COMPILER_TARGET="${CTARGET}"
|
||||
-DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
-DLLVM_ENABLE_RUNTIMES="libunwind"
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
|
||||
-DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
|
||||
-DLIBUNWIND_INCLUDE_TESTS=$(usex test)
|
||||
-DLIBUNWIND_INSTALL_HEADERS=ON
|
||||
|
||||
# cross-unwinding increases unwinding footprint (to account
|
||||
# for the worst case) and causes some breakage on AArch64
|
||||
# https://github.com/llvm/llvm-project/issues/152549
|
||||
-DLIBUNWIND_ENABLE_CROSS_UNWINDING=OFF
|
||||
|
||||
# avoid dependency on libgcc_s if compiler-rt is used
|
||||
-DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
|
||||
)
|
||||
if is_crosspkg; then
|
||||
mycmakeargs+=(
|
||||
# Without this, the compiler will compile a test program
|
||||
# and fail due to no builtins.
|
||||
-DCMAKE_C_COMPILER_WORKS=1
|
||||
-DCMAKE_CXX_COMPILER_WORKS=1
|
||||
# Install inside the cross sysroot.
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
|
||||
)
|
||||
fi
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx"
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
|
||||
|
||||
-DLIBCXXABI_LIBDIR_SUFFIX=
|
||||
-DLIBCXXABI_ENABLE_SHARED=OFF
|
||||
-DLIBCXXABI_ENABLE_STATIC=ON
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=ON
|
||||
-DLIBCXXABI_INCLUDE_TESTS=OFF
|
||||
|
||||
-DLIBCXX_LIBDIR_SUFFIX=
|
||||
-DLIBCXX_ENABLE_SHARED=OFF
|
||||
-DLIBCXX_ENABLE_STATIC=ON
|
||||
-DLIBCXX_CXX_ABI=libcxxabi
|
||||
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
|
||||
-DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
|
||||
-DLIBCXX_HAS_GCC_S_LIB=OFF
|
||||
-DLIBCXX_INCLUDE_TESTS=OFF
|
||||
-DLIBCXX_INCLUDE_BENCHMARKS=OFF
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-unwind
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
DESTDIR=${D} cmake_build install-unwind
|
||||
}
|
||||
@@ -3,4 +3,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org
|
||||
|
||||
DESCRIPTION="OpenMP target library for amdgcn devices"
|
||||
HOMEPAGE="https://openmp.llvm.org"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
|
||||
RDEPEND="
|
||||
!<llvm-runtimes/offload-22[llvm_targets_AMDGPU(-)]
|
||||
"
|
||||
BDEPEND="
|
||||
~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_AMDGPU]
|
||||
llvm-core/lld:${LLVM_MAJOR}[llvm_targets_AMDGPU]
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes openmp cmake llvm/{cmake,utils} libc/shared
|
||||
offload/include
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
local -x CC=${CHOST}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
|
||||
local triple=${PN#openmp-}
|
||||
filter-flags '-m*'
|
||||
strip-unsupported-flags
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
|
||||
-DLLVM_ENABLE_RUNTIMES=openmp
|
||||
-DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
@@ -3,4 +3,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org
|
||||
|
||||
DESCRIPTION="OpenMP target library for nvptx64 devices"
|
||||
HOMEPAGE="https://openmp.llvm.org"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
|
||||
RDEPEND="
|
||||
!<llvm-runtimes/offload-22[llvm_targets_NVPTX(-)]
|
||||
"
|
||||
BDEPEND="
|
||||
~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_NVPTX]
|
||||
llvm-core/lld:${LLVM_MAJOR}[llvm_targets_NVPTX]
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes openmp cmake llvm/{cmake,utils} libc/shared
|
||||
offload/include
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
local -x CC=${CHOST}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
|
||||
local triple=${PN#openmp-}
|
||||
filter-flags '-m*'
|
||||
strip-unsupported-flags
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
|
||||
-DLLVM_ENABLE_RUNTIMES=openmp
|
||||
-DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake flag-o-matic llvm.org
|
||||
|
||||
DESCRIPTION="OpenMP target library for spirv64 Intel devices"
|
||||
HOMEPAGE="https://openmp.llvm.org"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
|
||||
BDEPEND="
|
||||
~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_SPIRV]
|
||||
llvm-core/lld:${LLVM_MAJOR}[llvm_targets_SPIRV]
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes openmp cmake llvm/{cmake,utils} libc/shared
|
||||
offload/include
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
local -x CC=${CHOST}-clang-${LLVM_MAJOR}
|
||||
local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
|
||||
local triple=${PN#openmp-}
|
||||
filter-flags '-m*'
|
||||
strip-unsupported-flags
|
||||
|
||||
# https://github.com/llvm/llvm-project/issues/186598
|
||||
filter-ldflags '-Wl,*'
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
|
||||
-DLLVM_ENABLE_RUNTIMES=openmp
|
||||
-DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
@@ -13,4 +13,6 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
|
||||
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz 179079292 BLAKE2B 59b4ae719ca496b29e37c1150d2953062d00d696e847d16710b6719c63246cccfb50c6f6bf33e7723e2e3757c8b1cae51a3c6a6787b6d45c808c78902ac01c97 SHA512 9ca8d0aa34f2910abc06edb832831c1a66209e7e78cffabcc52113fe0d6d96af57f4f67788ae23026c0f3b91dc8f6224cb46dfa0f1bcc41a1f60cbad5ec1623d
|
||||
DIST llvm-project-23.1.0-rc2.src.tar.xz.sig 466 BLAKE2B c7acaa7f8833286cd0037c4c31ba8a1bb20f4a09b62979c7df9f69993728406b1a42db62d2ab2a34c526c0bdae1bc027074a623142420d2fc264c3f83e3c0f7b SHA512 7e2db57ed17efe3bf36c476049973b760af60c8a9302992a17e050e7a61db7b92df0b6c06f26989c61ce2e4682e7604bfdd0f063e322a726923e857890cedc8c
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz 179126732 BLAKE2B f0843aacbf9ebd57929dbba0436773775dc121223ae3a81d1c30bd5a3ccba136359b9e483d2be58546dc6bf468743711d5057f8b1486e5ba4d59a96136426c3c SHA512 0c9bdf4c75784269bd4560d94126e667d1d145da2f6db4d94f437b2388880f3dcb52f85c0580d78e2597b141511a4b7ddadfc31f83b690d5cd383e84330ce247
|
||||
DIST llvm-project-23.1.0-rc3.src.tar.xz.sig 466 BLAKE2B c7bd61c1cab2bdb4c8026aa095f7543e7c2f50520531f3ca6bd8c0cb78b2a7770d39723cec6effe9366c260d01b0db2bfd072281790b63b7d0d8b48339f51c42 SHA512 751f602d29235d4ce58a0d38c23f360977cb9e978e04399b3032053e7168903a721d307f001864b73fef8f567023eebe8f4fdbf4124667789d0afaff57b01d7d
|
||||
DIST llvm-project-bb9934d4dfef9033ded36d26827dbb6d3ac1dd92.tar.gz 277566365 BLAKE2B 401320655d19b3d430d15a48e2daf1f00567ef87fd2d1f86c3d505a1b2f5920db6cbfa620bf1b0561cd318d6046830d5b19fe0e7b58647863372c6c96526526c SHA512 354b901ca80227abe6b0514eeba437f237ea2658dd1927bb6e1d3b0b298bdb0dfdb7855c0f359eea4977dd344f6d0f6d1ce486ea0100d4a5615a9139ef198fca
|
||||
|
||||
177
llvm-runtimes/openmp/openmp-23.1.0_rc3.ebuild
Normal file
177
llvm-runtimes/openmp/openmp-23.1.0_rc3.ebuild
Normal file
@@ -0,0 +1,177 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{12..14} )
|
||||
inherit cmake-multilib crossdev flag-o-matic llvm.org python-single-r1
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="OpenMP runtime libraries for LLVM/clang compiler"
|
||||
HOMEPAGE="https://openmp.llvm.org"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
IUSE="
|
||||
+clang +debug gdb-plugin hwloc offload ompt test
|
||||
cuda level-zero rocm
|
||||
"
|
||||
REQUIRED_USE="
|
||||
gdb-plugin? ( ${PYTHON_REQUIRED_USE} )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
|
||||
offload? (
|
||||
dev-libs/libffi:=
|
||||
~llvm-core/llvm-${PV}
|
||||
level-zero? ( dev-libs/level-zero:= )
|
||||
rocm? ( dev-libs/rocr-runtime:= )
|
||||
)
|
||||
"
|
||||
# tests:
|
||||
# - dev-python/lit provides the test runner
|
||||
# - llvm-core/llvm provide test utils (e.g. FileCheck)
|
||||
# - llvm-core/clang provides the compiler to run tests
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
gdb-plugin? ( ${PYTHON_DEPS} )
|
||||
offload? (
|
||||
!llvm-runtimes/offload
|
||||
cuda? ( ~llvm-runtimes/openmp-nvptx64-nvidia-cuda-${PV} )
|
||||
level-zero? ( ~llvm-runtimes/openmp-spirv64-intel-${PV} )
|
||||
rocm? ( ~llvm-runtimes/openmp-amdgcn-amd-amdhsa-${PV} )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
dev-lang/perl
|
||||
clang? ( llvm-core/clang )
|
||||
gdb-plugin? ( ${PYTHON_DEPS} )
|
||||
offload? (
|
||||
virtual/pkgconfig
|
||||
)
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/lit[${PYTHON_USEDEP}]
|
||||
')
|
||||
llvm-core/clang:${LLVM_MAJOR}
|
||||
llvm-core/llvm:${LLVM_MAJOR}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=(
|
||||
runtimes openmp offload cmake libc llvm/{cmake,include,utils}
|
||||
third-party/unittest
|
||||
)
|
||||
llvm.org_set_globals
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/offload/OffloadPrint.hpp
|
||||
/usr/include/offload/OffloadAPI.h
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ ${LLVM_ALLOW_GPU_TESTING} ]]; then
|
||||
ewarn "LLVM_ALLOW_GPU_TESTING set. This package will run tests against your"
|
||||
ewarn "GPU if it is supported. Note that these tests may be flaky, fail or"
|
||||
ewarn "hang, or even cause your GPU to crash (requiring a reboot)."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use gdb-plugin || use test; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
if use clang && ! is_crosspkg; then
|
||||
# Only do this conditionally to allow overriding with
|
||||
# e.g. CC=clang-13 in case of breakage
|
||||
if ! tc-is-clang ; then
|
||||
local -x CC=${CHOST}-clang
|
||||
local -x CXX=${CHOST}-clang++
|
||||
fi
|
||||
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# LTO causes issues in other packages building, #870127
|
||||
filter-lto
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
local libdir="$(get_libdir)"
|
||||
local mycmakeargs=(
|
||||
-DLLVM_ENABLE_RUNTIMES=openmp
|
||||
-DLLVM_LIBDIR_SUFFIX="${libdir#lib}"
|
||||
-DLLVM_BINARY_DIR="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}"
|
||||
|
||||
-DLIBOMP_USE_HWLOC=$(usex hwloc)
|
||||
-DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin)
|
||||
-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
|
||||
# this breaks building static target libs
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
|
||||
if multilib_is_native_abi && use offload; then
|
||||
local ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
|
||||
local ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
|
||||
local plugins="host"
|
||||
|
||||
if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
|
||||
if use rocm; then
|
||||
plugins+=";amdgpu"
|
||||
fi
|
||||
if use cuda; then
|
||||
plugins+=";cuda"
|
||||
fi
|
||||
if use level-zero; then
|
||||
plugins+=";level_zero"
|
||||
fi
|
||||
fi
|
||||
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ENABLE_RUNTIMES="openmp;offload"
|
||||
-DOFFLOAD_INCLUDE_TESTS=$(usex test)
|
||||
-DLIBOMPTARGET_PLUGINS_TO_BUILD="${plugins}"
|
||||
-DLIBOMPTARGET_OMPT_SUPPORT="$(usex ompt)"
|
||||
)
|
||||
|
||||
[[ ! ${LLVM_ALLOW_GPU_TESTING} ]] && mycmakeargs+=(
|
||||
# prevent trying to access the GPU
|
||||
-DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND
|
||||
-DLIBOMPTARGET_NVPTX_ARCH=LIBOMPTARGET_NVPTX_ARCH-NOTFOUND
|
||||
-DLIBOMPTARGET_OFFLOAD_ARCH=LIBOMPTARGET_OFFLOAD_ARCH-NOTFOUND
|
||||
)
|
||||
fi
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
-DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang-${LLVM_MAJOR}")"
|
||||
-DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++-${LLVM_MAJOR}")"
|
||||
# disable Fortran tests for now
|
||||
# (TODO: enable where we have flang keyworded)
|
||||
-DOPENMP_TEST_Fortran_COMPILER=
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
local targets=( check-openmp )
|
||||
if multilib_is_native_abi && use offload; then
|
||||
targets+=( check-offload check-offload-unit )
|
||||
fi
|
||||
|
||||
cmake_build "${targets[@]}"
|
||||
}
|
||||
@@ -1,3 +1,2 @@
|
||||
DIST mlt-7.34.1.tar.gz 1817867 BLAKE2B 45a422b12dca99fcd95af9f2c540497e2aa97210f6674726884b0eb8d1f321706679512675ff21993c997d9332be7128ce93f689c8f7612d68952ea87e6c56e5 SHA512 de71d698e8adc03d4e3c66c5e1d4dbf2e91848b2260e29084401a56d49493f28671c5c0979922dc46864ee3991ef35cab2cd9be6b88bb67dc49e36488f87050e
|
||||
DIST mlt-7.38.0.tar.gz 6674009 BLAKE2B 4843dbca30cdec26b3b340901ca1a3603bb9ce6565620218d017f0b848e1991fcc3cf0fe6354ec95d9c557cbcfd6e9f0e5a61f3aa9653b1c92822a4fb941af8c SHA512 762f7470eb294e6923206d9793ec65341eb6712c5b0251366dcd565ef84f59a0dc9c01a0695ce2c6b2f427d3a99fc38207ccf92905f105325720af9ce7e534b8
|
||||
DIST mlt-7.40.0.tar.gz 6775875 BLAKE2B e2eb028abc339e6b39a9ea1656e351bd137430d5a736552a79eb4ce7ca904a097804b9e2aed71cbf401983e9b436913e113d3d0a9dfbf76ce77116a00c16c11e SHA512 f595f18777b0a69aff18270176f528865a38083439a320e206eba381b9ee8de9efc78bf1ae65355a6fd72265d91d2487f7ac54e57dcbdef1e1152049d2ceed25
|
||||
|
||||
158
media-libs/mlt/files/mlt-7.40.0-ffmpeg-9.patch
Normal file
158
media-libs/mlt/files/mlt-7.40.0-ffmpeg-9.patch
Normal file
@@ -0,0 +1,158 @@
|
||||
From 06c4785f951c087c700de942362d1d1c68ffe500 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Dennedy <dan@dennedy.org>
|
||||
Date: Thu, 6 Aug 2026 17:14:24 -0700
|
||||
Subject: [PATCH] Fix #1280 support for FFmpeg 9 (#1281)
|
||||
|
||||
---
|
||||
src/modules/avformat/consumer_avformat.c | 61 ++++++++++++++++++++--
|
||||
src/modules/avformat/consumer_avformat.yml | 6 ++-
|
||||
2 files changed, 63 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/modules/avformat/consumer_avformat.c b/src/modules/avformat/consumer_avformat.c
|
||||
index d5ab5f1cd..cebd89f0e 100644
|
||||
--- a/src/modules/avformat/consumer_avformat.c
|
||||
+++ b/src/modules/avformat/consumer_avformat.c
|
||||
@@ -629,7 +629,8 @@ static void apply_properties(void *obj, mlt_properties properties, int flags)
|
||||
|| (opt_name[0] == 'a' && (flags & AV_OPT_FLAG_AUDIO_PARAM))))
|
||||
opt = av_opt_find(obj, ++opt_name, NULL, flags, search_flags);
|
||||
// Apply option if found
|
||||
- if (opt && strcmp(opt_name, "channel_layout") && strcmp(opt_name, "frame_duration"))
|
||||
+ if (opt && strcmp(opt_name, "channel_layout") && strcmp(opt_name, "frame_duration")
|
||||
+ && strcmp(opt_name, "dc"))
|
||||
av_opt_set(obj, opt_name, mlt_properties_get_value(properties, i), search_flags);
|
||||
}
|
||||
}
|
||||
@@ -680,7 +681,6 @@ static int pick_sample_fmt(mlt_properties properties, const AVCodec *codec)
|
||||
{
|
||||
int sample_fmt = AV_SAMPLE_FMT_S16;
|
||||
const char *format = mlt_properties_get(properties, "mlt_audio_format");
|
||||
- const int *p = codec->sample_fmts;
|
||||
const char *sample_fmt_str = mlt_properties_get(properties, "sample_fmt");
|
||||
|
||||
if (sample_fmt_str)
|
||||
@@ -699,13 +699,29 @@ static int pick_sample_fmt(mlt_properties properties, const AVCodec *codec)
|
||||
else if (!strcmp(format, "float"))
|
||||
sample_fmt = AV_SAMPLE_FMT_FLTP;
|
||||
}
|
||||
+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
|
||||
+ const enum AVSampleFormat *sample_fmts = NULL;
|
||||
+ avcodec_get_supported_config(NULL,
|
||||
+ codec,
|
||||
+ AV_CODEC_CONFIG_SAMPLE_FORMAT,
|
||||
+ 0,
|
||||
+ (const void **) &sample_fmts,
|
||||
+ NULL);
|
||||
+ const int *p = (const int *) sample_fmts;
|
||||
+#else
|
||||
+ const int *p = codec->sample_fmts;
|
||||
+#endif
|
||||
// check if codec supports our mlt_audio_format
|
||||
- for (; *p != -1; p++) {
|
||||
+ for (; p && *p != -1; p++) {
|
||||
if (*p == sample_fmt)
|
||||
return sample_fmt;
|
||||
}
|
||||
// no match - pick first one we support
|
||||
+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
|
||||
+ for (p = (const int *) sample_fmts; p && *p != -1; p++) {
|
||||
+#else
|
||||
for (p = codec->sample_fmts; *p != -1; p++) {
|
||||
+#endif
|
||||
switch (*p) {
|
||||
case AV_SAMPLE_FMT_U8:
|
||||
case AV_SAMPLE_FMT_S16:
|
||||
@@ -980,9 +996,25 @@ static AVStream *add_video_stream(mlt_consumer consumer,
|
||||
c->framerate = av_inv_q(c->time_base);
|
||||
|
||||
// Default to the codec's first pix_fmt if possible.
|
||||
+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
|
||||
+ {
|
||||
+ const enum AVPixelFormat *video_pix_fmts = NULL;
|
||||
+ if (codec)
|
||||
+ avcodec_get_supported_config(NULL,
|
||||
+ codec,
|
||||
+ AV_CODEC_CONFIG_PIX_FORMAT,
|
||||
+ 0,
|
||||
+ (const void **) &video_pix_fmts,
|
||||
+ NULL);
|
||||
+ c->pix_fmt = pix_fmt ? av_get_pix_fmt(pix_fmt)
|
||||
+ : codec ? (video_pix_fmts ? video_pix_fmts[0] : AV_PIX_FMT_YUV422P)
|
||||
+ : AV_PIX_FMT_YUV420P;
|
||||
+ }
|
||||
+#else
|
||||
c->pix_fmt = pix_fmt ? av_get_pix_fmt(pix_fmt)
|
||||
: codec ? (codec->pix_fmts ? codec->pix_fmts[0] : AV_PIX_FMT_YUV422P)
|
||||
: AV_PIX_FMT_YUV420P;
|
||||
+#endif
|
||||
|
||||
if (AV_PIX_FMT_VAAPI == c->pix_fmt) {
|
||||
int result = init_vaapi(properties, c);
|
||||
@@ -1082,7 +1114,9 @@ static AVStream *add_video_stream(mlt_consumer consumer,
|
||||
c->rc_override_count = i;
|
||||
if (!c->rc_initial_buffer_occupancy)
|
||||
c->rc_initial_buffer_occupancy = c->rc_buffer_size * 3 / 4;
|
||||
+#if LIBAVCODEC_VERSION_INT < ((62 << 16) + (25 << 8) + 100)
|
||||
c->intra_dc_precision = mlt_properties_get_int(properties, "dc") - 8;
|
||||
+#endif
|
||||
|
||||
// Setup dual-pass
|
||||
i = mlt_properties_get_int(properties, "pass");
|
||||
@@ -1199,6 +1233,26 @@ static int open_video(mlt_properties properties,
|
||||
AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM);
|
||||
}
|
||||
|
||||
+#if LIBAVCODEC_VERSION_INT >= ((61 << 16) + (13 << 8) + 100)
|
||||
+ if (codec) {
|
||||
+ const enum AVPixelFormat *pix_fmts = NULL;
|
||||
+ avcodec_get_supported_config(NULL,
|
||||
+ codec,
|
||||
+ AV_CODEC_CONFIG_PIX_FORMAT,
|
||||
+ 0,
|
||||
+ (const void **) &pix_fmts,
|
||||
+ NULL);
|
||||
+ if (pix_fmts) {
|
||||
+ const enum AVPixelFormat *p = pix_fmts;
|
||||
+ for (; *p != -1; p++) {
|
||||
+ if (*p == video_enc->pix_fmt)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (*p == -1)
|
||||
+ video_enc->pix_fmt = pix_fmts[0];
|
||||
+ }
|
||||
+ }
|
||||
+#else
|
||||
if (codec && codec->pix_fmts) {
|
||||
const enum AVPixelFormat *p = codec->pix_fmts;
|
||||
for (; *p != -1; p++) {
|
||||
@@ -1208,6 +1262,7 @@ static int open_video(mlt_properties properties,
|
||||
if (*p == -1)
|
||||
video_enc->pix_fmt = codec->pix_fmts[0];
|
||||
}
|
||||
+#endif
|
||||
|
||||
const AVPixFmtDescriptor *srcDesc = av_pix_fmt_desc_get(video_enc->pix_fmt);
|
||||
if (srcDesc->flags & AV_PIX_FMT_FLAG_RGB) {
|
||||
diff --git a/src/modules/avformat/consumer_avformat.yml b/src/modules/avformat/consumer_avformat.yml
|
||||
index 989466b55..f3644206c 100644
|
||||
--- a/src/modules/avformat/consumer_avformat.yml
|
||||
+++ b/src/modules/avformat/consumer_avformat.yml
|
||||
@@ -3,7 +3,7 @@ type: consumer
|
||||
identifier: avformat
|
||||
title: FFmpeg Output
|
||||
version: 7
|
||||
-copyright: Copyright (C) 2003-2019 Meltytech, LLC
|
||||
+copyright: Copyright (C) 2003-2026 Meltytech, LLC
|
||||
license: LGPL
|
||||
language: en
|
||||
url: http://www.ffmpeg.org/
|
||||
@@ -452,6 +452,10 @@ parameters:
|
||||
- identifier: dc
|
||||
title: Intra DC precision
|
||||
type: integer
|
||||
+ description: >
|
||||
+ Sets intra_dc_precision for MPEG-2 encoding. The value is offset by 8,
|
||||
+ so the default of 8 means precision 0 (8-bit). Only relevant for
|
||||
+ MPEG-2; ignored on FFmpeg 8.0 and later.
|
||||
default: 8
|
||||
|
||||
- identifier: muxdelay
|
||||
@@ -1,177 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{11..14} )
|
||||
inherit python-single-r1 cmake flag-o-matic
|
||||
|
||||
DESCRIPTION="Open source multimedia framework for television broadcasting"
|
||||
HOMEPAGE="https://www.mltframework.org/"
|
||||
SRC_URI="https://github.com/mltframework/${PN}/releases/download/v${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0/7"
|
||||
KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
|
||||
IUSE="debug ffmpeg frei0r gtk jack libsamplerate opencv opengl python qt6
|
||||
rtaudio rubberband sdl test vdpau vidstab vorbis xine xml"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
# Needs unpackaged 'kwalify'
|
||||
RESTRICT="test"
|
||||
|
||||
# rtaudio will use OSS on non linux OSes
|
||||
# Qt already needs FFTW/PLUS so let's just always have it on to ensure
|
||||
# MLT is useful: bug #603168.
|
||||
DEPEND="
|
||||
>=media-libs/libebur128-1.2.2:=
|
||||
sci-libs/fftw:3.0=
|
||||
ffmpeg? ( media-video/ffmpeg:0=[vdpau?] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gtk? (
|
||||
media-libs/libexif
|
||||
x11-libs/pango
|
||||
)
|
||||
jack? (
|
||||
>=dev-libs/libxml2-2.5:=
|
||||
media-libs/ladspa-sdk
|
||||
virtual/jack
|
||||
)
|
||||
libsamplerate? ( >=media-libs/libsamplerate-0.1.2 )
|
||||
opencv? (
|
||||
>=media-libs/opencv-4.5.1:=[contrib]
|
||||
|| (
|
||||
media-libs/opencv[ffmpeg]
|
||||
media-libs/opencv[gstreamer]
|
||||
)
|
||||
)
|
||||
opengl? (
|
||||
media-libs/libglvnd
|
||||
media-video/movit
|
||||
)
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
qt6? (
|
||||
dev-qt/qt5compat:6
|
||||
dev-qt/qtbase:6[gui,network,opengl,widgets,xml]
|
||||
dev-qt/qtsvg:6
|
||||
media-libs/libexif
|
||||
x11-libs/libX11
|
||||
)
|
||||
rtaudio? (
|
||||
>=media-libs/rtaudio-4.1.2
|
||||
kernel_linux? ( media-libs/alsa-lib )
|
||||
)
|
||||
rubberband? ( media-libs/rubberband:= )
|
||||
sdl? (
|
||||
media-libs/libsdl2[X,opengl,video]
|
||||
media-libs/sdl2-image
|
||||
)
|
||||
vidstab? ( media-libs/vidstab )
|
||||
vorbis? ( media-libs/libvorbis )
|
||||
xine? ( >=media-libs/xine-lib-1.1.2_pre20060328-r7 )
|
||||
xml? ( >=dev-libs/libxml2-2.5:= )
|
||||
"
|
||||
# java? ( >=virtual/jre-1.8:* )
|
||||
# perl? ( dev-lang/perl )
|
||||
# php? ( dev-lang/php )
|
||||
# ruby? ( ${RUBY_DEPS} )
|
||||
# sox? ( media-sound/sox )
|
||||
# tcl? ( dev-lang/tcl:0= )
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
python? ( >=dev-lang/swig-2.0 )
|
||||
"
|
||||
|
||||
DOCS=( AUTHORS NEWS README.md )
|
||||
|
||||
PATCHES=(
|
||||
# downstream
|
||||
"${FILESDIR}"/${PN}-6.10.0-swig-underlinking.patch
|
||||
"${FILESDIR}"/${PN}-6.22.1-no_lua_bdepend.patch
|
||||
"${FILESDIR}"/${PN}-7.0.1-cmake-symlink.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Respect CFLAGS LDFLAGS when building shared libraries. Bug #308873
|
||||
if use python; then
|
||||
sed -i "/mlt.so/s/ -lmlt++ /& ${CFLAGS} ${LDFLAGS} /" src/swig/python/build || die
|
||||
python_fix_shebang src/swig/python
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for bug #919981
|
||||
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_SKIP_RPATH=ON
|
||||
-DCLANG_FORMAT=OFF
|
||||
-DGPL=ON
|
||||
-DGPL3=ON
|
||||
-DMOD_QT=OFF
|
||||
-DMOD_GLAXNIMATE=OFF
|
||||
-DMOD_KDENLIVE=ON
|
||||
-DMOD_PLUS=ON
|
||||
-DMOD_SDL1=OFF
|
||||
-DMOD_SOX=OFF
|
||||
-DMOD_SPATIALAUDIO=OFF # TODO: package libspatialaudio
|
||||
-DUSE_LV2=OFF # TODO
|
||||
-DUSE_VST2=OFF # TODO
|
||||
-DMOD_AVFORMAT=$(usex ffmpeg)
|
||||
-DMOD_FREI0R=$(usex frei0r)
|
||||
-DMOD_GDK=$(usex gtk)
|
||||
-DMOD_JACKRACK=$(usex jack)
|
||||
-DMOD_RESAMPLE=$(usex libsamplerate)
|
||||
-DMOD_OPENCV=$(usex opencv)
|
||||
-DMOD_MOVIT=$(usex opengl)
|
||||
-DMOD_QT6=$(usex qt6)
|
||||
-DMOD_GLAXNIMATE_QT6=$(usex qt6)
|
||||
-DMOD_RTAUDIO=$(usex rtaudio)
|
||||
-DMOD_RUBBERBAND=$(usex rubberband)
|
||||
-DMOD_SDL2=$(usex sdl)
|
||||
-DBUILD_TESTING=OFF # Needs unpackaged 'kwalify'; restricted anyway.
|
||||
-DMOD_VIDSTAB=$(usex vidstab)
|
||||
-DMOD_VORBIS=$(usex vorbis)
|
||||
-DMOD_XINE=$(usex xine)
|
||||
-DMOD_XML=$(usex xml)
|
||||
)
|
||||
|
||||
# TODO: rework upstream CMake to allow controlling MMX/SSE/SSE2
|
||||
# TODO: add swig language bindings?
|
||||
# see also https://www.mltframework.org/twiki/bin/view/MLT/ExtremeMakeover
|
||||
|
||||
if use python; then
|
||||
mycmakeargs+=(
|
||||
-DSWIG_PYTHON=ON
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
insinto /usr/share/${PN}
|
||||
doins -r demo
|
||||
|
||||
#
|
||||
# Install SWIG bindings
|
||||
#
|
||||
|
||||
docinto swig
|
||||
|
||||
if use python; then
|
||||
dodoc "${S}"/src/swig/python/play.py
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
@@ -95,6 +95,7 @@ PATCHES=(
|
||||
"${FILESDIR}"/${PN}-6.10.0-swig-underlinking.patch
|
||||
"${FILESDIR}"/${PN}-6.22.1-no_lua_bdepend.patch
|
||||
"${FILESDIR}"/${PN}-7.0.1-cmake-symlink.patch
|
||||
"${FILESDIR}"/${P}-ffmpeg-9.patch # in git master
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
|
||||
Reference in New Issue
Block a user