commit: fc465d371ec42d0e8f8e983d00e40c631498fa9b
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 23 13:52:47 2026 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 23 18:32:17 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc465d37
llvm-runtimes/libunwind: Remove old
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
llvm-runtimes/libunwind/Manifest | 3 -
.../libunwind/libunwind-22.0.0_pre20260103.ebuild | 193 ---------------------
.../libunwind/libunwind-22.0.0_pre20260106.ebuild | 193 ---------------------
.../libunwind/libunwind-22.0.0_pre20260113.ebuild | 193 ---------------------
4 files changed, 582 deletions(-)
diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest
index c87f7383113e..b278a22ab63a 100644
--- a/llvm-runtimes/libunwind/Manifest
+++ b/llvm-runtimes/libunwind/Manifest
@@ -1,4 +1,3 @@
-DIST llvm-project-05349a9b43805d3c0b424da99f3a1fa362cd3419.tar.gz 256643165
BLAKE2B
fe7be8ea73a22de902c399784ad95a0011add75af77ddc191bcbabdd276df65af4aa5339cdc74e89f5d2971ef74251ea46a5513a462a97963d36f85102c89665
SHA512
d6c58681f3e3f59589f2eac963ab9e92cd27a39dafe3e79ebdae82ad9e6fc6e3180a45ba7a142a7552a3585bc6cba46caeff1c0e2227563ec48820cdd1502e86
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B
f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5
SHA512
4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B
47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df
SHA512
fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B
95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d
SHA512
89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -15,5 +14,3 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B
0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B
cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d
SHA512
10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.0-rc1.src.tar.xz 166976000 BLAKE2B
eec2cf8822aa6937c751d94f07c6505a3cebda83c544299ff8eaeeedbadc36054b32fb1a0b655993bd604f9c82ac6fa419e974b1dc9c3f4b6c35aa94e9f4e929
SHA512
545ca31b2a24cab3d3a8d5ebfa2a25439eab4258cef01b53706a7a9e5174a75050fb3d36ad2ac4ebb9a23e34a005707c73383cd3cddd78f6789f5b1d4d446e7c
DIST llvm-project-22.1.0-rc1.src.tar.xz.sig 119 BLAKE2B
e3d5a6c00d7960b0694919ff083e02f0273e97da6a40ad452fbb8261b9edfc52d4262733d82a59f03ad7d15b3b62de743b37a1b2e191417443ecb730520be376
SHA512
51326b9402d7719c491ac5c6ab80a678896743dd88e3f997245adb77e7b3f5e0f84f6389c75872aea268de8a7a049684c84cdf575c1f19c4971bb280a9374de6
-DIST llvm-project-85c3c83ae54c9e81924f1ca048cfddc8d36bbb02.tar.gz 258189384
BLAKE2B
d7a0c36511c17e8dacef27701abcda316902ac17325c63f79e33366efc783e0ab53d62d71c92e2e49457db095d9e8fec0bcabf1a8056a95d25eb976bdd5ba15f
SHA512
a8a9ea91b4181005fb6385afff7681fdfc5a46e05aba216add29216a6dcb70cc667d1d300ee85be75997a963193e8e015917401def27d5759ff774f0fa00b527
-DIST llvm-project-b01c3d6682d2fa5d6ac22d5a964b739009e9db7b.tar.gz 256801517
BLAKE2B
dbdcaed7e0e06a673730c53c64c988add905b2679695ca0cf09db8b28f59eedd5455f4a0ad5a3d672e4f6601d7480775ef8fc405dc1e60c75b425382410e59cf
SHA512
3afa29dac2f9b22e6af4b1783bae0bc7507a1a8ca397e88fd6687cbd9620df54525b2b9115906b80e9d1dcd16e0704a5a90eaa6cf0fa3d7f89d3d60f7d8ee19f
diff --git a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260103.ebuild
b/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260103.ebuild
deleted file mode 100644
index 009d9f7a0e2e..000000000000
--- a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260103.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..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 cmake )
-LLVM_TEST_COMPONENTS=( libc libcxxabi llvm/utils/llvm-lit )
-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
-}
diff --git a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260106.ebuild
b/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260106.ebuild
deleted file mode 100644
index 009d9f7a0e2e..000000000000
--- a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260106.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..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 cmake )
-LLVM_TEST_COMPONENTS=( libc libcxxabi llvm/utils/llvm-lit )
-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
-}
diff --git a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260113.ebuild
b/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260113.ebuild
deleted file mode 100644
index 009d9f7a0e2e..000000000000
--- a/llvm-runtimes/libunwind/libunwind-22.0.0_pre20260113.ebuild
+++ /dev/null
@@ -1,193 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..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 cmake )
-LLVM_TEST_COMPONENTS=( libc libcxxabi llvm/utils/llvm-lit )
-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
-}