diff options
| author | Michał Górny <mgorny@gentoo.org> | 2025-11-27 20:21:04 +0100 |
|---|---|---|
| committer | Michał Górny <mgorny@gentoo.org> | 2025-11-27 20:21:04 +0100 |
| commit | 1f90bb716ebd40354aa7082f7af65507e1590483 (patch) | |
| tree | 5ae9007f5b3cebb2c14248746855e5b8179b984f /llvm-runtimes | |
| parent | 8cf0f65fe5a454592b7ef25fa0fd5581167c6260 (diff) | |
| download | gentoo-1f90bb716ebd40354aa7082f7af65507e1590483.tar.gz gentoo-1f90bb716ebd40354aa7082f7af65507e1590483.tar.bz2 gentoo-1f90bb716ebd40354aa7082f7af65507e1590483.zip | |
llvm-runtimes/libunwind: Add 22.0.0_pre20251127 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'llvm-runtimes')
| -rw-r--r-- | llvm-runtimes/libunwind/Manifest | 1 | ||||
| -rw-r--r-- | llvm-runtimes/libunwind/libunwind-22.0.0_pre20251127.ebuild | 193 |
2 files changed, 194 insertions, 0 deletions
diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest index 43ce1c7664b2..4a3ef47e3c6c 100644 --- a/llvm-runtimes/libunwind/Manifest +++ b/llvm-runtimes/libunwind/Manifest @@ -16,3 +16,4 @@ DIST llvm-project-21.1.5.src.tar.xz.sig 119 BLAKE2B abf014908e981ea358ee38f6d1ef DIST llvm-project-21.1.6.src.tar.xz 158947864 BLAKE2B eeda7b9903ef59319ad22e5e3a8b66a339cbbb7445ccb75fa09db6823371a22e9b66cb44c084fdeb16054f2e62a149f6e069d9726f269f667dbd6a631cb658c3 SHA512 f9e6c84828e40cb0a7894258b07240468a9d555c11496a1725bf959444362277a90ea822eeb8c9b51b3b7fecd4dd0b213a28a2f2effefbf43efdd21084d10afc DIST llvm-project-21.1.6.src.tar.xz.sig 119 BLAKE2B 2e3de87f4adb181740cfc8a5f8de3e6f4090f50d2f0dfa2670b27c0a6dde296b399ee017b5f6220aa80581a16c81afb5c96454d69dac8ce246713570470956b8 SHA512 637cc9f778f8303e80985469c3102573a9cf6264093b1a83fb494e34b5cb444f76cbb7d6d497d44b05250d56e25ec27dd9df685e0b78b23bb71e4bcd05a8facf 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-22.0.0_pre20251127.ebuild b/llvm-runtimes/libunwind/libunwind-22.0.0_pre20251127.ebuild new file mode 100644 index 000000000000..95ce2986a0f9 --- /dev/null +++ b/llvm-runtimes/libunwind/libunwind-22.0.0_pre20251127.ebuild @@ -0,0 +1,193 @@ +# 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" +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 +} |
