From 002d022d5e9002b4a99a04ecfa529ecc059a1eac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 28 Apr 2026 15:46:12 +0200 Subject: [PATCH] llvm-runtimes/libunwind: Add 23.0.0_pre20260428 snapshot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- llvm-runtimes/libunwind/Manifest | 1 + .../libunwind-23.0.0_pre20260428.ebuild | 193 ++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 llvm-runtimes/libunwind/libunwind-23.0.0_pre20260428.ebuild diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest index 08aefbcebcc3..65ecef20b0a2 100644 --- a/llvm-runtimes/libunwind/Manifest +++ b/llvm-runtimes/libunwind/Manifest @@ -12,4 +12,5 @@ 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.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8 DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a +DIST llvm-project-6f2e1a120ebb75da9b3fe6afb19231aa0f801a34.tar.gz 270304465 BLAKE2B 43bca1c7f0996febbf3e840375f6b91d18a83e197890fbb19724a217e772b111ca33b15098b969cb74797dd67ca81b23b8ca36b35f084f6252e3a4b38e431c82 SHA512 28cf27b9f65b8525ba30bbfda6765b14bd5db8c5c88ef711fee408b691dd2b9e373db99f4862e76d692571ebf4e746cd9495ad6c8248e07e9b574cee066a20da DIST llvm-project-99457c368586b1debf49f55b3a0684317f5f298d.tar.gz 269907211 BLAKE2B aae5040ece1fa0eacd32468feee9896d614b7e91044ef504df2c80fc57fb42d2db162f01cfdd9c91c7e80fb9fa109440b6887451c96227f47308eb99d9249ef9 SHA512 0e865b56b8f3bf3f7e0fb9a5dfaa97b7d82c915e14474d07d7c036641f68727f2a81179110e3a1c3b424e0233d55589c568fcde2a98aec3a0882ab3a45c62e6c diff --git a/llvm-runtimes/libunwind/libunwind-23.0.0_pre20260428.ebuild b/llvm-runtimes/libunwind/libunwind-23.0.0_pre20260428.ebuild new file mode 100644 index 000000000000..abea5eaa8ce7 --- /dev/null +++ b/llvm-runtimes/libunwind/libunwind-23.0.0_pre20260428.ebuild @@ -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_{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,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 +}