commit:     5babe1ee2652b8a0a229d019f98c1b3093a6e3f9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 16 14:57:00 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec 16 18:56:16 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5babe1ee

llvm-runtimes/libunwind: Add 21.1.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/libunwind/Manifest                |   2 +
 llvm-runtimes/libunwind/libunwind-21.1.8.ebuild | 194 ++++++++++++++++++++++++
 2 files changed, 196 insertions(+)

diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest
index bf9c25406e41..3804fbbfcdf2 100644
--- a/llvm-runtimes/libunwind/Manifest
+++ b/llvm-runtimes/libunwind/Manifest
@@ -17,5 +17,7 @@ DIST llvm-project-21.1.6.src.tar.xz 158947864 BLAKE2B 
eeda7b9903ef59319ad22e5e3a
 DIST llvm-project-21.1.6.src.tar.xz.sig 119 BLAKE2B 
2e3de87f4adb181740cfc8a5f8de3e6f4090f50d2f0dfa2670b27c0a6dde296b399ee017b5f6220aa80581a16c81afb5c96454d69dac8ce246713570470956b8
 SHA512 
637cc9f778f8303e80985469c3102573a9cf6264093b1a83fb494e34b5cb444f76cbb7d6d497d44b05250d56e25ec27dd9df685e0b78b23bb71e4bcd05a8facf
 DIST llvm-project-21.1.7.src.tar.xz 158956584 BLAKE2B 
dc9738fdde764d520f0e6d615295133a96833935b38239ea2ec6dffe72558d01332905fa265a55eb105ab4c4f88f37d5b3427126b1f7c788dc266add581cdf25
 SHA512 
ae30a53ed929df979849f7433bf705bc3d540aa9e12a02a175eb2483d1a56f9ca1203c9b67795f6e84cf2407c28d46d5d5351b290d8735adb5206103fee6f379
 DIST llvm-project-21.1.7.src.tar.xz.sig 438 BLAKE2B 
be4808a0888b088df0be4edaa7d49361dee717508d4438ad09c18b00752cd7a14ef56f5f18e3e4306a9ace95d9da7ed6904c998eb8a386577f21049bf5b6c0ce
 SHA512 
d02b09c77abd537eb24d6d43470f962c80a9ec6ccc03ac0efc950d90dbdec5b94dd6abad18143890ff85cee2bdeb7bcf1dac2a576ffcab8ef053d8526417bdcc
+DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 
0d3d4ee920f8e5db50e98152616f16004c74df0e7313cc86d893428fb7b1c875109988a5e40ea6f2e5d0fef53c7bfe2fc2b69e84807f6eb440b03afa1b228a36
 SHA512 
cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab
+DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B 
cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d
 SHA512 
10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
 DIST llvm-project-21c4c1502e3383988ba77eac75b13da7b9426957.tar.gz 254650569 
BLAKE2B 
aaa8fffbe3b8ddcffa232c6cd078d33efc0f23453fd79b2ae71a0760b35da2ad17ffaed95d99c2548904468767d9f95af2ca4a59245e1ddf51a6612bda61cda4
 SHA512 
40a97c53cf7825b5c1e6867df74fa22e3b786a2ec9bcb478e1af0e6a165c582316c3c75b12f4704227b8e95cce91ab110acb10f2d8f30bc82319d6af4d201956
 DIST llvm-project-8401a8d0be7671fb5089f850a34dc92ad4a2eb12.tar.gz 254694831 
BLAKE2B 
edac68e2b57124504262d68d1fabbb2161af023c2b9f96f304ce220e3d84249e2a2c1137c83bcfb15f6f082b68ef24a775150e5f435ec14d0f471c51ec438346
 SHA512 
a35f918fc3363df20fecac5820595060acd9fa0bce2cc3f696603192100a63ff4d31f6ba6ac98ad13f62b01c0789f3cce2ecbe4b9c0095d2bf02d2b24971d973

diff --git a/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild 
b/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild
new file mode 100644
index 000000000000..dfc694046f38
--- /dev/null
+++ b/llvm-runtimes/libunwind/libunwind-21.1.8.ebuild
@@ -0,0 +1,194 @@
+# 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-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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 
~arm64-macos ~x64-macos"
+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
+}

Reply via email to