commit: b367b6b102bf986e36cd2e1c3e2bfa90551f0695
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 10 08:57:05 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 10 11:47:06 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b367b6b1
dev-ml/llvm: Add 21.1.1
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
dev-ml/llvm/Manifest | 2 +
dev-ml/llvm/llvm-21.1.1.ebuild | 108 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 110 insertions(+)
diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest
index d66bffd1faca..e2ee62a7108c 100644
--- a/dev-ml/llvm/Manifest
+++ b/dev-ml/llvm/Manifest
@@ -12,5 +12,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B
7657ac0b26acc5affb1bfc91b9
DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B
85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4
SHA512
d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
DIST llvm-project-21.1.0.src.tar.xz 158971856 BLAKE2B
ac8c3cc8d2c986abcaa523acc872b01311ec118a738654f9cc53a1d5fdba70ba10cfe829e23f3913557e460403ed6a2df81cb5e9a435c8e1ce08e7ead3511bf0
SHA512
1487dcdc041dd6cdcffa6cc95a565e18a9fce2a73215671e366a9601cecce6c8bf70065df5564de5998d1841c3d8d829a9fbd2cad72e3aab4db279e8885ff446
DIST llvm-project-21.1.0.src.tar.xz.sig 438 BLAKE2B
c5731350bc7454867da18887628c0e87bf404589097034c7ddfffbeec277b900bd1fa49daabd41d4f8800a8ab76105bf7e910a99dd970819ab987373d4ed4ed9
SHA512
c3cd0a759e22a24f4307d8747b7986f966f4fa3c413092efc73ccca252476f1b59878dc65b444884515bcce3d3bfab902f585cc1d08e2aeb55aa8e588128aeb6
+DIST llvm-project-21.1.1.src.tar.xz 158891056 BLAKE2B
5801ba4ea64e9c55fd1e6a83e1ea463cfb1d2b12c1f25a488ca63fd88254f20388c5e986492e413d795306bc37782487b80485240939227f3beeea860091825c
SHA512
a120895e75942d848cc763fd1cb4aeb184e9d4509d69064e8e3f5679fbeb09c73bf916e33d04b842778537d2331067ec9190e0ad75d591d3ba57871770e19bce
+DIST llvm-project-21.1.1.src.tar.xz.sig 438 BLAKE2B
8fdf614e67e31382c65d70a551ef94893b8e4914e855fa96fc3a4a0a4ac916d646758be1c1c9a74028acd776d5d93b77f678d29dc75179ae95909d525d263c85
SHA512
1b9a2c51feaca75ef2f82a89c8e8d741a0b5f05f0dd8ca244d6997deb00f8ded3c37a5cbc6012a4ba8632004383ab4677756d9defe8855fff458e02380d77bd5
DIST llvm-project-645dd324d1b7d028745c2a4045b69e745df2ae6a.tar.gz 247443586
BLAKE2B
dd3229c32768e42fd2f311638f1e63f5503fabee3fa414bc3300313b36bbfa062d90900319e4fdbbafae17947537fba699fe5940e1b6553a2d9a716c0ce7b59c
SHA512
659dc22e2fd1fd0bced13f941127797dc7703b8d810eeb7a0fc51cf55c274e69e2d6660867c191d5d90615ddee3a1faff7f7cd357ff2eb88d715762be50098c3
DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883
BLAKE2B
e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3
SHA512
63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb
diff --git a/dev-ml/llvm/llvm-21.1.1.ebuild b/dev-ml/llvm/llvm-21.1.1.ebuild
new file mode 100644
index 000000000000..4d3b686b16cf
--- /dev/null
+++ b/dev-ml/llvm/llvm-21.1.1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..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}"
+KEYWORDS="~amd64 ~arm ~x86"
+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 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
+}