summaryrefslogtreecommitdiff
path: root/llvm-runtimes/libunwind
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2026-05-21 04:59:09 +0200
committerMichał Górny <mgorny@gentoo.org>2026-05-21 11:37:38 +0200
commit72fad6b7645fed6859167cc766a99bf5ab79e06b (patch)
treee6a9a24632504d52ad3edd635ad29673ab7756c3 /llvm-runtimes/libunwind
parentaf9aa3e0512723cd1f4276ef95cc1cd8d354f10e (diff)
llvm-runtimes/libunwind: Add 22.1.6
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'llvm-runtimes/libunwind')
-rw-r--r--llvm-runtimes/libunwind/Manifest2
-rw-r--r--llvm-runtimes/libunwind/libunwind-22.1.6.ebuild194
2 files changed, 196 insertions, 0 deletions
diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest
index 9319e609e047..57cba5424e12 100644
--- a/llvm-runtimes/libunwind/Manifest
+++ b/llvm-runtimes/libunwind/Manifest
@@ -13,4 +13,6 @@ 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.5.src.tar.xz 167058820 BLAKE2B b0d4bc4db8d03a2201620dec0fcf5c946d86ac152c0feef4252e211eec4542e2fc849e2bafc8bcb57982959d005d70e9a7bd81296fed04f819b7de3f2fc15c43 SHA512 68de113906ec0c843a9346ecd06bff352146869f1f28b5600ff907125d77202692b6f68bd169bcd74ae5b82e0ad5548ea99c2405540abea36880d80e373744ff
DIST llvm-project-22.1.5.src.tar.xz.sig 119 BLAKE2B c756bb5d4ebc9fc3b61115495c75574312ad287dc4bdfc8408da7dcfc781f26c5804d8a4a46af32ad809db80a154aff6cad308742e1e04ca4a93249d6f1a55b4 SHA512 36baf347f79c26705136a7d342e8ee0a8a42939bb1db2d9ce91666b1edbbb04194ff63bc41899e4498cd819e6c2bd6944ea68d972e074e113f48d08e6544c368
+DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c
+DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035
DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6
diff --git a/llvm-runtimes/libunwind/libunwind-22.1.6.ebuild b/llvm-runtimes/libunwind/libunwind-22.1.6.ebuild
new file mode 100644
index 000000000000..09592935af3a
--- /dev/null
+++ b/llvm-runtimes/libunwind/libunwind-22.1.6.ebuild
@@ -0,0 +1,194 @@
+# 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"
+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
+}