diff options
| -rw-r--r-- | llvm-runtimes/libcxxabi/Manifest | 1 | ||||
| -rw-r--r-- | llvm-runtimes/libcxxabi/libcxxabi-22.0.0_pre20251001.ebuild | 148 |
2 files changed, 149 insertions, 0 deletions
diff --git a/llvm-runtimes/libcxxabi/Manifest b/llvm-runtimes/libcxxabi/Manifest index e3c6add151f6..1fca96741050 100644 --- a/llvm-runtimes/libcxxabi/Manifest +++ b/llvm-runtimes/libcxxabi/Manifest @@ -15,4 +15,5 @@ DIST llvm-project-21.1.1.src.tar.xz.sig 438 BLAKE2B 8fdf614e67e31382c65d70a551ef DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331 DIST llvm-project-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26 +DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924 DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb diff --git a/llvm-runtimes/libcxxabi/libcxxabi-22.0.0_pre20251001.ebuild b/llvm-runtimes/libcxxabi/libcxxabi-22.0.0_pre20251001.ebuild new file mode 100644 index 000000000000..34374381bf61 --- /dev/null +++ b/llvm-runtimes/libcxxabi/libcxxabi-22.0.0_pre20251001.ebuild @@ -0,0 +1,148 @@ +# 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="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +IUSE="+clang +static-libs test" +REQUIRED_USE="test? ( clang )" +RESTRICT="!test? ( test )" + +DEPEND=" + ${RDEPEND} + 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} + llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR} + ) + !test? ( + ${PYTHON_DEPS} + ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( + libc llvm/include/llvm/{Demangle,Testing} 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 + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +multilib_src_configure() { + # 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 + llvm_prepend_path -b "${LLVM_MAJOR}" + 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 of components that libunwind depends on. + local flags=( + --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg + ) + local -x CFLAGS="${CFLAGS} ${flags[@]}" + local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}" + local -x LDFLAGS="${LDFLAGS} ${flags[@]}" + fi + + local nostdlib_flags=( -nostdlib++ ) + if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}" + ewarn "${CXX} seems to lack stdlib, trying with ${nostdlib_flags[*]}" + fi + + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" + + -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}" + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx" + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt} + + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + # this is broken with standalone builds, and also meaningless + -DLIBCXXABI_USE_LLVM_UNWINDER=OFF + + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=OFF + -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_BENCHMARKS=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + 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_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_compile() { + cmake_build cxxabi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install() { + DESTDIR="${D}" cmake_build install-cxxabi +} |
